Objective-C语言概述:
1. Objective-C语言简称OC,是扩充C语言的面向对象编程语言。
2.
3. OC时间进度:
1980年初发明了OC语言
1988年NeXT公司使用OC语言进行开发
1996年OC语言成为苹果公司主要编程语言4. OC语言的特点:
OC语言是C语言的超集,允许在OC代码中编写C语言代码,编译器能兼容C语言代码
具备完善的面向对象特性
包含一个运行时系统
包含丰富的类库
面向对象编程:
1. 面向对象基本介绍
面向对象编程:OOP(Object Oriented Programming)
面向对象的语言:Java、C++、C#
概念:对象、类、封装、继承、组合等2. 面向对象与面向过程:
面向过程:分析解决问题的步骤,实现函数,依次调用
面向对象:分析问题组成的对象,协调对象间的联系和通信,从而解决问题
对象定义了解决问题中的步骤的行为,不可以完成一个步骤
面向对象是以对象为中心,面向过程是以过程为中心的
类和对象:
1. 基本介绍:
类和对象是面向对象的核心
定义类,创建对象,使用对象2. 类有共同的特征(比如导演类,有姓名、性别、国籍)和共同的行为(拍电影、客串、潜规则。。。)。类就是相同特征和行为的事物的抽象。
3. 对象就是类中具体的东西,对象是类的实例,类是对象的类型。
4. 在OC中如何定义类?
面向对象编程中使用对象完成程序
开发中:先定义类,再创建对象,然后使用
定义类分为两个部分:接口部分(.h)和实现部分(.m)。
a. 接口部分:对外声明类的特征和行为
b. 实现部分:对内实现行为5. 接口部分:
接口部分的标志:@interface ... @end
作用:声明实例变量和方法,即特征和行为
包含内容:类名、父类名、实例变量、方法6. 实现部分:
实现部分的标志:@implementation ... @end
作用:实现接口部分声明的方法,即实现类的行为
包含内容:类名、实现的方法7. 类和文件的概念?
类:@interface ... @end @implementation ... @end
文件:(.h)文件称为接口文件或头文件。(.m)文件称为实现文件。
文件和类本质是没有关系的,只是为了方便管理、实现封装特性。8. 如何创建对象?
分为两步:分配内存空间和初始化
分配内存空间:调用父类的alloc方法分配内存空间,根据类中声明的实例变量为对象分配内存,返回首地址,将所有实例变量置为默认值0.
初始化:对创建的对象进行实例变量的的初始化设置。
代码:// 分开写 Person *person = [Person alloc];
init];
//
Person *person2 = [[Person alloc] init];
+(id)alloc; // +号表示方法属于类,只能类执行。id表示任意类型的对象,即创建好的对象。
-(id)init; // -号表示方法属于对象,只能对象执行。id表示初始化完成的对象。9. 使用对象:
指针存储对象的首地址,代指对象。OC中使用指针代指对象进行操作。
Person *person = [Person alloc];先执行等号右侧代码。
[Person alloc]; // 返回值是对象的首地址,即对象。
person是跟对对象同类型的指针变量,存储对象首地址,代指对象。
实例变量操作:
1. 基本介绍:
实例变量在做初始化时只做少量设置,后期需要操作。
实例变量有区分可见度,分为三种。(@public / @protected / @private)
@public: 实例变量访问修饰符。
/// Person.h 声明文件(头文件)
是声明,必须与@end配合使用
表示类名
// ':'表示继承关系,':'后面的类名表示的是父类名
@interface Person : NSObject
{
// 声明实例变量
// OC中的类型,声明变量的时候,需要加上'*'号
// C语言基本数据类型不需要
// 实例变量的名称全部以'_'开头(注意)
NSString *_name; // 姓名
NSString *_hobby; // 爱好
NSString *_address; // 地址
int _age; // 年龄
float _score; // 分数
}
//
//
// 1. '-'号表示的是对象方法(实例方法),由对象来调用
// 2. ‘+’号表示的类方法,由类名类调用
//
吃饭
void)eat;
打招呼
void)sayHi;
// @end必须要写,不能丢
@end
/// Person.m 实现文件
实现文件中的关键字
// Person表示的是实现哪个类中的方法
Person
//
//
id)init
{
// OC中字符串可以直接赋值,需要加上 ‘@’
_address = @"北京市海淀区金五星商厦5层蓝鸥科技";
_name = @"张赛赛";
// 返回自己
return self;
}
吃饭
void)eat
{
// 字符串需要添加'@'符
// printf("人用筷子吃饭 %s", "好");
NSLog(@"人用筷子吃饭 %@", @"好"); // 打印效果同上
}
打招呼
void)sayHi
{
NSLog(@"hi,大家好,我是%@,噢耶", _name);
}
,不能丢
@end
//
#import
int main(int argc, const char
{
@autoreleasepool {
// 创建一个Person对象
// 1. 给Person发送alloc消息,申请内存
Person *person1 = [Person alloc];
// 2. 初始化实例变量,给对象发送init消息
person1 = [person1 init];
// 通过 ‘->’
NSLog(@"地址:%@", person1->_address);
person1->_address = @"蓝鸥科技";
NSLog(@"地址:%@", person1->_address);
// 通常创建对象,这样写。把发送alloc消息和init消息放在一起,消息嵌套机制
Person *person2 = [[Person alloc] init];
// 吃饭,给对象发送sayHi消息
[person1 sayHi];
[person2 sayHi];
return
}
iOS 系统语言英语是什么字符串 苹果语言是什么
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章