//
// 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