main函数

//

//  main.m

//  2-2 LessonClassAndObject

//

//  Created by lanouhn on 15/2/2.

//  Copyright (c) 2015年 lanouhn. All rights reserved.

//

 

//import引用系统的头文件用 <>, 引用自定义类的头文件用 ""

#import <Foundation/Foundation.h>

#import "Car.h"

#import "Iphone.h"

#import "person.h"

#import "BuyShoe.h"

#import "Shoes.h"

 

int main(int argc, const char * argv[]) {

    //OC: Objective - C, 面向对象的C语言

    //1. C的超集

    //2. 扩展了的面向对象的编程思想

    //3. 是一门运行时语言, 比如数据类型等一些特性, 在运行时才能够决定, 编译的时候只能够判断程序格式上是否正确

    //4. 类库丰富

    

    //面向对象: OOP

    

    //创建一个对象

    Car *myCar =[[Car alloc] init];

    //为对象的实例变量赋值

    myCar ->color = @"红色";

    myCar ->type = @"BWM";

    myCar ->price = 400000;

    myCar ->speed = 300;

    myCar ->numberOfWheel = 5;

    //执行方法, 用的是消息机制调用方法, 需要加[]

    [myCar run];

    [myCar stop];

    

    //%@:用于打印对象

    //NSLog(@"%@的%@, 有%d个轮子, 竟然能跑! ", myCar ->color, myCar -> type, myCar ->numberOfWheel);

    

    Car *bCar = [[Car alloc] init];

    bCar ->color = @"白色";

    bCar ->type = @"Lamando";

    bCar ->price = 500000;

    bCar ->speed = 248;

    bCar ->numberOfWheel = 4;

    [bCar run];

    

    Iphone *phone1 = [[Iphone alloc] init];

    

//    //1.内存分配

//    Iphone *phone1 = [Iphone alloc];

//    //2.对象初始化

//    [phone1 init];

    

    //+方法用类调用

    //-方法用对象调用

    phone1 ->color = @"土豪金";

    phone1 ->type = @"Iphone";

    phone1 ->price = 5198;

    phone1 ->version = @"6Plus";

    

    [phone1 call];

    [phone1 playGame];

    [phone1 surfing];

    [phone1 callTosomeone:@"葫芦娃"];

    

//    去逛夜市,我:这个怎么卖。摊主:380这个是真金的。我:10块。摊主:看清楚啊这个是真金。我:10块。摊主:好吧!看你那么执着卖你吧。我:我不买,就练练砍价。摊主:你别跑,你别跑,劳资砍死你!

    

    Person *me = [[Person alloc] init];

    me ->name = @"我";

    

    Person *boss = [[Person alloc] init];

    boss ->name = @"摊主";

    

    [me say:@"这个怎么卖?"];

    [boss say:@"380这个是真金的!"];

    [me say:@"10块"];

    [boss say:@"看清楚啊这个是真金的!"];

    [me say:@"10块"];

    [boss say:@"好吧! 看你那么执着卖你吧."];

    [me say:@"我不买, 就练练砍价."];

    [boss say:@"你别跑, 你别跑, 劳资砍死你!!!"];

    

    //“老公,我喜欢这双鞋。”老公看了看8888元,说道:“钱可能不够,就带了一半。” “那就买4000的那双吧。” “不告诉你了吗?只带了88。

    

    BuyShoe *buy1 = [[BuyShoe alloc] init];

    buy1 ->name = @"老公";

    

    BuyShoe *buy2 = [[BuyShoe alloc] init];

    buy2 ->name = @"老婆";

    

    Shoes *shoes = [[Shoes alloc] init];

    shoes ->price = 8888;

    shoes ->color = @"白";

//    [buy2 talk:@"老公, 我喜欢这双鞋子"];

//    [buy1 look:@"8888元"];

//    [buy1 talk:@"钱可能不够,就带了一半."];

//    [buy2 talk:@"那就买%f的那双把."];

//    [buy1 talk:@"不告诉你了吗? 只带了88."];

    [buy2 talk:@"老公, 我喜欢这双鞋子"];

    [buy1 seeThePriceOfShoes: shoes];

    [buy1 talk:@"钱可能不够,就带了一半."];

    [buy2 talk:@"那就买4000的那吧."];

    [buy1 talk:@"不告诉你了吗? 只带了88."];

    

    

  /*

    作业1

    定义10个类:

    1、声明:实例变量、方法。实现:初始化方法、自定义方法、自我

    介绍方法。(方法实现时,以NSLog输出即可)

    2、在main.m中分别创建10个类的对象。

    3、给对象的实例变量进行赋值、取值操作,执行方法。

    

    作业2

    1、早9:30开班仪式开始。(NSLog(@“开班仪式正式开始”))

    2、刘辉老师做自我介绍。

    3、三名学生做自我介绍。

    需求: (1)定义一个班级类(Class)。

    实例变量:所属培训机构名称,班级名,班级人数、授课老师名字、开班日期。 方法:初始化(设置学校名字:蓝鸥)、集体活动、开班仪式。

    (2)定义一个老师类。 实例变量:名字、性别、年龄、正在教的课程。 方法:初始化、讲课、布置作业、验收作业、解决问题、自我介绍。

    (3)定义一个学生类。

    实例变量:名字、性别、年龄、学号。 方法:初始化、学习、做作业、提出问题、回答问题、自我介绍。

    注:方法以NSLog输出为主

   */

    return 0;

}

 

