天天看点

程序

////  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 空对象