[好程序员训练营]Objective-C学习笔记---点语法

<A href="http://www.goodprogrammer.org/" target="blank">ios培训</A>------我的OC语言笔记,期待与您交流!  

在java等面向对象的语言中,常常会用到obj.方法,或者用到obj.属性来调用对象的方法和属性。OC为了使使用其他语言的程序设计者更好学习OC,所以OC也引入了点语法,但是从根本上讲,OC的点语法和java等语言的点语法还是有一定区别的,下面我们就来看看怎么使用OC的点语法。

 1  @interface  Person:NSObject{
 2  @private
 3      int age;
 4  }
 5
 6  -(void)setAge:(int)Newage;            //声明setter函数
 7  -(int)age;                                     //声明getter函数
 8  @end
 9
10  @implementation Person                //实现setter和getter函数
11 -(void)setAge:(int)Newage{
12    age = Newage;
13 }
14
15 -(int)age{
16     return age;
17 }
18 int main(int argc, const char * argv[]) {
19     Person * xiaoming = [Person alloc];
20
21     xiaoming.age = 21;                       //通过点语法为字段age赋值
22    NSLog(@"%d",xiaoming.age);         //通过点语法取得字段age的值
23
24     return 0;
25 }

  上面的代码中,xiaoming.age实际上是调用了一个函数[xiaoming setAge];而下面将xiaoming.age打印出来则是调用了[xiaoming age];所以问题的实质就是在使用点语法为一个字段赋值或者调取一个字段的时候,系统会自动调用这个字段对应的setter和getter函数,这个字段对应的setter 和getter 函数是这样的,假如咱们的字段名为age,则对应的getter 和 setter函数的形式为:

              -(int)setAge:(int)Newage;

              -(int)age;

除了我们自己声明和实现setter 或者getter函数,我们也可以以让编译器来为我们实现这两个函数,来看代码

 1 @interface  Person:NSObject{
 2 @private
 3     int age;
 4 }
 5 @property int age;                //编译器自动声明age对应的getter 函数和setter 函数
 6 @end
 7
 8 @implementation Person
 9 @synthesize age;                  //编译器自动实现age对应的getter 和setter 函数
10 @end
11 int main(int argc, const char * argv[]) {
12     Person * xiaoming = [Person alloc];
13
14     xiaoming.age = 21;
15
16    NSLog(@"%d",xiaoming.age);
17
18     return 0;
19 }

  在这段代码的第五行的语句就告诉编译器,你给我声明age对应的getter 函数和setter 函数,第九行的语句就告诉编译器你给我实现age对应的getter 和setter 函数,这样我们就不必自己去写字段对应的setter 和getter函数,当然了,你也可以自己在下面重新复写setter 或者getter 函数,添加你想添加的内容。

备注:欢迎大家指出博客中存在的不足或者错误,我的QQ号码是993371649.

时间: 2024-11-05 06:26:01

[好程序员训练营]Objective-C学习笔记---点语法的相关文章

[好程序员训练营]Objective-C学习笔记---构造函数和析构函数

<A href="http://www.goodprogrammer.org/" target="blank">ios培训</A>------我的OC语言笔记,期待与您交流! 简单的讲,构造函数就是在创建一个对象的时候起到初始化的作用,对这个对象里的一些成员变量进行初始化,析构函数就是在对象被删除进行一些清理工作,也就是专门的扫尾工作,下面用代码来进行具体说明. 一.初始化函数 在OC中凡是已init开头的函数我们都称之为初始化函数,在声明初

[好程序员训练营]Objective-C学习笔记--基本数据结构NSArray

