#import "person.h"
@inte***ce student : person
nsinteger _num;//學號
nsinteger _scoar;//分數
@property(nonatomic, assign)
nsinteger
num;
@property(nonatomic, assign)
nsinteger
score;
- (void)printstudent;
- (void)changeweight;
- (void)changeheight;
- (void)changeplace;
@end
@implementationstudent
- (void)printstudent
//訪問從父類繼承過來的例項變數
nslog
(@"name = %@ age = %li",
_name
, _age);
//訪問自定義的例項變數
nslog
(@"num = %li score = %li",
_num
, _score);
- (void)changeweight
_weight = 56.7;
- (void)changeheight
//_height = 45;
self.height = 176;
- (void)changeplace
_place
= @"shanghai";
@end
@inte***ceperson :
nsobject
nsstring *_name;
nsinteger _age;
@protected//受保護的例項變數,在當前類可以直接訪問,子類可以直接繼承,但是在類外不可以直接訪問,可以通過方法的呼叫間接的訪問
float _weight;
@private//表示的是私有的例項變數,在當前類內可以直接訪問,子類不能繼承,子類可以通過方法間接訪問,在類外不可以直接訪問
float _height;
@public//公共的例項變數,在當前類內可以直接訪問,子類可以繼承,在類外也是可以通過 -> 直接訪問
nsstring *_place;
@property(nonatomic, assign)floatheight;
@property(nonatomic, assign)floatweight;
@property(nonatomic, copy)
nsstring
*name;
@property(nonatomic, assign)
nsinteger
age;
//@property預設展開的例項變數是私有的
@property(nonatomic, copy)
nsstring
*firstname;
@end
#import "person.h"
@implementationperson
- (void)setheight:(float)height
_height = height;
- (float)height
return
_height;
@end
#import
#import "student.h"
//物件導向語言的特點:封裝、繼承、多型
//繼承:
//生活中例子:繼承遺產
//繼承也叫做派生,子類繼承父類,在父類的基礎上派生自己的例項變數及方法
//person類是student類的父類
//student類是person類的子類
//父類
//person student
//superclass subclass
//parentclass childclass
//在oc中的寫法
//@inte***ce student : person
//@end
//子類繼承父類,子類繼承父類非私有的例項變數及非私有方法
//子類例項變數的構成 = 父類例項變數 + 子類自定義例項變數
//子類方法構成 = 父類非私有方法 + 子類自定義方法
int main(int argc, const
char * argv) {
@autoreleasepool{
student *stu = [[student
alloc] init];
stu.name = @"小飛";
stu.age = 12;
stu.num = 45;
stu.score = 99;
[stu printstudent];
//stu->_weight = 45.7;錯誤
stu.weight = 56.7;
nslog(@"weight = %.2f", stu.weight);
//stu->_height = 100;錯誤
stu.height = 178;
nslog(@"height = %.2f", stu.height);
stu->_place = @"beijing";
nslog(@"place = %@", stu->_place);
return0;
作用域及變數
作用域 重點 什麼是作用域,就是乙個變數可以生效的範圍 變數不是在所有地方都可以使用的,而這個變數的使用範圍就是作用域 全域性作用域 全域性作用域是最大的作用域 在全域性作用域中定義的變數可以在任何地方使用 頁面開啟的時候,瀏覽器會自動給我們生成乙個全域性作用域 window 這個作用域會一直存在,...
類 作用域 共享變數 例項變數
類變數和例項變數在操作上的區別 被所有例項共享的變數 class sapm spam spam x sapm y sapm x.spam spam y.spam spam sapm.data 123 x.data,y.data 123 123 對例項的屬性進行賦值運算會在該例項內建立或修改變數名,而...
Js 變數及作用域
一 變數包含兩種不同資料型別的值 基本型別值 引用型別值 1 基本型別值 1.簡單的資料段,被儲存在棧記憶體中 2.按值訪問 3.不能給基本型別的值新增屬性 4.從乙個變數向另乙個變數複製值時,會建立這個值的副本,兩個變數不相互影響 2.引用型別值 1.值是儲存在記憶體中的物件,儲存在堆記憶體中 2...