OC --(2)-- 基础知识分析对象,创建类,自定义初始化方法

1.分析对象 2 创建类(实例变量 方法) 3.创建对象 调用方法 结局问题
@property int age;//相当于声明getter setter 方法;
@synthesize age ; //相当于实现getter setter 方法;
@synthesize age=_age ;//会去访问_age;
实例变量的可见度;
        1.@public; 公共的 在类的内部和外部都可以进行访问(破坏了面向的对象的封装特性)         2.@private 私有的,只有当前类才能访问,其子类不能直接访问(破坏了继承特性)
        3.@protected 受保护的,只有当前类及其子类才能访问(默认的)

#include #import 都是导入文件 但是#import #include高级 因为#import 会解决重复导入问题
重复导入: 多次导入相同的文件内容
循环导入问题 :两个文件互相导入对方,导致互相的类型不能够识别
解决循环导入问题:在其中一个文件 .h中使用@class ,并在对应的.m中使用#import 导入头文件  
@class Woman; //@class xxx  假设xxx就是一个类

点语法
Person *per=[[Person alloc] initWithName:@"hanjinpeng" sex:@"nan" age:22];
per.name=@"lisi”;//等效于[per setName];
NSLog(@"%@",per.name);//等效于 [per name];

2.  description 方法   当使用%@打印一个对象时 会调用这个方法
   -(NSString*)description{   
     NSString *str=[NSString stringWithFormat:@“age is %i and no is %i”,self.age,_no];
     return str;//格式化打印输出
}  
带参的方法
-(NSString*) setValue: (NSString*)name;
 setName:sex:age:weight:   方法名
去掉 -或者+ 去掉返回值类型及(),去掉每一个参数及其参数类型 剩余的部分就是方法名;
OC中方法的形式
1.+ -  开头 区分当前的方法是类方法还是实例方法   +不能调用实例变量
2. () 内部写返回值类型
3. 书写对于每一个参数的说明 " : "后面书写 参数的类型 参数名  如果没有参数就不写 " : "
-(void)setType:(NSString*)type;
-(NSString*)type;
settetset开头加上实例变量 (去掉下划线 首字母大写) : (参数类型)参数名
getter : 返回值为实例变量的类型 方法名为实例变量名去掉下划线
//自定义初始化方法
//形式:init开头+with 'W'大写 +各个参数    

posted @ 2015-05-22 16:36  iOS-轻狂书生  阅读(322)  评论(0编辑  收藏  举报