您的位置:首页 > 移动开发 > Objective-C

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: