新建OC项目,创建类不在main.m中创建,在x cold中选择新建类,系统会为我们自动创建类的声明和类方法的实现部分,好处就是可以帮助我们把类的声明和实现部分分开
类的接口部分interface
属性用大括号括起来,不声明的条件下,类的属性在默认情况下是私有的,只能在类中访问,属性有三种,protected,personal,public,package
Protected的属性,可以在类的内部使用也可以在子类中使用,但是不可以再外部(类定义的外部)使用,public的属性,可以类中和类外使用。
属性一般情况下定义为私有的,但是可以用公用的方法来引用
当在类外部想使用类中的属性,可以有两种方法
1 将属性变成public的
2 属性仍为私有的,但是用公有的方法对属性进行赋值和取值,方法是set和getter方法,一般格式是
-(void)setPrice:(int)p
{
Self->Price = p;
}
-(int)getprice
{
Return price;
}
在外部使用属性的时候,就可以对属性的方法进行调用,在方法中可以添加条件语句
初始化方法:(init)
一般形式
-(id)init()
{
If(self) = [super init])
{ price = 1000;}
Else
{ return nil;}
Return self;
}
init方法,为了创建对象时,使对象有初始值,然后在main。C。中输出时就是初始化了得值
方法的重载
就是方法名字相同参数(个数)不同
调用的时候,给了几个参数就相应的调用参数个数的方法
同样,初始化方法也可以。例如
-(id)init (NSString *)nam price:(int)p
{
If(self = [super init])
Self->name = nam;
Self->price = p;
}
Else
{return nil}
Return self;
}
调用的时候:
Arm *arm1 =[ [Arm alloc]init @“ak47” price 1000]
继承
子类具有父类的所有方法和属性,子类还可以定义和父类相同的方法,叫做方法的重写或者方法的覆盖
类型解析的方法
判断一个对象是不是属于一个类,方法是iskindofclass,[obj iskindofclass:class]
判断是不是成员,用[obj ismember:class]
判断某方法在不在某个对象中用isselectorof
初始化的时候,有参数没有返回值,获取属性不用参数但是有返回值