2015-11-25- -objective-c-----OC_2方法

//
// main.m
// OC_2方法
//
// Created by YIem on 15/11/25.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Person.h"
#import "Student.h"
#import "CollegeStuent.h"

int main(int argc, const char * argv[]) {
/* // 定义类-->创建对象->>使用对象
// 1.开辟空间
// 2.初始化
Person *p = [[Person alloc] init];
// 赋值和取值
[p setandget];
// 调用带参数的方法(实参)
[p sayHiWithName:@"随便"];

// 成员变量
// 赋值
[p setName:@"随便名字"];
// 取值
NSLog(@"%@", [p name]);

*/
// 创建对象
#if 0
Student *dawa = [[Student alloc] init];
// 赋值
[dawa setName:@"12"];
[dawa setNumber:1];
[dawa setNicheng:@"大娃"];
// 取值
NSLog(@"%@ %ld %@", [dawa name], [dawa number], [dawa nicheng] );

Student *erwa = [[Student alloc] init];
[erwa setName:@"11"];
[erwa setNumber:2];
[erwa setNicheng:@"二娃"];
NSLog(@"%@ %ld %@", [erwa name], [erwa number], [erwa nicheng]);

#endif
// 继承使用
// 父类创建
Student *s = [[Student alloc] init];
[s study];
// 子类创建
CollegeStuent *cs = [[CollegeStuent alloc] init];
// 方法查询机制: 先找子类中是否重写 如果没有 找父类 直到根类中 如果还没有 则崩溃(unrecognized selector sent to instance)
[cs study];

return 0;

}



//
// CollegeStuent.h
// OC_2方法
//
// Created by YIem on 15/11/25.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Student.h"
// 面向对象三大特性: 继承 封装 多态
// 继承: 子类拥有父类所有的成员变量和方法
// 单(根)继承: 每一个类只有一个父类 唯一一个没有父亲的类是NSObject 叫根类(祖宗类) 包含了所有类都需要的基本信息
// 传递性: A是B的父类 B说C的父类 C中也有A的内容
// 相对性: 父类和子类需要参照物来描述
// 单向性: 已经作为子类的类 不能在成为该类父类的父类
@interface CollegeStuent : Student
{

NSString *_tanLianAi;// 谈恋爱
NSString *_treeNewBee;// 吹牛逼

}
// getter&setter

  • (void)setTanLianAi:(NSString *)tanlianai;
  • (NSString *)tanlianai;
  • (void)setTreeNewBee:(NSString *)treenewbee;
  • (NSString *)treenewbee;
    @end

//
// CollegeStuent.m
// OC_2方法
//
// Created by YIem on 15/11/25.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

#import "CollegeStuent.h"

@implementation CollegeStuent

  • (void)setTanLianAi:(NSString *)tanlianai
    {
    _tanLianAi = tanlianai;
    }
  • (NSString *)tanlianai
    {
    return _tanLianAi;
    }
  • (void)setTreeNewBee:(NSString *)treenewbee
    {
    _treeNewBee = treenewbee;
    }
  • (NSString *)treenewbee
    {
    return _treeNewBee;
    }
    // 父类重写
    // 子类中重新实现和父类中声明的一致的方法 叫做重写
  • (void)study
    {
    // super 编译器指令 通过super指令 调用父类中的方法
    [super study];
    // self (对象)对象自己 通过self等于当前类的方法
    [self doHomework];
    NSLog(@"大学生 学习");
    }
  • (void)doHomework
    {
    NSLog(@"大学生 写作业");
    }
    @end


//
// Student.h
// OC_2方法
//
// Created by YIem on 15/11/25.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Student : NSObject
{
NSString *_name;
NSInteger _number;
NSString *_nicheng;
}
// getter&setter

  • (void)setName:(NSString *)name;
  • (NSString *)name;
  • (void)setNumber:(NSInteger)number;
  • (NSInteger)number;
  • (void)setNicheng:(NSString *)nicheng;
  • (NSString *)nicheng;
    // 普通方法
  • (void)study;
  • (void)doHomework;
    @end

//
// Student.m
// OC_2方法
//
// Created by YIem on 15/11/25.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

#import "Student.h"

@implementation Student

  • (void)setName:(NSString *)name
    {
    _name = name;
    }
  • (NSString * )name
    {
    return _name;
    }
  • (void)setNumber:(NSInteger)number
    {
    _number = number;
    }
  • (NSInteger)number
    {
    return _number;
    }
  • (void)setNicheng:(NSString *)nicheng
    {
    _nicheng = nicheng;
    }
  • (NSString *)nicheng
    {
    return _nicheng;
    }
  • (void)study
    {
    NSLog(@"学生 学习");
    }
  • (void)doHomework
    {
    NSLog(@"学生 写作业");
    }
    @end


//
// Person.h
// OC_2方法
//
// Created by YIem on 15/11/25.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
// 成员变量
NSString *_name;
NSString *_sex;
//#error duplicate member"_sex"
#warning NSInteger等基础类型 一定不要加* NSInteger _age;
CGFloat _height;
CGFloat _weight;
}
// 方法

  • (void)setandget;
    // 无返回 无参数的方法
  • (void)sayHI;
    // 无返回 带一个参数
    // sayHiWithName 参数描述
    // : 参数标识
    // (NSString *) 参数类型
    // name 参数名 /形参
  • (void)sayHiWithName:(NSString *)name;
    // 方法名只包含: 参数描述和参数标识
    // 方法名: sayHiwithName:age:
  • (void)sayHiWithName:(NSString *)name
    age:(NSInteger)age;
    // 方法名: sayHiWithName::
  • (void)sayHiWithName:(NSString *)name
    :(NSInteger)age;
    // 两个参数
  • (void)sayHiWithName:(NSString *)name
    age:(NSInteger)age;
    // 多参数
  • (void)sayHiWithName:(NSString *)name
    age:(NSInteger)age
    age:(NSInteger)age
    age:(NSInteger)age
    age:(NSInteger)age
    height:(CGFloat)height
    weight:(CGFloat)weight
    sex:(NSString *)sex;
  • (void)suibian;

// 标准的赋值方法&取值方法
// setter(设置器)&getter(访问器)
// set+首字母大小不带下划线的成员变量名

  • (void)setName:(NSString *)name;
    // 小写字母开头不带下划线的成员变量名
  • (NSString *)name; // 直接用Name

@end


//
// Person.m
// OC_2方法
//
// Created by YIem on 15/11/25.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

#import "Person.h"

@implementation Person

  • (void)setandget
    {
    _name =@"名字";
    _sex = @"性别";
    _age = 10;
    _height = 180;
    _weight = 160;
    NSLog(@"%@%@%ld%f%f", _name, _sex, _age, _height, _weight);
    }

  • (void)sayHI
    {
    NSLog(@"Hello");
    }

  • (void)suibian
    {
    NSLog(@"随便");
    }

  • (void)sayHiWithName:(NSString *)name
    {
    // 参数name为形参 保存外部传人内容
    NSLog(@"参数: %@", name);
    // 吧参数赋值给成员变量
    _name = name;
    NSLog(@"成员变量: %@", _name);
    }

// getter&setter 实现
// setter设置成员变量

  • (void)setName:(NSString *)name
    {
    _name = name;
    }
    // getter返回成员变量
  • (NSString *)name
    {
    return _name;
    }
    @end

标签: ios, objective-c, objective

添加新评论

Title - Artist
0:00