//重写父类的初始化方法, 来给实例变量赋初值

//由于父类已经声明了init方法, 重写父类的init方法不需要写方法声明, 只需要写实现部分

 

Car类的声明

//

//  Car.h

//  2-2 LessonClassAndObject

//

//  Created by lanouhn on 15/2/2.

//  Copyright (c) 2015年 lanouhn. All rights reserved.

//

 

//类

//1. 特征

//2. 行为

 

//汽车类

//1. 特征: 颜色, 型号, 品牌, 价格, 最高速度

//2. 行为: 跑, 停, 加速, 减速

 

//include 和import

//共同点

//1. 编译指令

//2. 都是引入头文件, 引入的过程都是一个复制粘贴的过程, 做的单纯的拷贝

//不同点

//import能够保证头问价只被引用一次

/*

 引用三次

 #include"aa.h"

 #include"aa.h"

 #include"aa.h"

 引用一次

 #import"aa.h"

 #import"aa.h"

 #import"aa.h"

 */

 

//类的定义

//1. 接口部分

//2. 实现部分

 

#import <Foundation/Foundation.h>

 

//接口部分以@interface开头,以@end结尾, 整个接口部分要写在@interface - @end之间

 

/*

 @interface 类名 : 父类名

 

 */

@interface Car : NSObject

{

    //类的特征写在这里

    //实例变量

    @public

    //只要是继承于NSObject的类, 在意这个类创建对象的时候, 一定要加*

    //NSString是OC中的字符串类

    NSString *color;

    //基本的数据类型(int, short, long, float, double, char), 不用加*

    CGFloat price;

    CGFloat speed;

    NSString *type;

    NSInteger numberOfWheel;

    

}

 

//类的行为

//方法

//方法声明写在 .h 中,大括号后面, @end之前

//OC中的方法

- (void)run;

- (void)stop;

 

@end

 

Car类的实现

//

//  Car.m

//  2-2 LessonClassAndObject

//

//  Created by lanouhn on 15/2/2.

//  Copyright (c) 2015年 lanouhn. All rights reserved.

//

 

// .h header, 头文件

// .m implementation, 实现文件

 

 

#import "Car.h"

 

//方法的实现写在@implementation - @end之间

@implementation Car

- (void)run {

    //c语言中的字符串"跑"

    //OC中的字符串需要加@"跑"

    

    //NSLog比起printf, 会自动加换行, 运行时间等

    //printf("跑\n"); //c语言

//    NSLog(@"跑");

    NSLog(@"%@的%@, 有%ld个轮子, 竟然能跑! ", color, type, numberOfWheel);

}

- (void)stop {

    NSLog(@"停");

}

@end

 

posted on 2015-02-04 09:09  小雪童鞋  阅读(584)  评论(0编辑  收藏  举报