点语法、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个步骤 ...
随机推荐
- HTML4如何让一个DIV居中对齐?float输入日志标题
float:left,right clear:both 如何让一个DIV居中对齐? 第一步:设置外层的DIV的text-align:center; 第二步:设置里层的DIV的margin:auto 以 ...
- 持续更新visual studio 命令、快捷键(原创)
“格式化代码” Ctrl + E + D “注释” Ctrl + E + C “取消注释” Ctrl + E + U “点代替空白” 编辑-高级-显示空白 快捷键 Ctrl + E + S
- hdu1867A + B for you again
Problem Description Generally speaking, there are a lot of problems about strings processing. Now yo ...
- .Net之垃圾回收算法
垃圾回收器检测托管堆中是否有应用程序不在使用的任何对象,如果一次垃圾回收之后,堆栈没有可用的内存,new操作符将会抛出OutOfMemoryException(内存溢出). 每一个应用程序都包含一组根 ...
- 基于jQuery的前端如何做到无伤迁移
首先,解释一下我个人对前端无伤迁移的理解,即移动端和PC端使用同一套代码,或者说原本在PC端运行得很完美的代码,只要修改少许,就可以在移动端完美运行. 当然,大部分的公司会专门为移动端设计了一套,同时 ...
- Android_自定义进度条
转载:http://blog.csdn.net/lmj623565791/article/details/43371299 ,本文出自:[张鸿洋的博客] 1.概述 最近需要用进度条,秉着不重复造轮子的 ...
- xml drawable
1.Shape drawable:改变组件的形状和渐变xml shape标签 corner标签:改变轮廓 gradient:颜色填充的渐变 android:angle android:angle=“ ...
- Python学习笔记6-Python中re(正则表达式)模块学习
今天学习了Python中有关正则表达式的知识.关于正则表达式的语法,不作过多解释,网上有许多学习的资料.这里主要介绍Python中常用的正则表达式处理函数. re.match re.match 尝试从 ...
- 在CGridView调用CJuiDialog的弹出层
<?php $this->widget('zii.widgets.grid.CGridView', array( 'id'=>'user-grid', 'dataProv ...
- 分布式拒绝服务攻击(DDoS)原理及防范【转】
DDoS攻击概念 DoS的攻击方式有很多种,最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应. DDoS攻击手段是在传统的DoS攻击基础之上产生的一类攻击 ...