[Objective-C] 01.Objective-C语法基础

Objective-C语言概述:
  1. Objective-C语言简称OC,是扩充C语言的面向对象编程语言。
  2. OC语言是苹果公司开发OS X和iOS操作系统使用的主要语言。 
  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];

    person = [person init];

    // 通常合起来写

    Person *person2 = [[Person allocinit];
    +(id)alloc; // +号表示方法属于类,只能类执行。id表示任意类型的对象,即创建好的对象。
    -(id)init;  // -号表示方法属于对象,只能对象执行。id表示初始化完成的对象。

  9. 使用对象:
    指针存储对象的首地址,代指对象。OC中使用指针代指对象进行操作。
    Person *person = [Person alloc];先执行等号右侧代码。
    [Person alloc]; // 返回值是对象的首地址,即对象。
    person是跟对对象同类型的指针变量,存储对象首地址,代指对象。


实例变量操作:
  1. 基本介绍:
    实例变量在做初始化时只做少量设置,后期需要操作。
    实例变量有区分可见度,分为三种。(@public / @protected / @private)
    @public: 实例变量访问修饰符。

/// Person.h 声明文件(头文件)

// @interface是声明,必须与@end配合使用

// Person表示类名

// ':'表示继承关系,':'后面的类名表示的是父类名

@interface Person : NSObject

{

    // 声明实例变量

    @public

    // OC中的类型,声明变量的时候,需要加上'*'

    // C语言基本数据类型不需要

    // 实例变量的名称全部以'_'开头(注意)

    NSString *_name;            // 姓名

    NSString *_hobby;           // 爱好

    NSString *_address;         // 地址

    int _age;                   // 年龄

    float _score;               // 分数

}



// 声明方法

// 方法分为两种类型:

// 1. '-'号表示的是对象方法(实例方法),由对象来调用

// 2. ‘+’号表示的类方法,由类名类调用

// 方法声明中,类型需要使用小括号括起来

// 吃饭

- (void)eat;


// 打招呼

- (void)sayHi;


// @end必须要写,不能丢

@end




/// Person.m 实现文件 

// @implementation...@end实现文件中的关键字

// Person表示的是实现哪个类中的方法

@implementation Person


// 实现方法

// 初始化方法

- (id)init

{

    // OC中字符串可以直接赋值,需要加上 ‘@’ 符号

    _address = @"北京市海淀区金五星商厦5层蓝鸥科技";

    _name = @"张赛赛";

    

    // 返回自己

    return self;

}


// 吃饭

- (void)eat

{

    // 字符串需要添加'@'

    // printf("人用筷子吃饭 %s", "");

    NSLog(@"人用筷子吃饭 %@", @""); // 打印效果同上

}


// 打招呼

- (void)sayHi

{

    NSLog(@"hi,大家好,我是%@,噢耶", _name);

}


// @end,不能丢

@end




// 想使用,先引入

#import "Person.h"

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

{

    @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 allocinit];

        

        // 吃饭,给对象发送sayHi消息

        [person1 sayHi];

        [person2 sayHi];

        


    }

    return 0;

 

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值