OC语法3——点语法,self关键字

点语法: 

   为了给程序员提供便捷,OC中也引入了点语法。不过它和Java中点语法的意义是完全不同的。

  在Java中无论调用任何方法,还是访问public类型的成员变量都是用点语法(.号)。

  而在OC中只规定点语法只可以替代set和get方法。

  例如。stu.age = 23;它的本质是[stu setAge : 23];  即,为stu的age属性赋值为23。

  int myAge = stu.age; 它的本质是[stu age]; 即,获取stu的age属性并赋值给MyAge。

注意:

  OC中的点语法只是为了给开发者提供便捷,而规定的代替写法。但是它调用函数的本质还是OC的方括号调用法。也就说编译器编译时会把点语法转换为方括号语法。

  stu.age 在Java中表示stu对象访问public的属性age,但是在OC中却不是,它表示stu对象调用getAge()或setAge()方法。

  

self关键字:

   OC中的self和Java中的this类似,似乎都代表当前方法的调用者。其实它们还是有区别的。

  Java中的this只能用在动态方法(对象方法)中表示当前对象,这个调用者只能是“对象”;

  而OC中的self既能用在动态方法中表示当前对象,也能用在静态方法(类方法)中表示当前类。万变不离其宗,可以理解为,self代表当前方法的调用者。

 

你可能感兴趣的:(关键字)