您好,登錄后才能下訂單哦!
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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。