2015-11-24-OC_类和对象
//
// main.m
// OC_类和对象
//
// Created by YIem on 15/11/24.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//
import <Foundation/Foundation.h>
import "Person.h"
import "Car.h"
import "Phone.h"
import "HaoChiDe.h"
int main(int argc, const char * argv[]) {
// 创建对象
// [receiver message] 消息语法
// [调用方法的人 方法]
// 1.开辟内存空间
// 让Person类调用alloc方法 开辟一段内存空间 清空 返回首地址
// 使用指针保存了对象所在推内存空间地址 一般说使用指针代表对象
Person *p = [Person alloc]; // + 号
// 2.初始化
p = [p init];// init 初始化
// 创建对象正常人写法
Person *newP = [[Person alloc] init];
Car *a = [[Car alloc] init];
Phone *b = [[Phone alloc] init];
HaoChiDe *c = [[HaoChiDe alloc] init];
// alloc 类方法 + 由类调用
// init 实例方法 - 由对象调用
Person *dawa = [[Person alloc] init];
[dawa sayHi];
// public修饰下 在mian函数中(在Person类的外部) 通过 对象名->成员变量 进行取值/赋值
dawa->_name = @"二娃";
NSLog(@"%@", dawa->_name);// -> 指向操作符赋值
// dawa->_age = 10;
// dawa->_sex = @"m";
// dawa->_height = 1.0;
// NSLog(@"%@ %ld %@ %f", dawa->_name, dawa->_age, dawa->_sex, dawa->_height);
return 0;
}
//
// Person.h
// OC_类和对象
//
// Created by YIem on 15/11/24.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//
import <Foundation/Foundation.h>
// .h 用来放类的接口
// @: OC对C语言的扩展
// OC解决问题套路: 定义类->创建对象->使用对象
// 类的描述: 具有相同 特征 和 行为 的事物的抽象(集合)
// 类的构成: 接口(@interface...@end)/实现(@implementation...@end)
// 类和文件 没有关系
// .h文件被称为头文件/接口文件
// .m文件被称为实现文件
// 接口 类名 父类名
@interface Person : NSObject
{
// 类的特征
// 成员(实例)变量
// 成员变量可见度修饰符
// public(公开) private(私有) protected(保护) package(打包)
@public// 公开
// NSString * -> char */char
NSString *_name;// 名字
@protected
NSString *_sex;// 性别
// NSInteger -> int/long
NSInteger _age;// 年龄
// CGFloat -> float/double
@private
CGFloat _height;// 身高
}
// 行为
// 方法(类似函数)
// 对象 +
// 类 -
// void sayHi(void); // 函数无参数
// 方法声明
- (void)sayHi;
// 吃 - (void)eat;
// 喝 - (void)drink;
// 玩 - (void)play;
// 睡 - (void)sleep;
@end
//
// HaoChiDe.h
// OC_类和对象
//
// Created by YIem on 15/11/24.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//
import <Foundation/Foundation.h>
@interface HaoChiDe : NSObject
{
// 特征
@public
NSString *_color; // 色
NSString *_smell; // 香
NSString *_taste; // 味
NSString *_feel; // 意
NSString *_shape; // 型
}
// 行为
/// 吸引人
- (void)attractPerson;
/// 管饱 - (void)GuanBao;
@end
//
// Car.h
// OC_类和对象
//
// Created by YIem on 15/11/24.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//
import <Foundation/Foundation.h>
@interface Car : NSObject
{
@public
NSString *_ab;
NSString *_ac;
NSString *_ad;
NSString *_ae;
NSString *_af;
}
- (void)ba;
- (void)bc;
- (void)bd;
- (void)be;
@end
//
// Car.m
// OC_类和对象
//
// Created by YIem on 15/11/24.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//
import "Car.h"
@implementation Car
(void)ba
{NSLog(@"小汽车");
}
(void)bc
{NSLog(@"大汽车");
}
(void)bd
{NSLog(@"大客车");
}
(void)be
{NSLog(@"大卡车");
}
@end
//
// Phone.h
// OC_类和对象
//
// Created by YIem on 15/11/24.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//
import <Foundation/Foundation.h>
@interface Phone : NSObject
{
@public
NSString *_dadianhua;
NSString *_wan;
NSString *_shangwang;
NSString *_123;
}
- (void)weixin;
- (void)QQ;
- (void)play;
@end
//
// Phone.m
// OC_类和对象
//
// Created by YIem on 15/11/24.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//
import "Phone.h"
@implementation Phone
(void)weixin
{NSLog(@"微信");
}
(void)QQ
{NSLog(@"QQ");
}
(void)play
{NSLog(@"玩游戏");
}
@end
//
// HaoChiDe.m
// OC_类和对象
//
// Created by YIem on 15/11/24.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//
import "HaoChiDe.h"
@implementation HaoChiDe
(void)attractPerson
{NSLog(@"吸引人");
}
(void)GuanBao
{NSLog(@"管饱");
}
@end
//
// Person.m
// OC_类和对象
//
// Created by YIem on 15/11/24.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//
import "Person.h"
@implementation Person
// .m 用来放类的实现
(void)sayHi
{// OC中@"" 表示字符串 NSLog(@"hello, world!"); // 打印 NSLog(@"%d Not Found!", 404); // 当前类中可以使用自己的成员变量 // %@ 打印 NSString // %ld 打印 NSInteger //_name = @"大娃"; //_age = 16; //_height = 150; //_sex = @"m"; NSLog(@"%@ %ld", _name, _age);
// NSLog(@"%@ %ld %@ %f", _name, _age, _sex, _height);
}
(void)eat
{NSLog(@"吃吃吃");
}
-(void)drink
{
NSLog(@"一二三四五六七");
}
(void)play
{NSLog(@"321");
}
(void)sleep
{NSLog(@"啊你麻痹, 过来飞");
}
@end