iOS复习笔记3:类的基本定义

// Car.h
// 类的声明
// 类名:Car
// 属性:m_nSpeed
// 行为:run

#import <Foundation/Foundation.h> // NSObject

@interface Car : NSObject
{
// 属性:成员变量(可以是基础类型,枚举,结构体和类对象指针)
@public
	int m_nSpeed;// 默认初始化为0
}

// 行为:方法(方法名,返回值,参数)
- (void)stop;
- (void)run:(int)speed; 				// 类型需要加小括号
- (bool)turnWithSpeed:(int)speed andDirection:(int)direction;
// 可以只有冒号- (bool)turn:(int)speed:(int)direction;
// 方法名包括冒号:turnWithSpeed:andDirection://turn:
@end
// Car.m
// 类的实现

@implementatiom Car 		// Car类名

- (void)stop
{
	NSLog(@"stop");
}

- (void)run:(int)speed
{
	self.m_nSpeed = speed;
	NSLog(@"run speed = %d", self.m_nSpeed);
}

- (bool)turnWithSpeed:(int)speed andDirection:(int)direction //- (bool)turn:(int)speed:(int)direction
{
	self.m_nSpeed = speed;
	NSLog(@"run speed = %d, direction = %d", self.m_nSpeed, direction);

	return YES
}

@end
// main.m
// 类的使用

#import "Car.h"

int main()
{
	Car* car = [Car new];	// 创建类的实例
	car->m_nSpeed = 60;		// 类属性访问
	[car stop]
	[car run:60]
	[car turnWithSpeed:60 andDirection:1]

	return 0;
}

时间: 2024-08-06 09:12:10

iOS复习笔记3:类的基本定义的相关文章

iOS复习笔记8:autorelease详解

一 概念 iOS在程序在运行的过程中,会创建很多个释放池,自动释放池以栈的形式存放的(先进后出). 对象调用autorelease时,会被放入栈顶的自动释放池中. 当自动释放池销毁时,会对池的所有对象发送一次release消息: 所以发送autorelease之后引用计数不会立即-1. autorelease返回对象本身. 二 实例 // Person.h @interface Person @property(nonatomic, assign) int age; @end // Person

iOS复习笔记1:HelloWorld项目

2012年10月到2013年5月期间,一直都做iOS开发,后来开始做用cocos做游戏开发. 过去了那么久,复习一下以前学的东西. 一 新建工程 打开Xcode,选择File>Project>Single View Application,然后输入工程名HelloWolrd,选择保存路径. 创建完成之后保存,如图: 二 运行 单击上图左上角的三角形按钮,程序久可是运行了,以下界面一闪而过: 然后出现: 这就是用模拟器运行程序啦:如果闲模拟器太大,看不清楚,可以点击模拟器,然后Window>

iOS复习笔记15:NSObject

为了描述方便,把如下代码贴出来: @interface Student:NSObject -(void)go; -(void)showName:(NSString *)name; -(void)introduce:(NSString *)name :(NSString*)address; @end Student* stu = [[Student alloc]init]; 一 创建和初始化方法 alloc allocWithZone new copy -- 只有不可变到不可变是浅拷贝(相当于re

iOS复习笔记11:协议和代理

一 功能 可以在协议中声明方法(不能声明变量), 某个类只要遵守这个协议,就相当于拥有协议中所有的方法声明. 父类准守协议,子类也拥有协议中的方法. 协议也可以准守另一个协议. 基协议NSObject(同时也是基类),NSObject基类也准守基协议. 基协议中包含了常用的内存管理方法:release,retain方法等. 二 定义 1 协议定义 @protocal 协议名 <NSObject> // 声明方法 @end 2 遵守协议 2.1 类 @interface 类名 : 父类名 <

iOS复习笔记7:循环引用问题

1 @class @class ClassName,仅仅告诉编辑器ClassName是一个类 避免循环拷贝 在.h中使用@class声明 在.m文件中import头文件 2 循环引用问题 2.1 定义: 指两个对象互相retain对方,通过release是无法销毁这两个对象 2.2 描述: 比如在main函数中创建了两个类的对象A和B,现在引用计数都是1. 现在让A和B互相引用,两个对象的引用计数都增加了1,都变成了2. 执行[A release];[B  release];main函数就释放了

iOS复习笔记4:内存管理

一 基础原理 1 为什么需要内存管理 因为移动设备内存有限,每个app所占用的空间有限. 当app占用内存空间过多时,系统会发出内存警告,这是回收一些不在使用的内存. 例如:不再使用的类对象和实例. 2 管理对象 任何继承自NSObject类的对象 3 内存区域 堆:主动分配空间,需要管理 栈:局部变量,自动管理 例如: int a = 1; Person* p = [[Person alloc] init]; a,p都放在栈区 Person分配的空间在堆区 二 引用计数 1 定义 每个OC对象

iOS复习笔记13:常用结构体

都需要包含Foundation.h头文件 CG:CoreGraphics框架简称,CG开头的在Foundation框架中有声明,但是没有实现 NS:NextStep 一 NSRange范围 1 定义: typedef struct _NSRange{ NSUInteger location; NSUInteger length; }NSRange; 2 示例: NSString* str = @"I love OC"; // NSRange* rg = {2, 4}; // NSRan

iOS复习笔记14:常用数据结构之类

一 NSString/NSMutableString字符串 1 NSString <pre name="code" class="objc">NSString* s1 = @"string"; //NSString* s2 = [[NSString alloc] initWithFormat(@"%d is one",1)]; NSString* s2 = [NSString stringWithFormat(@&

iOS复习笔记10:使用Block

功能:保存一段代码,可以在任何时间执行. 标志:^ 跟函数类似: 1 可以保存一段代码 2 有返回值 3 有形参 4 调用方式 变量声明:更函数指针变量类似 返回值类型 (^变量名)(参数类型列表) typedef: 返回值和参数一致的block可以typedef为同一种类型 权限: block内部可以访问外面的变量: 但是,默认情况下,block内部不能修改外面的局部变量: 可以在局部变量加上__block关键字之后,这个变量就可以在block内部修改. 示例: // main.m #impo