1.点语法(找出不合理的地方)
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
    int _age;
}
- (void)setAge:(int)age;
- (int)age;
@end

@implementation Person
{
    int _age;
}
- (void)setAge:(int)age
{
    _age = age;
    // 会引发死循环
    // self.age = age;
}
- (int)age
{
    return _age;
    // 会引发死循环
    // return self.age;
}
@end



2.@property
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
    // no的set和get方法全部都手动实现了,因此系统就不会再生成_no这个成员变量了,只实现一个可产生
    int _no;
}
@property int age;
@property int no;
- (void)test;
@end

@implementation Person
- (void)test
{
    NSLog(@"年龄是%d, 号码是%d", _age, _no);
}

- (void)setAge:(int)age
{
    _age = age;
}

// _no的set和get方法全部都手动实现了,因此系统就不会再生成_no这个成员变量了
- (void)setNo:(int)no
{
    _no = no;
}

- (int)no
{
    return _no;
}
@end


3.成员变量的作用域
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
    int _age;
    
@public
    int _no;
    int _weight;
    
@private
    int _height;
    
@protected
    int _money;
}
@end

@interface Student : Person
- (void)test;
@end

@implementation Student
{
    int _money;
@public
    int _friendsCount;
}
- (void)test
{
    _age = 10;
    _no = 1;
    
    // 私有的不能在子类中访问,即在implementation中声明的变量、或在声明中说明为私有的
    // _name = @"Jack";
    _money = 100;
    
    // 私有的不能在子类中访问
    // _height = 170;
}
@end

int main()
{
    Student *s = [Student new];
    s->_no = 1;
    //@propected类型的变量只能在当前类和子类中访问
    //s->_age = 20;
    // 在main函数后面的成员变量都不能直接访问
    //s->_name = @"Rose";
    // 在main函数后面的成员变量都不能直接访问
    //s->_color = 10;
    s->_friendsCount = 500;
    return 0;
}

@implementation Person
{
    NSString *_name;
@public
    int _color;
}
@end

点语法、property、self注意的更多相关文章

  1. OC self = [super init] , 点语法 , @property

    OC self = [super init] , 点语法 , @property 构造方法为啥这么写? self = [super init]; [super init] 的结果可能有三种: 第一种: ...

  2. 网络编程-Python高级语法-property属性

    知识点: 一.什么是property属性? 一种用起来像是使用的实例属性一样的特殊属性,可以对应于某个方法,Python的property属性的功能是:property属性内部进行一系列的逻辑计算,最 ...

  3. linux设备树笔记__dts基本概念及语法【转】

    转自:http://www.360doc.com/content/15/1113/11/15700426_512794532.shtml 设备树手册(Device Tree Usage)原文地址:ht ...

  4. vb的property 和event

    Event 语句 定义用户自定义的事件. 语法 [Public] Event procedurename [(arglist)] Event 语句包含下面部分: 部分 描述 Public 可选的.指定 ...

  5. WPF样式中TargetType 属性 (Property) 和 x:Key 属性 (Attribute)

    如第一个示例所示,如果将 TargetType 属性设置为 TextBlock 而不为样式分配 x:Key,样式就会应用于所有 TextBlock 元素.这种情况下,x:Key 隐式设置为 {x:Ty ...

  6. Objective-C 关键字:retain, assgin, copy, readonly,atomic,nonatomic

    声明式属性的使用:声明式属性叫编译期语法 @property(retain,nonatomic)Some *s; @property(参数一,参数二)Some *s; 参数1:retain:修饰引用( ...

  7. Objective-C 30分钟入门教程

    Objective-C 30分钟入门教程 我第一次看OC觉得这个语言的语法有些怪异,为什么充满了@符号,[]符号,函数调用没有()这个,但是面向对象的高级语言也不外乎类,接口,多态,封装,继承等概念. ...

  8. Objective-C汇总

    Objective  C(20世纪80年代初) 一.OC语言概述 .1985年,Steve  Jobs成立了NeXT公司 .1996年,12月20日,苹果公司宣布收购了NeXT  softwar ...

  9. 21)pom 中的缺省值(default properties)

    1 引言 项目中build 时用到了maven-jar-plugin ,其中有一个 ${project.build.directory} <plugin> <artifactId&g ...

  10. Objective-C面向对象(一)

    1.类和对象 1.1定义类 面向对象的程序设计中有两个重要概念:类(class)和对象(object),类事某一批对象的抽象,对象是一个具体存在的实体. Objective-C定义类需要氛围2个步骤 ...

随机推荐

  1. asp.net 获取IP地理位置的几个主要接口

    腾讯的IP地址API接口地址:http://fw.qq.com/ipaddress 新浪的IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup ...

  2. TextField的所有属性和方法(转)

    转自:http://tsyouaschen.iteye.com/blog/600255 表一 TextField 对象的方法 方法 说明TextField.addListener 加入接收触发事件如文 ...

  3. Centos 配置ASP.Net Core 运行环境

    一:ASP.Net Core跨平台运行,需要在Linux安装运行环境.本机器使用的Centos,下载安装地址为:https://www.microsoft.com/net/core#centos su ...

  4. UIALertView与UIAlertViewDelegate的基本用法

    首先,视图控制器必须得实现协议UIAlertViewDelegate中的方法,并指定delegate为self,才能使弹出的Alert窗口响应点击事件. 具体代码如下: ViewController. ...

  5. include的简单使用

    1.事前准备 <!--在res/values/styles.xml中--> <!--设置样式--> <style name="RemoteButton" ...

  6. Laravel中的队列处理

    Laravel中的队列处理 队列介绍 为什么要有消息队?这里先对其进行一个简单的介绍,方便还不了解的同学理解.在面向对象里,有一个很简单的概念--消息传递,而消息队列就可以在它上面扩展一下,把它说的更 ...

  7. jchat:linux聊天程序3:服务器

    makefile: jchat_server: main.o process.o sql.o gcc -o jchat_server main.o process.o sql.o -L/usr/lib ...

  8. 转:JavaScript函数式编程(一)

    转:JavaScript函数式编程(一) 一.引言 说到函数式编程,大家可能第一印象都是学院派的那些晦涩难懂的代码,充满了一大堆抽象的不知所云的符号,似乎只有大学里的计算机教授才会使用这些东西.在曾经 ...

  9. 论山寨手机与Android联姻 【1】MTK亮相的历史背景

    [1]MTK亮相的历史背景如果说1960年代是大型机(Mainframe)的时代,1970年代是小型机(Microcomputer)的时代,那么1980年代无疑是个人电脑(PC)的时代,而1990年代 ...

  10. Facebook有两名重要经理离职 有一位将加入阿里

    据报道,Facebook将有两名重要经理离职,分别是领导视频广告产品的产品经理和企业沟通团队经理. 这是该仍在迅速增长的公司最新的人员离职情况.Facebook计划今年大幅扩张人员规模. 知情人士称, ...