OC裏面的點語法與java中點調用的區別

最近學習OC,看到OC裏面的點語法,感覺挺有意思,寫下來跟大家分享一下,前面總結一下:OC的點語法本質就是getter和setter方法的調用,和java的點調用成員變量有本質區別。


    import <Foundation/Foundation.h>

    @interface Person:NSObject
    {
        int _age;
    }
    - (void)setAge:(int)age;
    - (int)age;
    @end

    @implementation Person
    - (void)setAge:(int)age
        {
            _age = age;
            //self.age = age  不能這樣調用  會引發死循環 其本質是[self setAge:age]
        }
    - (int)age
    {
    //return self.age;  不能這樣調用  會引發死循環 其本質是return [self age]
        return _age;
    }
    @end
    int main()
    {
        Person *p = [Person new];
        p.age = 12;//
        NSLog(@"他的年齡是%d",p.age);
        //點語法判斷是getter或者setter方法的標準是看是否有賦值操作,如果有,則爲setter操作,否則爲getter操作
        return 0;
    }

java 中的點一般是調用成員變量的作用


    public class Main{
        public static void main(String[] args) {
        Person p = new Main().new Person();
        p.age = 13;//java裏面的.age是調用的成員變量的意思  此處是給成員變量賦值
        System.out.println(p.age);//取出成員變量的值
    }
    class Person{
        public int age;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章