点语法: 

   为了给程序员提供便捷,OC中也引入了点语法。不过它和Java中点语法的意义是完全不同的。

  在Java中无论调用任何方法,还是访问public类型的成员变量都是用点语法(.号)。

  而在OC中只规定点语法只可以替代set和get方法。

  例如。stu.age = 23;它的本质是[stu setAge : 23];  即,为stu的age属性赋值为23。

  int myAge = stu.age; 它的本质是[stu age]; 即,获取stu的age属性并赋值给MyAge。

注意:

  OC中的点语法只是为了给开发者提供便捷,而规定的代替写法。但是它调用函数的本质还是OC的方括号调用法。也就说编译器编译时会把点语法转换为方括号语法。

  stu.age 在Java中表示stu对象访问public的属性age,但是在OC中却不是,它表示stu对象调用getAge()或setAge()方法。

  

self关键字:

   OC中的self和Java中的this类似,似乎都代表当前方法的调用者。其实它们还是有区别的。

  Java中的this只能用在动态方法(对象方法)中表示当前对象,这个调用者只能是“对象”;

  而OC中的self既能用在动态方法中表示当前对象,也能用在静态方法(类方法)中表示当前类。万变不离其宗,可以理解为,self代表当前方法的调用者。

OC语法3——点语法,self关键字的更多相关文章

  1. 【iOS系列】-oc中特有的语法

    [iOS系列]-oc中特有的语法 oc数据类型: 1,基本类型 2,对象类型 3,id 4,BOOL 5,block 6,SEL 1:category 使用继承关系来扩充一个类,有一个弊病,高耦合性 ...

  2. python学习第五讲,python基础语法之函数语法,与Import导入模块.

    目录 python学习第五讲,python基础语法之函数语法,与Import导入模块. 一丶函数简介 1.函数语法定义 2.函数的调用 3.函数的文档注释 4.函数的参数 5.函数的形参跟实参 6.函 ...

  3. php语法同java语法的基本区别(实例项目需求,php才能熟)

    php语法同java语法的基本区别(实例项目需求,php才能熟) 一.总结 看下面 二.PHP基本语法以及和Java的区别 .表示字符串相加 ->同Java中的. $作为变量的前缀,除此之外,变 ...

  4. .NET LINQ查询语法与方法语法

    LINQ 查询语法与方法语法      通过使用 C# 3.0 中引入的声明性查询语法,介绍性 LINQ 文档中的多数查询都被编写为查询表达式. 但是,.NET 公共语言运行时 (CLR) 本身并不具 ...

  5. 让 zend studio 识别 Phalcon语法并且进行语法提示

    让 zend studio  识别 Phalcon语法并且进行语法提示 https://github.com/phalcon/phalcon-devtools/tree/master/ide 下载解压 ...

  6. 如何让 zend studio 10 识别 Phalcon语法并且进行语法提示

    让 zend studio 10 识别 Phalcon语法并且进行语法提示 https://github.com/rogerthomas84/PhalconPHPDoc 下载解压后,把里面 phalc ...

  7. C#3.0新增功能09 LINQ 基础07 LINQ 中的查询语法和方法语法

    连载目录    [已更新最新开发文章,点击查看详细] 介绍性的语言集成查询 (LINQ) 文档中的大多数查询是使用 LINQ 声明性查询语法编写的.但是在编译代码时,查询语法必须转换为针对 .NET ...

  8. iOS学习12之OC属性和点语法

    1.属性(@property和@Synthesize) 1> 属性是 Objective-C 2.0 定义的语法,提供 setter 和 getter 方法的默认实现.在一定程度上简化代码,并且 ...

  9. OC中的点语法,成员变量的作用域

    点语法 点语法本质是函数的调用,不是像java中那样,是用来访问成员变量的:oc中访问成员变量是用 -> 访问的: Person *p = [Person new]; p.age = 10; / ...

随机推荐

  1. JavaScript创建类的方式

    一些写类工具函数或框架的写类方式本质上都是 构造函数+原型.只有理解这一点才能真正明白如何用JavaScript写出面向对象的代码,或者说组织代码的方式使用面向对象方式.当然用JS也可写出函数式的代码 ...

  2. LeetCode Day3

     Lowest Common Ancestor of a Binary Search Tree import java.util.ArrayList; import java.util.List; / ...

  3. ChartConlrol二维图表类型

    WinForms Controls >Controls > Chart Control > Concepts > Creating Charts > 2D Chart T ...

  4. 【27前端】背景半透明rgba LESS实践

    今天有看到司徒正美<背景半透明rgba最佳实践>的文章和里面推荐的一个在线工具CSS背景颜色属性值转换  . 于是联系到自己的less库,新技能Get. 内容如下: /*在你的less库中 ...

  5. (二)Activity启动模式

    一.标准模式(standrard) 1.当新建一个Activity时,默认情况下就是标准模式,也可以通过AndroidManifest文件显示指定其launchMode为standard <?x ...

  6. html form表单提交数据并后台获取

    前台: HTML的代码:(关键是要在form里设置enctype="multipart/form-data",这样才能在提交表单时,将文件以二进制流的形式传输到服务器) <h ...

  7. HDU 1020 Encoding POJ 3438 Look and Say

    Encoding Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...

  8. javac编译原理(一)

    我们都知道,计算机只能识别二进制语言,是不能直接识别java c c++等高级语言的.将高级语言转化成计算机可以是别的二进制语言,这个过程就叫编译. 有次面试,面试官问了一道“java的编译原理是什么 ...

  9. linux下小记

    今天碰到一个问题 记录下 /usr/bin/ld: cannot find ld 和ldconfig的区别 使用makefile编译的时候提示ld提示某个so找不到 当时使用ldconfig查了下 发 ...

  10. JDK常见问题 环境变量配置

    "javac不是内部命令或外部命令" Windows7 安装"jdk-6u26-windows-x64.exe"后,常提示"javac不是内部命令或外 ...