Objective-C语法学习-static关键字
在变量声明前加上关键字static,可以使局部变量保留多次调用一个方法所得的值。如下:
[objc] static int hitCount = 0; [/objc]
声明整数hitCount是一个静态变量。和其他常量局部变量不同,静态变量的初始值为0,所以前面显示的初始化是多余的。此外,他们只在程序开始执行时初始化一次,并且在多次调用方法时保存这些数值。
在变量声明前加上关键字static,可以使局部变量保留多次调用一个方法所得的值。如下:
[objc] static int hitCount = 0; [/objc]
声明整数hitCount是一个静态变量。和其他常量局部变量不同,静态变量的初始值为0,所以前面显示的初始化是多余的。此外,他们只在程序开始执行时初始化一次,并且在多次调用方法时保存这些数值。
Objective-C语言允许你使用非常简便的语法访问属性。要获得myFraction中存储的numerator的值,可使用下面的语句:
[objc] Fraction* myFraction = [[Fraction alloc] init]; [myFraction numerator]; [/objc]
Objective-C如何实现多参数输入呢?
先复习一下objc怎么传递参数,例如:
[objc] //声明部分 -(void)setNumerator:(int)n;
//测试部分 [myFraction setNumerator:1]; [/objc]
通过方法名后面跟上冒号,表示接受的参数。
在objc中,可以自动生成设置函数方法和获取函数方法(统称为存取器方法)。
第一步是在接口部分中使用@property指令标识属性。这些属性通常是实例变量。在Fraction类中,两个实例变量numerator和denominator都属于此类属性。例如:
我们知道了Objective-C中传递参数的方式,但是如果我们需要把一个实例对象作为参数传递时该如何做呢?
假设我们有一个Fraction类,现在我们有一个方法需要接受它自己的实例对象,那么我们可以这样做:
[objc] @interface Fraction:NSObject … @end [/objc]
NSObject是所有类的根类,Fraction由NSObject派生而来。类Fraction称为子或者子类(subclass)。所有未明确继承父类的类都默认继承NSObject。
与Java不同,objc中的Long是用来修饰其他类型的,比如
如果直接把限定词long放在int声明之前,那么所声明的整型变量在某些计算机上具有扩展的值域。例子如下:
什么是接口?
实例接口(Object Interface),在Java中声明一个类,然后用new关键字产生一个实例,它是对一个类型的实物的描述,这是一种接口。Java中的类也是一种接口。
很多想开发iOS,或者正在开发iOS的程序员以前都做过Java或者C++,当第一次看到Objective-C的代码时都会头疼,Objective-C的代码在语法上和Java, C++有着很大的区别,有的同学会感觉像是看天书一样。不过,语言都是相通的,有很多共性。下面列出Objective-C语言的语法和Java,C++的对比,这样你就会很容易Objective-C的语法是怎么回事了。