OC 基础语法

1:Obect  c  与 c  语言的区别
(1)    后缀名不一样,C语言是.c 结尾 ,OC  是 .h结尾。
(2)    输出信息不同  C语言是用print() 输出,OC 是用NSLog输出。
(3)    NSLog会自动换行,并且还有时间戳输出,二print没有
(4)    导入声明[文件]不一样 OC 是用import,而C语言是用include
2: import和 include的区
(1)    Import只导入一次一个文件就不会重复导入,include 可以重复导入同一个文件
3:OC创建类的语法
(1)    类的声明
@interface  One[类名]: NSObject{
#设置访问权限  public protecd priavted
@public 
#这里写声明属性和行为
Int  age;
Char sex;
}
  #这里写方法的声明    OC中方法的声明
  1:对象方法以 ‘-’ 号 开头
  2:数据类型一定要用小括号括住
  3:OC方法中的小括号就一个作用 ,就用来括住数据类型

无参数声明方法格式如:  - (返回类型)  方法名;
 - (void)  Tets1;  //声明一个无参数无返回类型的方法 
         -(int )   Test2;  //声明一个无参数有返回类型为int 类型的方法
有参数声明方法格式[注意点冒号也是方法名的一部分]:  
-  (返回类型) 方法名:(参数类型  *)参数名称
        -(void)  Test3 :(char  *)nub;
    -(void)  Test4(char   *)nub1   :(char   *)centen;  //多个参数  以 : 相间隔
@end  //声明结束
(2)    类的实现
@implementation   One[类名]
   #这里写实现方法的声明  格式跟函数的声明一个

实现格式如:
  (1)无参数
  -(void) Test1{
     NSLog(@”你好”);
}
(2) 有参数
  
-(void)Test3:(char  *)nub{
    NSLog(@”电话号码%s”,nub);
}
-(void)Test4:(char  *)nub :(char *) coent{
    NSLog(@”电话号码%s”,nub);
}

@end
(3)    类的实例化和调用方法属性
Int  main(int argc, const char * argv[]){

   #格式为: 类名   指针;
    One  *p;
   /*
实例化一个对象在内存中干了三件事
1:开辟存储空间
2:初始化成员变量
3:返回指针地址
*/
   P=[One   new];
   #给属性赋值
   P->age=22;
   p->sex=’男’;
   #输出变量
  NSLog(@”年龄=%d,性别=%c”,p->age,p->sex);

#有参数的方法调用
[p Test3:”13417709177”]
}
4:OC语言的注意点
   1.只有类的声明没有实现
 2.缺少@end
   3.不能把实现写到声明中同理,声明也不能写到实现中,不能嵌套
   4.不能把类的声明实现写到函数中
   5.成员变量必须写到声明的大括号中
   6.声明成员变量不能直接赋值
   7.OC的弱语法:注意,没有声明同样可以定义一个类,(实际开发中千万不要这样干)
    /*
    f  经典错误:
     '-[Person run]: unrecognized selector sent to instance 0x100103410'   
     没实现这个方法的经典错误。
     */
5:OC 中字符串的使用

(1)    创建一个简单的字符串并输出
NSString   *str1=@”我是字符串1”;
NSLog(@“%@”,str1);
(2)    字符串格式化
NSString  *str2=[NSString  stringWithFormat:@”身高%d,体重%.2f”,sg,tz]
NSLog(@”%@”,str2);
(3)    计算个数
NSString  *str3=@”我是中国人”;
Int count=[str   length];

6:类方法与对象方法

 (1)对象的方法是与 减号  开头      类的方法是以 加号开头

(2)对象的方法调用方式[是以对象去调用方法]
Test1  *P=[Test1    new ]
Int sum1=[p   nb1:10  nb2:20];
(3)类的方法调用方式[是以类名调用方法]
Int sum2=[Test  nb1:10  nb2:20];
(4)    当方法不使用成员变量的时候就尽量使用类方法[少开辟空间,节省内存]
(5)    类方法不能访问成员变量[实力变量 也就是对象]

7:继承
  
(1)    子类继承了父类的成员变量和方法
(2)    new方法是父类中继承过来的
(3)    如果在子类中实现了和父类中同名同类型的方法,我们称之为重写
(4)    在继承当中调用方法,首先会在本类中找,如果本类没有找到就去父类中找
(5)    在子类中不仅可以重写父类当中的对象方法,也可以重写父类当中的类方法
(6)    子父类中的方法调用顺序:现在本类中找,如果本类没有再到父类中找,如果父类中没有,就到爷爷类中找 NSObject是99.9%的类的父类
(7)    OC 不支持多继承[也就是说只有一个父类]   支持多层继承 [父->子->孙]


8:多态
 
(1)    什么是多态:多态就是某一类事物的多种形态
(2)    没有继承就没有多态
(3)    用父类类型的指针指向了子类对象,这就是多态
   
   9: OC访问成员变量格式
(1)     类名  *p=[类名  new]
p->属性=值;
     (2)
         p.属性=值;
   10:成员变量的作用域
      
      Public:公共的  在其他文件夹中也可以访问
      
      Private:私有的  在其他文件下不能访问  只是在本类中使用。

      Protected 受保护的 在其他文件夹中不能访问 在本类中可以访问
  
  11:自动设置get/set 属性
      
      @synthesize    属性 ;[在类的实现中写,前提是你已经声明了这个属性]

  12: protected  作用
   
自动生成get/set 属性   格式:@public  int _no;

 

posted @ 2014-11-18 13:56  麦田守望者~  阅读(339)  评论(0编辑  收藏  举报