OC-属性

*************************
self:表示实例变量自己本身
super:表示父类变量本身

*********************/
/*
 
-(void)funA
    {
       
        _age=20;

        NSLog(@"-:funA %d",_age);
        [self funB];  //接着调用funB
    }
-(void)funB
    {
        NSLog(@"-:funB %d",_age);
       
        [Student sayHello];//确定的 去 调用不确定的可以,反之不行
     
       
    }
+(void)sayHello
    {
 //  ——age=20、、这是错误的;类方法不能操作实例变量
//        [self funA];error:类方法不能调用实例方法
        NSLog(@"+:sayHello");
    }
 
*****************************************
OC中的类分为.h和.m文件
 .h文件只要做声明:成员变量,属性、方法
 表示类的接口@interface
 
 .m最为函数的实现部分;实现方法
 @implementation
 
成员变量

*/


/**   面向对象的三大特性:
 封装:隐藏内部实现,稳定外部接口
 继承:子类复用父类的成员变量、属性、方法(重写)
 多态:父类指针(父类对象)指向子类空间
 
 */
************************************
@interface Student : NSObject
{
   
    int _age;//全局变量    变量之前加_  用来区别一些类属性
}

//实例方法
//-(void)

-(void)funA;
-(void)funB;
+(void)sayHello;

//类方法
//+(返回类型)方法名
@end
 
 
 
************************************
@propertyint age;// 代替下面两句话
@property NSString *name; 
@property NSString *address;
/**
-(void)setAge:(int)Age;
-(int)getage;

-(void)setName:(NSString *)Aame;
-(NSString *)getname;
-(void)setAddress:(NSString *)Address;
-(NSString *)getaddress;
**/***********************************
 
构造方法 自定义构造方法
。h
@interface Student : NSObject


@property int age;
@property NSString *name,*address;
// 重写构造方法、初始化方法
-(instancetype)init;//(id)意义一样    初始化值时定义的是多少就是多少,无法在main函数里面修改  重写init父类里的方法

//自定义构造方法
//以init开头的都是构造方法,第二个单词首字母必须大写
-(instancetype)initWithAge:(int)age
           andName:(NSString *)name
        andAddress:(NSString *)address; 
 
。m
// 1.  初始化方法:完成初始化信息、返回对象
-(instancetype)init
{
    self=[super init];   //self在父类里
    if (self)//if(self != nil);确定self在父类里才执行
    {
        self.age=10;
        self.name=@"Tom";
        self.address=@"China";

    }
   
    return self;//是谁调用,self就是谁
}
// 2. 自定义构造方法
-(instancetype)initWithAge:(int)age
                   andName:(NSString *)name
                andAddress:(NSString *)address
{
    self=[super init];   //self在父类里
    if (self)//if(self != nil);确定self在父类里才执行
    {
        self.age=age;
        self.name=name;
        self.address=address;
       
    }
    return self;
 

posted on 2015-10-27 10:20  树下茶壶  阅读(94)  评论(0编辑  收藏  举报

导航