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

时间: 2024-10-03 23:15:38

Oc(类和对象)(ClassAndObjict)的相关文章

OC类与对象实例化,类之间的方法调用小题目

两个OC类与对象实例化题目 要求: * 类名.属性名.属性类型.方法名.方法参数.方法返回值自拟 * 自己写main函数测试设计是否合理 /* 1.设计一个"狗"类 1> 属性 * 颜色 * 速度(单位是m/s) * 性别 * 体重(单位是kg) 2> 行为 * 吃:每吃一次,体重增加0.5kg,输出吃完后的体重 * 吠(叫):输出所有的属性 * 跑:每跑一次,体重减少0.5kg,输出速度和跑完后的体重 * 比较颜色:跟别的狗比较颜色,如果一样,返回YES,不一样,返回NO

oc类和对象

//  main.m //  OC01类和对象 // //  Created by dllo on 15/7/15. //  Copyright (c) 2015年 cml. All rights reserved. // #import <Foundation/Foundation.h> // 先引头文件 #import"Phone.h" #import"Audio car.h" #import"Student.h" int mai

二.oc类和对象

 面向对象思维的建立 l   类的概念和设计 l   成员变量 l   访问修饰符public/private/protected  OC 方法,封装 l   方法的概念 l   实例方法和类方法 l   构造函数和自定义构造函数 l   description方法 l   封装的概念 l   setter/getter方法的建立 l   self关键字的讲解 l   property关键字

oc学习之对象作为类的属性

对象做为类的属性 1. 一个Target中的类无法直接在另外1个Target中访问. 2. 类的属性代表什么? a. 类的属性代表这类事物具有的共同的特征 b. 类的属性代表这个类所拥有的东西. 灯: 属性: 形状 功率 价格  品牌 剩余寿命 方法: 照明. 音响: 方法: 发声音. 门: 属性: 尺寸 材料 颜色 价格 方法: 开 关 3. 类的方法代表什么? a. 代表这个类所具备的行为. 这个类所具备的功能. b. 一个类有什么方法 就去分析这个类有什么功能. 4. 属性的本质是变量.

oc知识点 类和对象

第一讲  类和对象 1面向对象 OOP 面向对象编程的三大特性 :封装,继承,多态 2类和对象的概念和区别 类:具有相同特征和行为的事物的抽象 对象:就是类的实例  ,类是对象的类型 3类和对象的定义 接口部分: 对外声明类的特征和行为.(.h) 实现部分:行为的具体实现(.m) 接口部分标志 :@interface [email protected] 声明类实例变量(成员变量)和方法,及特征和行为 例 接口部分代码: @interface Teacher :NSObject{ NSString

1,OC语言的前世今生 ,2,OC语言入门,3,OC语言与C的差异,4,面向对象,5,类和对象的抽象关系,6,类的代码创建,7,类的成员组成及访问

1,OC语言的前世今生 , 一, 在20世纪80年代早期,布莱德.麦克(Brad Cox)设计了OC语言,它在C语言的基础上增加了一层,这意味着对C进行了扩展,从而创造出一门新的程序设计语言,支持对象的创建和操作. 二,1985年,被赶出苹果公司的乔帮主成立了Next公司; 三, 1988年,Next计算机公司获得了OC语言的授权,并发展了OC语言库和一个开发环境,1994年,Next计算机公司(同年更名为Next软件公司)和Sun公司针对NEXTSTEP系统联合发布了一个标准规范,名为OPEN

oc基础第一天---类的方法,类与对象

1. 如何为类定义行为. 刚刚我们聊的是如何为类定义特征. 如何定义行为? 行为就事1个功能 也就事1个函数. OC中把行为叫做方法. 实际上和函数是一样的 代表1个功能模块. 2. 为类定义无参数的方法. 类的方法也分为两个部分. a. 方法的声明 1). 位置: 写在声明类的大括弧的外边. 2). 声明的语法: - (返回值类型)方法名; - (void)sayHi; 这个方法的名字就叫做sayHi; b. 方法的实现. 1). 位置: 写在类的实现之中. 2). 实现的语法: - (返回值

2015.12.17 初识OC&amp;iOS 类和对象

iOS是iPhone Operation System的缩写. 使用iOS系统的设备有哪些『iPhone手机,iPad,Apple watch(Watch OS),iPod touch』. 交互层:cocoa touch 操作系统层:iOS 底层:硬件 #include 与 #import的区别 #include完成头文件的导入,可能会导致头文件相互引用和函数\变量的重复定义. eg: 为了解决这个问题,我们必须在文件的前面加上『#ifndef』 #import不仅完成头文件的引入,并且防止头文

oc基础第二天类与对象---1复习

1. OC语言是在C语言的基础之上新增了一些面向对象的语法. 将C语言复杂的.繁琐的.东西封装的更为简单和易用. Objective-C: 本质其实就是C语言. OC完全兼容C. 2. OC将C难用的东西做了封装. 1). #import指令. 2). NSLog()函数. 3). NSString @"jack" 新增了一些数据类型. BOOL class 类 3. 面向过程与面向对象. 4. 代码中的面向过程与面向对象. 5. 类与对象 类 对象 6. 类和对象的关系 类是模板 对