您的位置:首页 > 其它

OC学习(一)--之类与对象

2015-10-22 00:00 162 查看
摘要: OOP,类与对象

一. Objective-c 概述

Objective-C简称OC,扩充自C语言的面向对象编程语言。

是OS X和iOS操作系统的主要编程语言。

特点:

C语言的超集,对C语言完全兼容.

具备完善的面向对象特性

包含一个运行时系统

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

面向对象与面向过程对比:

面向对象面向过程
特点分析某问题要参与的对象,各个对象的作用,多个对象协作完成任务分析解决问题的步骤,实现函数,依此调用函数
侧重点对象的设计(具有哪些功能)实现功能
语言OC , C++, Java等C语言
三. 类与对象

1. 类和对象是面向对象的核心.

定义类,创建对象,使用对象.

类:具有相同特征和行为的事物的抽象. 例如:汽车类,手机类.

对象: 对象是类的实例.类是对象的类型.(通俗讲,类是模具,对象是个体.)

2. OC中类的定义

定义类包含两部分:接口部分和实现部分.

1).接口部分:对外声明类的特征和行为. (类似于说明书)

标志: @interface...@end

//其中:Person是类名,可以与文件夹不同名, NSObject父类名
@interface Person : NSObject
//实例变量(特征)
{
//public是设置变量权限为共有
@public
//NSString *是OC里面特有的对字符类型处理的变量类型
//可以直接赋值,打印时用占位符%@
//注意:命名规范实例变量 下划线和名字
NSString *_name;//姓名
NSString *_sex;
NSString *_hobby;
NSInteger _age;
}
//方法(行为)
- (void) sayHi;
- (void) eat;
@end


2).实现部分:对内实现行为.

标志:@implementation...@end

@implementation Person
//实现方法
- (void) sayHi
{
NSLog(@"你好,我叫%@,今年%ld岁,喜欢%@, _name, _age, _hobby);
}

- (void) eat
{
NSLog(@"我要去吃饭");
//NSLog作用于printf相同,NSLog会自动换行.
}
@end


类与文件: .h称为接口文件或头文件, .m称为实现文件.

3. 创建对象

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

创建对象分两步:分配内存空间和初始化。

分配内存空间:根据类中声明的实例变量为对象分配内存,将所有实例变量置为默认值0,并返回首地址。

Person *p = [Person alloc];


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

p = [p init];


通常写成:

Person *p = [[Person alloc] init];


注意:

+ (id)alloc; +表示这个方法属于类,只能类执行。id返回值类型,表示任意类型的对象,即创建好的对象。

- (id)init; -表示这个方法属于对象,只能对象执行。id返回值类型,表示初始化完成的对象。

初始化

//重新实现init方法,系统将不会在调用系统本来的方法
- (id) init
{
_age = 18;
return self;
}
//self 表示本身,返回初始化完成的自己


示例:

#import <Foundation/Foundation.h>
//引用Person声明文件
#import "Person.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
创建对象或实例化对象
Person *person = [[Person alloc] init];
//对象成员赋值,也可以重新写init是赋值
person->_name = @"张三";
person->_age = 20;
person->_hobby = @"篮球";
//使用对象
[person sayHi];
[person eat];
}
return 0;
}


注意:实例变量区分可见度 ,本节使用了@public
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  类与对象