函數與對象,函數對象
執行個體:寫一個車的類
//類的聲明部分
@interface Car : NSObject
{
int _speed; //速度
int _wheel; //輪子
}
-(void)run;
@end
//類的實現部分
@implementation Car
-(void)run{
NSLog(@"車的速度是:%i,輪子是%i",_speed,_wheel);
}
@end
//函數的存在不依賴於類
void test1(Car *_car){
_car->_speed = 120;
_car->_wheel = 2;
}
//OC的類都是資料類型,可以做參數
void test2(Car *_car){
Car *car2 = [Car new];
car2->_wheel = 4;
car2->_speed = 200;
_car = car2
_car->_speed = 220;
_car->_wheel = 6;
}
#import <Foundation/Foundation.h>
int main(){
Car *car1 = [Car new];
car1->_speed = 100;
car1->_wheel =4;
test2(car1);
[car1 run]; //實現的結果還是100 4
return 0;
}
java中函數與對象的不同
//假設這個是人對象public class Person{ private String name;//他可以擁有名字屬性 private int age;//年齡屬性 //這個就是方法(也可以叫函數),這種是沒有傳回值的 public void eat(){ System.out.println("吃東西"); } //這個是有傳回值的 public boolean isFat(int kg){ if(kg==100){ System.out.println("太肥了"); } }}
對象與成員函數
類是c++的一種資料類型,是一個屬性(資料)集及其操作(行為)的封裝體;對象是類的一個具體的執行個體,具有該類的屬性;這兩者就是共性和個性的關係。
類定義的時候一般都包括聲明資料成員和成員函數,成員函數規定了類的行為屬性,當然建構函式也是一個成員函數
對於前兩個補充問題,可以這麼理解。最後一個,這個對象已經不完全屬於這個類了,它有自己專屬的資料和行為,那麼它是屬於這個類的一個衍生類別的對象,也就是擁有了基類的一種衍生類別的所有屬性。歸根結底,還是一句話,一種對象是對應類的一個執行個體