黑马程序员——OC语言基础:面向对象三大特性,封装、继承、多态

时间:2023-02-14 07:58:32
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一、封装性

1.set方法

#import<Foundation/Foundation.h>

@interface Student : NSObject
{
//@public 成员变量尽量不要用@public
int age;
}
//提供一个方法给外界设置age属性值
//set方法
//方法声明
- (void) setAge:(int)newAge; 
 - (int)age;  - (void)study;@end//方法实现@implementation Student-(void)setAge:(int)newAge;{if(newAge <= 0){newAge = 1;}age = newAge;}- (void) study;{NSLog(@"%d岁的学生在学习",age);}@endint main(){Student *stu = [Student New];[stu setAge:0];//set方法设置的age值
<span style="white-space:pre"></span>[stu age];//get方法返回的age值[stu study];}
总结:set方法:1.作用: 提供一个方法给外界设置成员变量值,可以在方法里面对参数进行相应过滤
                              2.命名规范: 1> 方法名必须以set开头
                                                       2> set后面跟上成员变量的名称,成员变量的首字母必须大写
                                                       3> 返回值一定是void
                                                       4> 一定要接收一个参数,而且参数类型跟成员变量类型一致
                                                       5> 形参的名称不能跟成员变量名一样
 2.get方法

- (int)age
{
return age;
}

总结:get方法: 1.作用:返回对象内部的成员变量
                               2.命名规范: 1> 肯定有返回值,返回值类型肯定与成员变量类型一致
                                                        2> 方法名跟成员变量名一样
                                                        3> 不需要接收任何参数
  二、继承性

1.继承的基本用法

// Animal的声明
@interface Animal : NSObject
{
@public
int weight;
}
- (void)eat;
@end
// Animal的定义
@implementation Animal
- (void)eat {
NSLog(@"吃吃吃-体重:%d", weight);
}
@end
子类在父类的基础上拓充属性和方法
// Bird的声明
@interface Bird : Animal
{
@public
int height;
}
- (void)fly;
@end

// Bird的定义
@implementation Bird
- (void)fly {
NSLog(@"飞飞飞-高度:%d", height);
}
@end

// Dog的声明
@interface Dog : Animal
{
@public
int speed;
}
- (void)run;
@end
// Dog的定义
@implementation Dog
- (void)run {
NSLog(@"跑跑跑-高度:%d", speed);
}
@end

总结:1. 子类方法和属性的访问过程:如果子类没有,就去访问父类的

            2.NSObject的引出:全部OC类的最终父类,包含了一些常用方法,比如+new

            3.父类被继承了还是能照常使用的


三、多态性

//多态的体现

Person *p = [Student new];
p->age = 100;
[p walk];

总结:1. 子类对象赋值给父类指针
            2. 父类指针访问对应的属性和方法

            

收获心得:面向对象的三大特性使我们今后OC编程必须牢记的知识点,能够帮助我们快速的理解面向对象的编程理念。