OC - ClassAndObject
2015-08-14 18:53
375 查看
<maim.m>
#import <Foundation/Foundation.h> #import "Person.h" #import "Student.h" #import "Teacher.h" /* 面向过程编程思想:以事件为中心,关心的是解决问题的步骤,实现函数一次调用(一步一步) 面向对象编程思想(OOP : Object Oriented Programming):以事物为中心,关心的是参与问题的对象有哪些,而完成这些问题只是对象所有功能中的一个小功能. 对象是类的实例; 类是对象的类型 类和对象是面向对象的核心。 */ // // ////接口部分 // ////类的接口部分:以@ inerface开头,以@end 结尾 ////@inerface + 类的名字:(表示继承) + 父类名 ////@interface 和 @end 中间是类型实例变量和方法的声明 ////只要是符合这种形式就可以定义一个类的接口部分 // //@interface person : NSObject // //类的静态特征(实例变量) //{ // NSString *_name;//姓名 // NSString *_sex;//性别 // NSInteger _age;//年龄 // CGFloat _weight;//体重 //} // ////行为(方法) //- (void)sayHi; // //- (void)eat; // //-(void)walk; // //@end // // // ////实现部分 // ////类的实现部分:以@implementation开头,以@end结尾 ////@implementation + 类名 ////@implementation 和 @end 中间是类的方法的实现 ////只要符合这种形式,就可以完成类的实现部分 //@implementation person //-(void)sayHi //{ // NSLog(@"你好"); //} // // //-(void)eat //{ // NSLog(@"吃饭"); //} // //-(void)walk //{ // NSLog(@"走路"); //} //@end // int main(int argc, const char * argv[]) { @autoreleasepool { //创建person 对象 Person *heXin = [[Person alloc] init]; //相当于 Person *heXin = [Peson alloc]; 和 heXin = [heXin init]; [heXin sayHi]; //[receiver message]; 是消息发送机制. [heXin eat]; [heXin walk]; NSLog(@"==%p==",heXin); //创建 phone 对象 Phone *xiaomi = [[Phone alloc] init]; [xiaomi calling]; //创建 student 对象 Student *zhangsan = [[Student alloc ] init]; //实例变量 NSLog(@"%@",zhangsan->_name); zhangsan->_age = 19; zhangsan->_sex = @"male"; zhangsan->_num = @"007"; NSLog(@"姓名%@,性别%@,年龄%ld, 学号%@",zhangsan->_name,zhangsan->_sex,zhangsan->_age,zhangsan->_num); //调用 [zhangsan playgame]; [zhangsan study]; [zhangsan sleep]; [zhangsan question]; //创建 teacher 对象 Teacher *lisi = [[Teacher alloc] init ]; //调用 [lisi introduce]; [lisi teaching]; [lisi sleep]; [lisi run]; //改名 lisi->_name = @"feifei"; lisi->_sex = @"female"; lisi->_num = @"119"; NSLog(@"%@,%@,%@",lisi->_name,lisi->_sex,lisi->_num); } return 0; }
<Person.h>
#import <Foundation/Foundation.h> //类的接口部分 @interface Person : NSObject //类的实例变量 { NSString *_name; //姓名 //定义对象类型用指针,定义数据类型不用* NSString *_sex; NSInteger _age; CGFloat _weight; //体重 } //类的方法 //打招呼 -(void)sayHi; //减号方法,是实例的方法 //吃饭 -(void)eat; //走路 -(void)walk; //重写 init -(id)init; //泛型 @end //加号方法,是类的方法
<Student.h>
#import <Foundation/Foundation.h> @interface Student : NSObject { //@protected //默认的,受保护的,当前类对象以及其子类能够访问 //@private //私有的,只有当前类的对象才能访问,子类不能访问 //@public //公共的,所有文件都可以访问 @public NSString *_name; NSString *_sex; NSString *_num; NSInteger _age; } //初始化方法 (一般第一个写初始化方法 在写其他的方法) 一个类只有一个初始化方法 -(id)init; //init 就是 initial //睡觉 -(void)sleep; //问问题 -(void)question; //玩游戏 -(void)playgame; //学习 -(void)study; @end
<Student.m>
#import "Student.h" @implementation Student -(id)init { _name = @"daMao"; return self; } -(void)sleep { NSLog(@"睡觉中"); } -(void)question { NSLog(@"问题中"); } -(void)playgame { NSLog(@"游戏中"); } -(void)study { NSLog(@"学习中"); } @end
<Teacher.h>
#import <Foundation/Foundation.h> @interface Teacher : NSObject { @public NSString *_name; NSString *_sex; NSString *_num; //职工号 } //初始化 -(id)init; //自我介绍 -(void)introduce; //上课 -(void)teaching; //睡觉 -(void)sleep; //跑步 -(void)run; @end
<Teacher.m>
#import "Teacher.h" @implementation Teacher //初始化 -(id)init { _name = @"lisi"; _sex = @"male"; _num = @"110"; return self; } //自我介绍 -(void)introduce { NSLog(@"name:%@,sex:%@,num:%@",_name,_sex,_num); } //上课 -(void)teaching { NSLog(@"上课"); } //睡觉 -(void)sleep { NSLog(@" 睡觉"); } //跑步 -(void)run { NSLog(@" 跑步"); } @end
相关文章推荐
- Objective-C 循环引用的处理
- Objective-C #include、#import 、 @class的使用区别
- ObjectiveC运行时类型
- Objective-C:深复制(拷贝)
- Objective-C:浅复制(拷贝)
- -[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object' 解决方法
- Objective-C:对象之间循环引用会造成死循环
- JS 对象(Object)和字符串(String)互转
- Objective-C:内存管理的小结
- 如何在Ubuntu系统里搭建Objective C学习环境
- Objective-C中copy的使用(深拷贝、浅拷贝详解)
- Objective-c中多线程使用AsyncSocket时报错
- 解决Java编译时的java/lang/NoClassDefFoundError: java/lang/Object 错误
- Objective-C 苹果开发文档 03 Working with Objects
- Large Object Support大对象支持
- python-可变迭代对象在for循环中的风险Risk in FOR loop while looping mutable iterable object
- 【iOS】objective-c2.0之基本数据类型
- 错误: g_dbus_connection_register_object: assertion 'G_IS_DBUS_CONNECTION (connection)' failed
- 【Objective-C】代码块(Block)
- Objective-c 中 nil, Nil, NULL和NSNull的区别