1.如果你学过JAVA语言的的话,点调用的经常使用到的。
在JAVA中创建一个学生类:
publicclass student {
private String name;
private String age;
publicvoid setName(String name){
this.name = name;
}
public String getName(){
returnname;
}
}
如果我们要调用student中的setName方法直接使用创建student.setName("张三")就可以使用setName方法,由于在JAVA中我们的类的属性通常都是私有的不可以直接调用的。所以要调用set方法设置值.
2.上面的例子只是回顾下什么叫做点调用:Object-c例子:
//-------------------------------------------------------------定义文件
#import <Foundation/Foundation.h>
@interface what : NSObject{
@public
int _age ;
@public
int _number;
}
-(void) setAge:(int) newAge;
-(int) age;
-(void) setNumber:(int) newNumber;
-(int) number;
@end
//-------------------------------------------------------------实现文件
#import "what.h"
@implementation what
-(int)age{
NSLog(@"age的get方法");
return_age;
}
-(void)setAge:(int)newAge{
NSLog(@"age的set方法");
_age = newAge;
}
-(int)number{
NSLog(@"number的get方法");
return_number;
}
-(void)setNumber:(int)newNumber{
NSLog(@"numbe的get方法");
_number = newNumber;
}
@end
//-------------------------------------------------------------main方法
#import <Foundation/Foundation.h>
#import "what.h"
int main(int argc, constchar * argv[])
{
@autoreleasepool {
what *my = [[whatalloc] init];
//这里调用了setAge
my.age = 20;
//这里调用了setNumber
my.number = 100;
//这里调用了get方法
NSLog(@"my age is %i;and my number is %i",my.age,my.number);
}
return0;
}
------------------------------------------------------------------
当我们运行上面的程序后会打印:
2014-04-15 23:04:51.400 点调用[588:303] age的set方法
2014-04-15 23:04:51.402 点调用[588:303] numbe的get方法
2014-04-15 23:04:51.402 点调用[588:303] age的get方法
2014-04-15 23:04:51.402 点调用[588:303] number的get方法
2014-04-15 23:04:51.403 点调用[588:303] my age is 20;and my number is 100
------------------------------------------------------------------
从打印的结果来看,我们的Objec-c在使用点调用的时候,调用的是get或者set方法。
把打印的代码修改一下:
NSLog(@"my age is %i and my number is %i",my->_age,my->_number);
打印结果为:
------------------------------------------------------------------
2014-04-15 23:08:11.194 点调用[632:303] age的set方法
2014-04-15 23:08:11.204 点调用[632:303] numbe的get方法
2014-04-15 23:08:11.205 点调用[632:303] my age is 20 and my number is 100
------------------------------------------------------------------
从上面的打印可以看出我们没有调用get方法。
3.这里我要补充一下,这里我们使用了到了Object-c中的权限关键字:@public,
Object-c中权限有3种:
@public:任何类都可以方法
@protected:子类可以访问
@private:本类可以访问
在Object-c中默认的权限是@protected,也就是说子类可以访问。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。