Oc(类和对象)(ClassAndObjict)


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

优质内容筛选与推荐>>
1、批量插入写法
2、博士生的自我修养
3、收集:经典语录收集
4、浅谈水体的实现
5、【study】finally finish python lessons


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号