一、OC概述

代码格式

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


代码区


}
return 0;
}

1、OC中支持基本数据类型 int 、float

2、C语言中使用字符串 "hello" OC中使用字符串对象 @"hello"

3、NSString是系统类库提供的--字符串类
定义对象类型的变量时必须加 * NSString * name = @"zhangyixing";

4、OC中的新类型 类类型(对象类型)

5、printf(C) NSLog(OC) 输出字符串内容 NSLog( @"zhangyixing");

6、输出基本数据类型的值
NSLog(@"number = %d, score= %.2f, age = %ld",number, score, age);

7、输出对象
NSLog(@"name = %@", name); NSLog(@"name = %@", @"zhangyixing");


二、面向对象编程

面向对象编程OOP (Object Oriented Programming )

面向对象语言:C++,Java,C#

概念:对象、类、封装、继承、多态等


三、类和对象

先定义类,再创建对象,使用对象。

类是模板,对象是具体表现,任何对象都要占用内存空间.

1、定义类----接口部分、实现部分

新建文件 OS X -------Cocoa Calss

设置name:Person(使用类名命名文件)、Subclass of:NSObject、Language:OC

1)接口部分----对外声明的特征和行为----------Person.h文件


#import <Foundation/Foundation.h>

// 接口的开始

@interface Person:NSObject (类名:父类型)

{

// 声明类的特征

// 实例变量:存储的是对象的特征 注意 : 首字母是_

NSString * _name;

int _age;

}

// 声明类的行为

// 方法:与C中的函数相似,OC中没有函数的概念

(1)+表示这个方法属于类,只能类执行 [类名 方法名]

(2)-表示这个方法属于对象,只能对象执行 [对象 方法名]

- (void)sayHi;

// 接口的结束

@end


2)实现部分----对内实现行为----------Person.m文件


#import "Person.h"
// 实现部分的开始
@implementation Person
- (void)sayHi // 减号 空格
{
NSLog(@"你好");
}

// 实现的结束
@end


2、创建对象:分配内存空间、初始化、存在堆区-------main.m文件

main函数上面导入文件----#import "Person.h"

1)分配内存空间---[类名 alloc]
OC中使用[]调用方法 alloc是系统提供的类可以调用的方法
(1)在堆区分配内存空间;

(2)内存空间的数据被自动清除,所有的实例变量默认值设置为0;

(3)返回分配的存储空间的首地址

Person * p1 = [Person alloc];
指针p1指向堆区中存储的person对象,因此通常将p1代指为person对象

2)初始化对象------[对象 init]

初始化:为对象的实例变量设置初始值

init初始化 是系统提供的进行对象初始化操作的方法,只能对象调用

p1 = [p1 init];
Person * p2 =[[Person alloc] init];
p1 p2 是同类型的,两个不同的对象

Person * p3 = nil; // p3指向空,是一个空指针,不能当成对象

在OC中,对nil做任何操作都是无效的

p3 = p1; // p3、p1 指向同一个对象

3、通过对象调用方法,实现功能

OC中使用[]调用方法 alloc是系统提供的类可以调用的方法

[p1 sayHi]; // 打印----你好