<A href="http://www.goodprogrammer.org/" target="blank">ios培训</A>------我的OC语言笔记,期待与您交流! 前言:NSArray是OC中的数组类,用NSArray可以创建一个不可变数组对象,而他的子类NSMutableArray则可以用来创建可变数组对象.下面分别介绍二者的部分用法. NSArray 1 NSArray * array = [[NSArray alloc] i

[好程序员训练营]Objective-C学习笔记---基本数据结构NSValue

<A href="http://www.gooodprogrammer.org/" target="blank">ios培训</A>------我的OC语言笔记,期待与您交流! NSValue是NSNumber的父类,NSNumber用于将基本数据类型int.char.float等存储成对象,NSValue则可以用于将装指针和结构体等更加复杂的类型存储为对象.因此他们的使用上还是有一定的区别. 1 struct sct{ //声明一个结构体

黑马程序员_JAVA UDP网络编程学习笔记

一.UDP网络编程概述 采用TCP协议通信时,客户端的Socket必须先与服务器建立连接,连接建立成功后,服务器端也会持有客户端连接的Socket,客户端的Socket与服务器端的Socket是对应的,它们构成了两个端点之间的虚拟通信链路.与TCP通信不同,UDP是面向无连接的.不可靠的基于数据包的传输协议.即应用进程(或程序)在使用UDP协议之前,不必先建立连接.自然,发送数据结束时也没有连接需要释放.因此,减少了开销和发送数据之前的延时.UDP也采用端口来区分进程. 在java中,java.

JAVA程序员养成计划之JVM学习笔记(2)-垃圾收集管理

本文对JVM垃圾收集进行说明,包括三种不同算法(标记复制.标记清除.标记整理),以及七种不同的垃圾收集器(Serial,ParNew,Serial Scavenge, CMS, Serial Old, Parallel Old, G1) 持续更新中- - 1. 垃圾回收相关概念 1.1. 垃圾回收对象 说到垃圾收集,首先得确定哪些是可回收的对象,这里涉及到java的四种引用方式,即强.软.弱.虚四类引用. 强引用:即普遍存在的对对象的引用,如指向通过new创建的对象 软引用:即程序运行非必须的对

JAVA程序员养成计划之JVM学习笔记(3)-JVM性能监控

本文对JVM的性能监控方法做整理. 持续更新中- - 1. JDK命令行工具 1.1. jps:虚拟机进程状况工具 JVM Process Status Tool, 显示系统内所有的HotSpot虚拟机进程,用于查看当前在jvm中运行的程序,包括虚拟机执行主类的名称以及进程ID. 1.2. jstat:虚拟机统计信息监视工具 JVM Statistics Monitoring Tool, 用于收集Hotspot虚拟机各方面的运行数据,包括类装载.内存.垃圾收集.JIT编译等运行数据. 1.3.

Linux C/C++程序员CentOS 6.5安装YouCompleteMe使用vim语法自动补全

标题: Linux C/C++程序员CentOS 6.5安装YouCompleteMe使用vim语法自动补全 Ubuntu/Debian/Fedora比较好安装,各种软件包都比较新 CentOS6系列很难装,各种软件包版本太低了 新手不要尝试在CentOS6系上安装,会有一种挫败感! 步骤: 1, 安装操作系统 2, 文件下载 3, 更新vim 4, 安装ycm 和 Vundle 5, 编译clang 6, 编译ycm_core 7, 效果图 8, 清理工作 1, 安装操作系统: CentOS-

《程序员修炼之道》读书笔记

<程序员修炼之道>读书笔记 提供多种选择,不要找接口 出了问题后,要提出各种解决方案的选择,而不是找借口:不要说事情做不到,要说明接下来做什么来挽回局面: 不要容忍破窗户 我们看到过整洁.运行良好的系统,一旦窗户开始破裂,就相当迅速的恶化: 不要留着破窗户不修:发现一个bug就修复一个,如果没有足够的时间进行恰当的修理,就用木板先订起来:或许你可以先把代码注释起来,或是显示"未实现"的消息:采取某种行动防止进一步的损坏,并说明情形在你的控制之下: 投资知识资产 我们喜欢把程

黑马程序员_第一天视频学习

一.      计算机和软件常识 1.      计算机运行原理 1)          硬件基本组成:硬盘.内存.CPU 2)          各个部件之间的运作协调(下图) 2.      计算机只能识别0和1 1)          0和1组成的指令 2)          0和1组成的数据 3.      计算机和软件的联系 1)          软件的基本概念:指令的集合 2)          软件的安装运行过程 3)          为什么要开发软件:写出能控制计算机的指令