点语法、property、self注意
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注意的更多相关文章
- OC self = [super init] , 点语法 , @property
OC self = [super init] , 点语法 , @property 构造方法为啥这么写? self = [super init]; [super init] 的结果可能有三种: 第一种: ...
- 网络编程-Python高级语法-property属性
知识点: 一.什么是property属性? 一种用起来像是使用的实例属性一样的特殊属性,可以对应于某个方法,Python的property属性的功能是:property属性内部进行一系列的逻辑计算,最 ...
- linux设备树笔记__dts基本概念及语法【转】
转自:http://www.360doc.com/content/15/1113/11/15700426_512794532.shtml 设备树手册(Device Tree Usage)原文地址:ht ...
- vb的property 和event
Event 语句 定义用户自定义的事件. 语法 [Public] Event procedurename [(arglist)] Event 语句包含下面部分: 部分 描述 Public 可选的.指定 ...
- WPF样式中TargetType 属性 (Property) 和 x:Key 属性 (Attribute)
如第一个示例所示,如果将 TargetType 属性设置为 TextBlock 而不为样式分配 x:Key,样式就会应用于所有 TextBlock 元素.这种情况下,x:Key 隐式设置为 {x:Ty ...
- Objective-C 关键字:retain, assgin, copy, readonly,atomic,nonatomic
声明式属性的使用:声明式属性叫编译期语法 @property(retain,nonatomic)Some *s; @property(参数一,参数二)Some *s; 参数1:retain:修饰引用( ...
- Objective-C 30分钟入门教程
Objective-C 30分钟入门教程 我第一次看OC觉得这个语言的语法有些怪异,为什么充满了@符号,[]符号,函数调用没有()这个,但是面向对象的高级语言也不外乎类,接口,多态,封装,继承等概念. ...
- Objective-C汇总
Objective C(20世纪80年代初) 一.OC语言概述 .1985年,Steve Jobs成立了NeXT公司 .1996年,12月20日,苹果公司宣布收购了NeXT softwar ...
- 21)pom 中的缺省值(default properties)
1 引言 项目中build 时用到了maven-jar-plugin ,其中有一个 ${project.build.directory} <plugin> <artifactId&g ...
- Objective-C面向对象(一)
1.类和对象 1.1定义类 面向对象的程序设计中有两个重要概念:类(class)和对象(object),类事某一批对象的抽象,对象是一个具体存在的实体. Objective-C定义类需要氛围2个步骤 ...
随机推荐
- 初学DIV+CSS要记住的
初学DIV+CSS?有六个问题需要您关注一下!作为DIV+CSS初学者,如果在动手写代码之前对网页整体结构由一个清晰认识的话,写起来会事半功倍!但是,写的过程中总是有这样那样的问题,使得我们不得不停下 ...
- 【11.2noip冲刺赛】 循环整数 (分段打表)
[问题描述]moreD在学习完循环小数之后发现循环是个很美好的性质.自己只需要记住短短的循环节以及循环次数(次数大于1,且是整数)就可以记住整个数字了.因为背诵数字变得方便了,moreD决定背诵[L, ...
- linux 系统分区方案建议
前言: 以前初识Linux时,对Linux系统安装时分区的选择,一点都不了解,导致几次没法进行下一步安装,因此就静下心来,专门拿出时间研究了研究这方面的知识: 以下内容就是以前通过研究Linux安装过 ...
- windows下安装NodeJs
1.官网(//nodejs.org/en/)下载系统匹配的文件 2.双击安装,完成后发现nodejs文件夹下面有npm, 直接用npm安装其他环境既可 3.如果配置了环境变量,直接Win+R后CMD调 ...
- c代码中调用c++,c++代码中调用c代码
注意这里的c调用c++或者c++调用c的意思是.c文件中调用.cpp文件中的代码,或者相反 集成开发环境如vc++6.0或者vs都是通过文件后缀来区别当前要编译的是C代码还是C++代码,然后采用相应的 ...
- Python学习笔记4-如何快速的学会一个Python的模块、方法、关键字
想要快速的学会一个Python的模块和方法,两个函数必须要知道,那就是dir()和help() dir():能够快速的以集合的型式列出该模块下的所有内容(类.常量.方法)例: #--encoding: ...
- hdu 5584 LCM Walk(数学推导公式,规律)
Problem Description A frog has just learned some number theory, and can't wait to show his ability t ...
- C# DataTable几个常用的查询表达式【转】
DataTable dt = GetDetails().Tables[0]; //获取可用的DataTable // var m = dt.AsEnumerable().Last ...
- js堆栈溢出错误
function prompt() { var answer = prompt("What is your name","") if (answer) { al ...
- Data Structure(3)——软考阶段学习小结
数据结构计算机等级考试中有,自考中有,软考中同样有,可见其内容的重要程度,今天对软考阶段视频学习内容的总结,同样是对前面学习内容的回顾,同样是对后面学习的铺垫. 中结:原本因为之前有过类似的总结,这次 ...