为了账号安全,请及时绑定邮箱和手机立即绑定

Objective-C面向对象初体验

难度初级
时长 1小时59分
学习人数
综合评分9.70
57人评价 查看评价
9.8 内容实用
9.8 简洁易懂
9.5 逻辑清晰
  • 很久很久以前,江湖中有一家名为【迈克拉斯】的门派,---------//myClass 这个门派有很多高手。------------------------------------- //myClass中的实例 突然有一天,江湖上又出现一家门派名叫【迈撒泼克拉斯】------//mySubClass 这个门派里面都是新人,------------------------------------//init 虽然看起来也年纪轻轻,却也一身绝学。----------------------//继承 不过有天人们发现,他们出招时候, 都要先大吼一声,再发招------------------------------------//函数先声明才能使用 【迈撒泼克拉斯 夺命飞刀】--------------------------------//[类名 方法名] 敌人应声倒地。鲜血喷涌而出。---------------------------- //返回值类型:(blood) 不过人们凑近一看,飞上上赫然写着: @"迈克拉斯夺命飞刀" 人们好奇地问迈撒波克拉斯,为何飞刀上写着其他门派的名字? 【迈撒波克拉斯 report】 2015-01-10 16:17:11.269 AngryBugs[1632:64895] 迈克拉斯是我爹
    查看全部
  • 虽然说“迈撒波克拉斯”继承了“迈克拉斯”所有绝学----------//子类继承方法 但是“迈克拉斯”却吧一些武器私藏起来,并未传授。-----//父类将部分变量私有 于是有一天,“迈撒波克拉斯”遇到了一个高手。 对手出招凌冽,快如疾风,咄咄逼人! “撒波克拉斯”不停接招时,突然想起背包中有爹传给他的“飞箭”! 于是赶紧从背包里面掏出自己的飞弩,----------------//子类调用子类函数 装上爹的飞箭。------------------------------------//子类函数使用父类变量 大吼一声------------------------------------------------------//声明函数 【迈撒波克拉斯 我的飞弩】!!!-----------------------------//[类名 方法] 猛地够动扳机,--------------------------------------------//使用子类函数 然而,飞箭并未射出!----------------------------------------//语法有错误 这时天空传来一个声音!---------------------------------------//系统报错 “错误!你爹的飞箭是私有变量!”-----------------------------//错误内容 我叉!这尼玛是坑娃啊!! “迈撒波克拉斯”又赶紧从背包里面掏出来一个大家伙, 【迈撒波克拉斯 爹的飞弩】!!!------------------------//子类调用用父类函数 飞箭瞬间倾斜而出,-------------------------//父类函数可以调用父类私有变量 敌人猝不及防,应声倒地,吼了一声“啊”!--------------//返回值类型“字符”
    查看全部
  • // People.h文件 #import <Foundation/Foundation.h> @interface People : NSObject { NSString *_peopleName; int _PeopleAge; int _peopleSex; //或者※※@public NSString *_peopleName int _PeopleAge; int _peopleSex; // } @property(nonatomic,strong)NSString *peopleName; // peopleName不能加_ 否则会导致属性和成员变量重名 //因为在调用的时候无法分辨是调用成员变量还是属性 //在类内不会调用属性 //为了解决这问题,属性对应的成员变量名会去掉_ //(推荐使用_进行区分) @end ------------------------------------ 在新版本中的变化:可以自动添加成员变量 不需要将其写在.h中,可以直接写在.m文件中(写在※) ————当然属性依然要声明在.h中 // People.h文件 #import <Foundation/Foundation.h> @interface People : NSObject { // 删掉本行NSString *_peopleName;// } @property(nonatomic,strong)NSString *peopleName; @end ---------------------- // .m文件 #import "People.h" @inplementation People { ※int _peopleAge; ※int _peopleSex; } - (instancetype)init { self = [super init]; if(self){ _peopleName = @"123"; //可以直接调用peopleName,只要在.h中声明过*peopleName 程序会自动生成_peopleName在类内 } return self; }
    查看全部
  • OOA OOP
    查看全部
    3 采集 收起 来源:OOP简介

    2015-04-21

  • init 方法: 都做了什么? -(id)init; //id 可以返回各种类型的对象,可以直接用id 代替 -(instancetype)init; // 只能返回当前类的类型,如当前是People类就只能返回People 对于初始化方法来说 两种没有区别 都可以 但是别的方法来说一般id会导致问题,所以推荐用instancetype 初始化方法的重写 ------------------------- //.h 方法的重写 -(instancetype)init; ------------------------- //.m 实现的固定格式(Xcode可以自动检索补全) -(instancetype)init; { self = [super init]; if (self) { // 例如在People类中的peopleName/peopleAge等就可以在初始化中进行赋值 _peopleName = @"zhangsan"; _peopleAge =30; } return self; } -(int)report { NSlog(@"peopleName = %@",_peopleName); NSlog(@"peopleAge =%d",_peopleAge); return 20; } ------------------------- // main.m // 调用部分 People *p1 = [[People alloc]init]; int a =[p1 report]; //p1调用report方法 NSlog)(@"a = %d",a) // 运行结果 peoleName = zhangsan 打印了初始化中的name和age peopleAge = 30 a = 20 打印了report中的return20
    查看全部
  • 由类到对象:对象化 由对象到类:抽象化
    查看全部
    2 采集 收起 来源:OOP简介

    2015-05-06

  • OOA面向对象分析A:anylyse OOD面向对象设计D:design
    查看全部
    2 采集 收起 来源:OOP简介

    2015-05-06

  • 面向对象思想不仅仅应用于软件开发,也应用在数据库系统分布式系统中等等
    查看全部
    2 采集 收起 来源:OOP简介

    2015-05-06

  • oop(objective oriented programmong)面向对象编程
    查看全部
    2 采集 收起 来源:OOP简介

    2015-05-06

  • 还没
    查看全部
    2 采集 收起 来源:OOP简介

    2015-04-18

  • People *p1 = [[People alloc] init]; People *p2 = [[People alloc] init]; People *p3 = [People new]; NSLog(@"p1=%p",p1); NSLog(@"p2=%p",p2); NSLog(@"p3=%p",p3); console: 2016-04-13 15:20:33.406 les3[2141:72950] p1=0x1005000a0 2016-04-13 15:20:33.407 les3[2141:72950] p2=0x1005000b0 2016-04-13 15:20:33.407 les3[2141:72950] p3=0x100500230 Program ended with exit code: 0
    查看全部
  • OC中对象方法名为,去掉方法类型(+/-),去掉参数类型和参数名,剩下的即为对象方法名。(即':'也属于方法名的一部分) ps:oc的设定为啥这么逆天~
    查看全部
  • 自定义初始化方法 //.h -(intancetype)initWithPeopleName:(NSString *)peopleName andPeopleAge:(int)peopleAge // 加了两个参数 -(int)report -------------------------------- //.m -(intancetype)initWithPeopleName:(NSString *)peopleName andPeopleAge:(int)peopleAge { self = [super init] //固定格式依然要有 if(self) //如果self存在 { _peopleName = peopleName; _peopleAge = peopleAge; } return self; } -(int)report { NSlog(@"peopleName = %@",_peopleName); NSlog(@"peopleAge =%d",_peopleAge); return 20; } -------------------------------- // main.m // 调用部分 int a =[p1 report]; NSlog(@"a = %d",a) People *p2 = [People alloc]initWithPeopleName:@"zhangsan" andPeopleAge:20 People *p3 = [People alloc]initWithPeopleName:@"lisi" andPeopleAge:40 int a2 = [p2 report]; int a3 = [p3 report]; //运行结果: peopleName = zhangsan peopleAge = 20 peopleName = lisi peopleAge = 40
    查看全部
  • ----------- 实现文件的调用需要添加一行return返回值; 在main函数中调用的时候:需要有int类型变量来接受返回值: [p1 report1] 变为 int a = [p1 report1]
    查看全部
  • // People.h文件 #import <Foundation/Foundation.h> @interface People : NSObject { NSString *_peopleName; //name是对象,要加星 int _PeopleAge; //age(0和1表示)和sex不是对象,不加星 int _peopleSex; //如果以上想在类外使用,需要修改他们的级别,写成: ※※@public NSString *_peopleName int _PeopleAge; int _peopleSex; } @property(nonatomic,strong)NSString *peopleName; //将peopleName,不加“_”声明为属性,为了在类外也能访问成员变量 //属性就是成员变量的外部接口 //NSString对应strong @end --------- .m #import <Fondation/Fondation.h> #import "People.h" int main(int argc, const char * argv[]){ @autoreleasepool{ People *p1 = [[People alloc] init]; People *p2 = [[People alloc] init]; People *p3 = [[People new]]; NSlog(@"p1 - %p",p1); NSlog(@"p2 - %p",p2); NSlog(@"p3 - %p",p3); p1.peopleName = @"li"; //在类外调用了peopleName } return 0; } ------ .mm #import "People.h" @inplementation People - (instancetype)init { self = [super init]; if(self){ _peopleName = @"zhang" //在类内的使用 } }
    查看全部
首页上一页1234567下一页尾页

举报

0/150
提交
取消
课程须知
需要有Objective-C的基础
老师告诉你能学到什么?
面向对象编程思想 OC中的继承 封装 多态的实现

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!