oc學習筆記(六)物件導向 開發技巧

2021-06-22 06:05:14 字數 3164 閱讀 5921

一、練習題兩點間距離,和判斷兩個圓是否相交

/*

5.設計乙個類point2d,用來表示二維平面中某個點

1> 屬性

* double _x

* double _y

2> 方法

* 屬性相應的set和get方法

* 設計乙個物件方法同時設定x和y

* 設計乙個物件方法計算跟其他點的距離

* 設計乙個類方法計算兩個點之間的距離

3> 提示

* c語言的math.h中有個函式:double pow(double n, double m); 計算n的m次方

* c語言的math.h中有個函式:double sqrt(double n); 計算根號n的值(對n進行開根)

*/#import #import //點

@inte***ce point2d : nsobject

//x值的getter和setter

- (void)setx:(double)x;

- (double)x;

//y值的getter和setter

- (void)sety:(double)y;

- (double)y;

//同時設定x值和y的值

-(void)setx:(double)x andy:(double)y;

//計算跟其他點的距離

-(double)distancewithother:(point2d *)other;

//計算兩個點之間的距離

+(double)distancebetweenpoint1:(point2d *)p1 andpoint2:(point2d *)p2;

@end

@implementation point2d

//x值的getter和setter

- (void)setx:(double)x

- (double)x

//y值的getter和setter

- (void)sety:(double)y

- (double)y

//同時設定x值和y的值

-(void)setx:(double)x andy:(double)y

//計算跟其他點的距離

-(double)distancewithother:(point2d *)other

//計算兩個點之間的距離

+(double)distancebetweenpoint1:(point2d *)p1 andpoint2:(point2d *)p2

@end

/** 6.設計乙個類circle,用來表示二維平面中的圓

1> 屬性

* double radius (半徑)

* point2d *point (圓心)

2> 方法

* 屬性相應的set和get方法

* 設計乙個物件方法判斷跟其他圓是否相交(重疊返回yes,否則返回no)

* 設計乙個類方法判斷兩個圓是否相交(重疊返回yes,否則返回no)

*/@inte***ce circle :nsobject

//半徑的getter和setter

- (void)setradius:(double)radius;

- (double)radius;

//圓心的getter和setter

- (void)setpoint:(point2d *)point;

- (point2d *)point;

//物件方法判斷跟其他圓是否相交(重疊返回yes,否則返回no)

//返回值是bool型別的,方法名一般以is開頭

- (bool)isinteractwithother:(circle *)other;

//類方法判斷兩個圓是否相交(重疊返回yes,否則返回no)

+ (bool)isinteractbetweenwithcircle1:(circle *)c1 andcircle2:(circle *)c2;

@end

@implementation circle

//半徑的getter和setter

- (void)setradius:(double)radius

- (double)radius

//圓心的getter和setter

- (void)setpoint:(point2d *)point

- (point2d *)point

//物件方法判斷跟其他圓是否相交(重疊返回yes,否則返回no)

//返回值是bool型別的,方法名一般以is開頭

- (bool)isinteractwithother:(circle *)other

// else

//

return distance < radiussum;

}//類方法判斷兩個圓是否相交(重疊返回yes,否則返回no)

+ (bool)isinteractbetweenwithcircle1:(circle *)c1 andcircle2:(circle *)c2

@end

int main()

二、多檔案開發

1.習慣把類的宣告和實現分開存放:

.h成員變數、方法的宣告

.m方法的實現

如果想使用某個類,只需要加入.h檔案即可如下:

#import  

#import  

2.多檔案開發,編譯可以分開編譯,

但鏈結的時候要多個檔案一起,否則是出錯的

cc circle.o point2d.o 00-第6題作業.o -framework foundation

3.在xcode 中點run會把所有檔案編譯,鏈結執行

三、xcode 技巧

1.command +q 退出xcode所有開啟檔案。

2.xcode中在.m檔案中 寫方法實現,

可以先敲- setage 這樣的,就會出現下方自動提示

- (void)setage(int)age

3.xcode特有的注釋方法

#pragma mark - 姓名的set方法

- (void)setname:(nsstring *)name

其中的 - 可產生橫線方便區分,查詢。

4.如果**沒有錯,就看鏈結的錯

點左上角!號圖示

六 物件導向(中)

類的構造方法 類的訪問許可權 繼承 多型 init 構造方法 作用 用於物件建立時初始化 書寫格式 init前後分別是兩個下劃線 程式不顯示定義init方法,則程式預設呼叫乙個無參init方法 物件建立過程 類的構造方法 init 設定物件屬性 def init self.gender,variet...

六 物件導向案例分析

編寫乙個完整的位址類進行測試,並列印出來class address public address string countrv,string porvince,string city,string district public void send public string getcountrv ...

核心程式設計(六) 物件導向 封裝

什麼是封裝呢?在前面是不是寫過這樣的 class dog froom ch def init self,name,age,kind erha self.blood 100 self.kind kind self.age age self.name name在當時我是不是說 ini 下放的是例項的私有...