黑马程序员——Objective-C语言知识整理——类与对象基本知识

------- android培训、java培训、期待与您交流! ----------

1、类与对象概述

       类是具有相同特征和行为事物的抽象,类可以表征事物的基本属性以及作用其上的操作。如苹果类,其基本属性有颜色、品种、重量等等,对于苹果类的操作也可以多样,对于苹果可以吃、可以榨汁等等。

       对象是类的对某一抽象类的具体化,对应现实生活中的某一特定实体。如果把人类作为一个类,爱因斯坦就是一个对象。

2、类的抽象

将具有相同属性和行为的事物对象进行抽象概括,称为类的抽象。

类的抽象举例:

坦克发射了3枚导弹轰炸了2架飞机

       类的抽象过程分析:该语句涉及了三个类,分别为坦克、导弹、飞机。每个类又有自己的属性,在这里只关心语句设计到的属性和行为,如坦克类的属性为装载的导弹数,行为是发射导弹;导弹的行为是飞行、爆炸;飞机的行为是飞行、是否被击毁。

3、类的声明与实现

3.1 类的声明

类的声明包括类属性的定义与类方法的声明,类的声明内容置于关键字@interface与@end中。

(1) 类属性的定义

类属性的定义内容为类成员变量的定义部分,置于"{}"之间,且类方法与对象方法不能在此部分出现。

(2) 类的方法声明

类的方法声明有类方法声明与对象方法声明,均需要置于"{}"之外。其中类方法类型标识符为'-',对象方法的为'+'。

举例说明枪类的声明:

@interface gun:NSObject

{
   int _bullet;//枪内子弹数量
}

+ (void)shoot;//对象方法射击

- (void)Alert;//类方法提示这是一把枪,请注意安全使用

@end

3.2 类的实现

类的实现部分代码需要置于@implementation与@end之间,该部分代码为类的方法代码实现。

举例说明枪类的实现:

@implementation gun

+ (void)shoot
{
   NSLog(@"tu tu tu....剩余子弹%d",_bullet);
}

- (void)Alert

{
   NSLog(@"这是一把枪,请注意安全使用");
}

@end

3.3 #pragma mark指令的使用

       #pragma指令为编译器的一种预取指令,#pragma mark指令的使用可以将代码分组,在Xcode中便于代码的查找,可以导航到代码的位置,进而便于程序员的代码管理与阅读。

#pragma mark指令使用实例:

#pragma mark -
#pragma mark 枪类

@interface gun:NSObject

{
   int _bullet;//枪内子弹数量
}

+ (void)shoot;//对象方法射击

- (void)Alert;//类方法提示这是一把枪,请注意安全使用

@end
指令使用注意:

       “#pragma mark -”与“#pragma mark - ”使用结果不同,前者可以在代码索引时会在代码间添加横向输出,而后者将会出现两条线。#pragma mark指令测试:

黑马程序员——Objective-C语言知识整理——类与对象基本知识_第1张图片

4、对象的实例化与对象方法的调用

4.1对象的实例化

对象的实例化过程也可以称为对象的创建过程,分为内存空间的申请和成员变量的初始化。
实例化的方法:

(1) new方法

格式:类名 *对象名= [类名 new];

示例:Car *car = [Car new];

使用new实例化对象进行三部分操作:

1)为类申请内存空间

2)成员变量初始化

3)将内存空间地址返回给对象名

(2) alloc与init方法

alloc为申请内存空间操作,init为初始化操作。

格式:类名 *对象名=[[类名 alloc] init];

示例:Car *car =[[Car alloc] init];

4.2对象方法的调用

(1) 无参对象方法的调用

格式:[对象名 方法名];

示例代码:

Car *car = [Car new];
[car run];

(2) 含参数对象方法的调用

格式:[对象名 方法名一:参数一 方法名二:参数二……];

示例代码:

Calculator cal = [Calculator new];
int result = [cal sum:3 and:2];

5、多文件开发

头文件的编写,内容主要是类的声明与头文件的引入。

代码示例:

//Car类声明Car.h文件
#import 

@interface Car:NSObjet
{
	int _speed;//车运行时速
}
- (void)run;//对象方法	
@end

源文件的编写,内容主要是类方法与对象方法的实现。

代码示例:

//Car类实现Car.m文件
#include "Car.h" 
@implementation Car
- (void)run{
   NSLog(@"小车正在以%d的速度,奔跑在小路上",_speed);
}
@end

主函数的调用,代码示例:

#import 
#include "Car.h"//将Car类声明文件引入

int main(int argc, char* argv[]){
	@autoreleasepool{
	    Car *car = [Car new];//实例化对象car
            car->_speed = 50;
            [car run];//调用对象方法run
	}
	return 0;
}

你可能感兴趣的:(黑马程序员——Objective-C语言知识整理——类与对象基本知识)