黑马程序员技术交流社区

标题: 什么叫类的方法 [打印本页]

作者: 霸气外露低调    时间: 2015-12-8 02:05
标题: 什么叫类的方法
啊啊啊啊   求解救
作者: 吕振廷    时间: 2015-12-8 18:10
知道主方法吧,它也是类方法
作者: 乔庆芳    时间: 2015-12-8 19:59
类里面的方法?
作者: AGHM0312    时间: 2015-12-9 01:18
同问嘿嘿  加油
作者: 易沛东    时间: 2015-12-9 08:10
用类调用的方法叫类方法。
作者: xunyang    时间: 2015-12-9 09:22
关于类的行为!比如有一个鸟类,那么他所拥有的类方法就是飞行。
作者: 长厢厮守℡    时间: 2015-12-9 10:13
类包括属性和行为
行为通过声明和实现,就是类方法。
通过[类名 new]的方式创建对象
对象方法只有对象可以调用
作者: springD    时间: 2015-12-9 10:40
类(Class) 一个类由3个部分构成
类的名称:类名
类的属性:一组包含数据的属性
类的方法:允许对属性中包含的数据进行操作的方法 (行为)
例如:

@interface dog : NSObject
{
    NSString* _name;
    NSString* _color;
    int _speed;
    float _weight;
}
-(void)run;
-(void)eat;

dog是类名;
_name,_color,_speed,_weight是类的属性;
run,eat就是类的方法,-(void)run,-(void)eat是类的方法声明。
作者: 周翔    时间: 2015-12-9 17:07
方法是类的行为,写在接口和实现两个文件中。在接口部分声明方法,在实现部分实现方法。
1、类方法与实例方法
Objective-C中的类可以声明两种类型的方法:实例方法和类方法。实例方法就是一个方法,它在类的一个具体实例的范围内执行。也就是说,在你调用一个实例方法前,你必须首先创建类的一个实例。而类方法,比较起来,也就是说,不需要你创建一个实例。
+表示类方法,就是类调用方法,不依赖与任何对象的方法,类似于c语言的static关键字 static函数。-表示是实例(对象)方法,只能是对象可调用,依赖与任何对象的方法。
总结一下几点:
(1)类(static)方法(便利构造器)
a. 类方法的调用
[类名称 类方法名称];
这里需要注意:
1、类方法可以调用类方法。
2、类方法不可以调用实例方法,但是类方法可以通过创建对象来访问实例方法。
3、类方法不可以使用实例变量。类方法可以使用self,因为self不是实例变量。
4、类方法作为消息,可以被发送到类或者对象里面去(实际上,就是可以通过类或者对象调用类方法的意思)。
(2)实例方法
a.实例方法的调用
首先需要实例化该类
例如:Human *man = [Human alloc] init];
[类的实例  实例方法名称];
例如:[man showSex];   
注意:此处实例化该类时,调用了该类的构造函数init,并且该类的构造函数调用[super init]的返回值不等于该类的self。
定义子类的实例
Woman *wife = [Woman alloc] init];
此处实例化该类时,调用了该类的构造函数init,并且该类的构造函数调用[super init]的返回值 等于该类的self。
2、单例模式
Singleton模式,即单例模式。顾名思义,主要用于做应用程序的资源共享控制。实质为,单例是在程序声明周期里有且仅有被实例化过一次的类。为确保实例化的唯一,利用类的类(static)方法来生成和访问对象。至此,我们可以在程序中任何地方访问类的单例对象,因为只实例化唯一的一次,所以,并不用 alloc、init、autorelease初始化方法。
单例设计模式的要点:
(1) 某个类只能有一个实例。  
(2)他必须自行创建这个对象  
(3)必须自行向整个系统提供这个实例;
(4)这个方法必须是一个静态类;
.m文件代码(记住)
@implementation Singleton
static Singleton *st;
+(Singleton*) instance{//可用id代替返回可用的指针对象 instance是方法名
//静态变量,生命周期是整个程序,在下一次该函数调用时仍可使用 。
    if(st==nil ) {//指针为空就创建
         st = [[Singleton alloc] init];
//指针st指向单例模式 Singleton
      }
    return st;//不是空就继续使用
}
@end
注意:所谓单例,即我们自己创建一个单例类,该类只能生成唯一的对象,为了防止该对象被复制(copy)或者retain 和 release 等操作,我们必须在所创建的单例的实现文件( .m 文件)中将父类的这些方法给覆盖,该目的是为了保证单例模式的一个严谨性。
作者: 杨奉泊    时间: 2015-12-9 19:22
oc的中类中以+好开头的 调用的时候用类名调用




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2