//// main.m
// oc语言基础_2
//// created by 蒙奇-d-小路 on 15/1/31.
// copyright (c) 2015年 www.lanou3g.com 蓝鸥科技. all rights reserved.
//#import <foundation/foundation.h>
#import "person.h"
#import "person2.h"int main(int argc, const char * argv[]) {
// person *p = [[person alloc] init];
// [p say];
// [p sayhi];
// person *longge = [[person alloc] init];
// longge -> _name = @"邓文龙";
// longge -> _sex = @"女";
// longge -> _age = 25;
// longge -> _hobby = @"睡觉";
// longge -> _score = 89;
// [longge sayhi];
// [longge sayhello];
// person *liming = [[person alloc] init];
// liming -> _hobby = @"看电影";
// nslog(@"李明的爱好是 : %@", liming -> _hobby);
// 创建对象
// person2 *p = [[person2 alloc] init];
// p -> _hobby = @"玉兔";
// [p sleep];
// 创建对象
// person2 *caoyu = [[person2 alloc] init];
// [caoyu sayhiwithname:@"范冰冰"];
// 创建对象 自定义初始化方法
// person2 *longge = [[person2 alloc] initwithname:@"龙哥" sex:@"男" hobby:@"女" age:0];
// person2 *fancong = [[person2 alloc] initwithname:@"聪哥" sex:@"男" hobby:@"龙哥" age:0];
// [fancong sayhi];
// 新建对象
person2 *jianing = [[person2 alloc] initwithname:@"嘉宁" sex:@"男" hobby:@"煎饼果子" age:20];
[jianing setname:@"稿件"];
nslog(@"name : %@", [jianing name]);
// oc方法调用
// 消息语法/消息机制
// [receiver message]
// [接收者 消息]
return 0;
}
//
// main.m// oc语言基础_2//// created by 蒙奇-d-小路 on 15/1/31.// copyright (c) 2015年 www.lanou3g.com 蓝鸥科技. all rights reserved.
#import "person2.h"
int main(int argc, const char * argv[]) {
// person *longge = [[person alloc] init];
//
[jianing setname:@"稿件"];
// oc方法调用
// [receiver message]
return 0;
// main.m
// created by 蒙奇-d-小路 on 15/1/31.
// copyright (c) 2015年 www.lanou3g.com 蓝鸥科技. all rights reserved.
#import <foundation/foundation.h>
// // person2 *fancong = [[person2 alloc] initwithname:@"聪哥" sex:@"男" hobby:@"龙哥" age:0];
[jianing setname:@"稿件"];
// [receiver message]
return 0;
// person.h
// created by 蒙奇-d-小路 on 15/1/31.// copyright (c) 2015年 www.lanou3g.com 蓝鸥科技. all rights reserved.
#import <foundation/foundation.h>@interface person : nsobject
{
@public
nsstring *_name;
nsstring *_sex;
nsinteger _age;
cgfloat _score;
nsstring *_hobby;
- (void)say;
- (void)sayhi;
- (void)sayhello;
@end
// person.m
// oc语言基础_2// created by 蒙奇-d-小路 on 15/1/31.// copyright (c) 2015年 www.lanou3g.com 蓝鸥科技. all rights reserved.
//#import "person.h"
@implementation person
- (void)say
nslog(@"我是你们的老师!!!");
- (void)sayhi
nslog(@"name : %@, sex : %@, age : %ld, score : %.2f, hoppy : %@", _name, _sex, _age, _score, _hobby);
- (instancetype)init;
_name = @"王骊靬";
_sex = @"男";
_age = 28;
_score = 98;
_hobby = @"编写程序";
return self;
- (void)sayhello
nslog(@"我是学生");
// person2.h// oc语言基础_2//// created by 蒙奇-d-小路 on 15/1/31.
//#import <foundation/foundation.h>@interface person2 : nsobject
// 成员变量可见度修饰符
// @public 公开的/公有的
// 作用范围 : 类的内部和类的外部
// 类的内部: 当前类的实现部分
// (@implementation...@end之间)
// 面向对象三大特性: 继承封装 多态
// public 违背封装特性
// @private 私人的 私有的
// 作用范围: 只有类的内部可以使用
// @protected 受保护的
// 作用范围: 当前类和子类中可以使用
// 系统默认的可见度修饰就是@protected
nsstring *_name;
// 访问器/ 设置器
// getter/setter 方法
- (nsstring *)name;
- (void)setname:(nsstring *)name;
//无参方法
// 方法名: sayhi
// 一个参数的方法
// 方法名 :
// - 方法的类型说明符(- 实例方法/+类方法)
// (void) 方法返回值
// sayhiwithname 参数描述
// : 参数标识
// (nsstring *) 参数类型
// name 参数名
// 方法名是oc中查找对应方法的检索机制
// 方法名的构成 : 参数描述 + 参数标识(:)
// 有几个参数标识(:) 就有几个参数
// sayhiwithname:
- (void)sayhiwithname:(nsstring *)name;
//两个参数方法
// sayhiwithname:sex:
- (void)sayhiwithname:(nsstring *)name
sex:(nsstring *)sex;
//三个参数方法
//sayhiwithname:sex:hobby:
sex:(nsstring *)sex
hobby:(nsstring *)hobby;
//四个参数方法
// sayhiwithname:sex:hobby:age:
hobby:(nsstring *)hobby
age:(nsinteger)age;
- (void)sleep;
// 指派初始化
// 自定义初始化方法
- (instancetype)initwithname:(nsstring *)name sex:(nsstring *)sex hobby:(nsstring *)hobby age:(nsinteger)age;
// 三个参数的初始化
- (instancetype)initwithname:(nsstring *)name sex:(nsstring *)sex hobby:(nsstring *)hobby;
//两个参数的初始化
- (instancetype)initwithname:(nsstring *)name sex:(nsstring *)sex;
//一个参数的初始化
- (instancetype)initwithname:(nsstring *)name;
// person2.m
@implementation person2
nslog(@"name : %@, sex : %@, hobby :%@, age : %ld", _name, _sex, _hobby, _age);
- (instancetype)init
_name = @"小唐";
_hobby = @"白骨精";
_age = 20;
- (void)sleep
- (nsstring *)name
return _name;
- (void)setname:(nsstring *)name
_name = name;
nslog(@"say hello to %@", name);
- (void)sayhiwithname:(nsstring *)name sex:(nsstring *)sex
nslog(@"say hello");
- (void)sayhiwithname:(nsstring *)name sex:(nsstring *)sex hobby:(nsstring *)hobby
- (void)sayhiwithname:(nsstring *)name sex:(nsstring *)sex hobby:(nsstring *)hobby age:(nsinteger)age
// 作用: 按照传入的参数给对象的成员变量进行初始化
- (instancetype)initwithname:(nsstring *)name sex:(nsstring *)sex hobby:(nsstring *)hobby age:(nsinteger)age
// 通过传入的形参给成员变量赋值
// 成员变量 = 参数名
_sex = sex;
_hobby = hobby;
_age = age;
return self;
//指派初始化方法 designated initializer
//指定某个初始化方法作为赋值方法 其他初始化指向该方法
// 三个参数初始化
- (instancetype)initwithname:(nsstring *)name sex:(nsstring *)sex hobby:(nsstring *)hobby
self = [self initwithname:name sex:sex hobby:hobby age:0];
// 两个参数初始化
- (instancetype)initwithname:(nsstring *)name sex:(nsstring *)sex
self = [self initwithname:name sex:sex hobby:nil age:0];
// 一个参数初始化
- (instancetype)initwithname:(nsstring *)name
self = [self initwithname:name sex:nil hobby:nil age:0];
// nil 空对象