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

------ 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);
}

@end

int 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编程必须牢记的知识点,能够帮助我们快速的理解面向对象的编程理念。                         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值