封裝 繼承 多態(tài)
封裝
封裝是面向對象的特征之一趁俊,是對象和類概念的主要特性。也就是把客觀事物封裝成抽象的類钞楼,并且類可以把自己的數(shù)據(jù)和方法只讓可信的類或者對象操作谅辣,對不可信的進行信息隱封裝是面向對象的特征之一,是對象和類的主要特性前翎。
封裝 self關鍵字
//? set方法的封裝
main.m
#import <Foundation/Foundation.h>
#import "Student.h"
int main(int argc, const char * argv[])
{
Student *s = [Student new];
s->age = -10;
s->number = 20160120;
[s setAge:-10];
int a = [s age];
NSLog(@"age=%d",a);
[s study];
return 0;
}
Student.h
#import <Foundation/Foundation.h>
@interface Student : NSObject
{
//? @public
int _age;
int _number;
}
- (void)study;
//? set方法的聲明
/*
set方法(只寫)
1.作用:提供一個可以讓外界修改成員變量值的方法稚配,可以在我們的方法當中過濾一些不合理的參數(shù)
2.命名規(guī)范:
1>方法名必須以set開頭
2>方法名后面跟上成員變量名稱,成員變量的首字母必須大寫
3>返回值一定是void
4>一定要接受一個參數(shù)港华,而且這個參數(shù)的類型一定跟我們的成員變量的類型一樣
5>我們的參數(shù)名不能跟成員變量名一樣
*/
/*
get方法(只讀)
1.作用:返回對象內部的成員變量
2.命名規(guī)范:
1>肯定有返回值道川,返回值類型跟成員變量一致
2>方法名跟成員變量名一致
3>不要接受任何參數(shù)
*/
/*
成員變量的命名規(guī)范:一定要用下劃線開頭
作用:
1>讓成員變量和get方法的名稱區(qū)分
2>可以跟局部變量區(qū)分,一看到下劃線就知道是成員變量
*/
- (void)setAge:(int)age;
- (int)age;
@end
Student.m
#import "Student.h"
@implementation Student
- (void)study
{
NSLog(@"%d歲的學生正在學習",_age)苹丸;
}
- (void)setAge:(int)age
{
if (age <= 6)
{
age = 6;
}
_age = age;
}
- (int)age
{
int age;
//? 局部變量:定義在某方法里面的變量愤惰,只能在該方法內使用
return _age;
}
@end
- (void)study;