黑马程序员——OC学习总结1-5

本文总结了Objective-C的基础知识,包括语言特点、开发环境搭建、基本语法、类和对象的概念等,适合初学者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

---------------- ASP.Net+Unity开发.Net培训、期待与您交流!----------------


《OC1-OC概述》学习总结


1、OC是iOS开发的核心语言,主要负责UI界面,在开发过程中也会配合着使用C和C++。

2、OC是一门面向对象的语言,完全兼容C语言。

3、OC用于开发Mac OS X平台和iOS平台的应用程序。

4、Mac OS X是苹果公司为Mac系列产品开发的操作系统,iOS是苹果公司开发的手持设备操作系统。

5、OC没有命名空间机制,取而代之的是类名的前缀。

6、OC的关键字都以@开头。

7、@“Hello”是OC中的字符串对象,而“Hello”是C语言中的字符串。

8、Xcode只有Mac版本,并且自带iOS模拟器。

9、获取Mac OS X系统的途径:虚拟机、黑苹果、苹果设备。

10、2014年6月编程语言排行榜


《OC2-第一个OC程序》学习总结


1、C语言的源文件扩展名为.c,OC的源文件扩展名为.m。

2、main函数是OC程序和C程序的入口。

3、OC不支持垃圾回收,需要编写代码来释放对象所占用的内存。

4、NSLog是一个日志输出函数,它将传入的OC字符串参数输出到控制台并自动换行。

5、NSLog函数中格式符%i表示接收整形数据。

6、#import是一个预处理指令,作用是将文件的内存拷贝到当前所在位置。

7、#import可以自动防止同一个头文件被重复包含。

8、#import <...>表示包含系统自带的文件,#import ”...“表示包含开发人员自己创建的文件。

9、第一个OC程序。
//包含Foundation框架中的Foundation.h文件.
#import <Foundation/Foundation.h>
//  main函数是程序的入口,默认返回值为int类型(可省略).
int main()
{
    //自动释放池.
    @autoreleasepool {
        //  调用NSlog函数在屏幕上输出Hello, World!并自动换行.
        NSLog(@"Hello, World!");
        
    }
    //  默认返回值为0(可省略).
    return 0;
}

《OC3-第一个OC的类》学习总结


1、OC是一门面向对象的语言,因此有类、对象、静态方法、动态方法、成员变量等概念。

2、OC一般用2个文件描述一个类,.h文件声明成员变量、方法,.m文件实现.h文件中声明的方法。

3、类的声明使用关键字@interface和@end,类的实现使用关键字@implementation和@end。

4、OC中方法的声明和实现必须以+或-开头,+表示类方法,-表示对象方法,在.h中声明的所有方法的作用域都是public类型,并且不能更改。

5、成员变量的作用域:@public(全局都可以访问)、@protected(只能在类内部和子类中访问)、private(只能在类内部访问)。

6、编译器只会编译.m文件,并不会编译.h文件。

7、类声明文件
//  NSObject被声明在Foundation.h中.
#import <Foundation/Foundation.h>

//  声明Student类,继承自NSObject.
@interface Student : NSObject

//  声明结束.
@end
8、类实现文件
//  Student被声明在Student.h中.
#import "Student.h"

//  实现Student类.
@implementation Student
//  实现结束.
@end
9、成员变量默认作用域是@protected,成员变量定义必须写在大括号里。

10、方法的返回值和参数类型都需要写在小括号内。

11、在OC方法中,一个冒号对应一个参数,而且冒号也是方法名的一部分。

12、get和set的声明
//  NSObject被声明在Foundation.h中.
#import <Foundation/Foundation.h>

//  声明Student类,继承自NSObject.
@interface Student : NSObject {
    int _age;
}

//  _age的get方法.
-(int)age;
//  _age的set方法.
-(void)setAge:(int)age;

//  声明结束.
@end
13、get和set的实现
//  Student被声明在Student.h中.
#import "Student.h"

//  实现Student类.
@implementation Student

//  _age的get方法实现.
- (int)age {
    //  直接返回成员变量_age.
    return _age;
}

//  _age的set方法实现.
- (void)setAge:(int)age {
    //  将参数age赋值给成员变量_age.
    _age = age;
}

//  实现结束.
@end
14、可以采用对象→成员变量的方式访问公共变量。

15、子类可以调用父类的方法,alloc、init、new方法都是父类NSObject的。

16、调用静态方法new快速创建一个对象的方式:[类名 new]。

17、调用对象的release方法可以释放此对象。

18、创建对象需要做两件事:给对象分配存储空间、给对象初始化。

《OC4-点语法》学习总结


1、通过对象名.成员变量名的方式来访问对象的公共成员变量,称为点语法。

2、传统的OC中调用get方法和set方法时用方括号。

3、stu.age不是代表直接访问成员变量age,编译器会将stu.age = 10自动转换成[stu setAge:10]。

4、编译器会将age = stu.age自动转换成age = [stu age]。

5、OC点语法的本质是方法调用,不是直接访问成员变量。

6、为了更好的区分点语法和成员变量访问,一般在定义成员变量时会以下划线开头。

7、set方法的错误实现,将会导致程序出现死循环。
//  set方法错误实现.
- (void)setAge:(int)age {
    self.age = age;
}
//  编译后.
- (void)setAge:(int)age {
    [self setAge:age];
}
8、set方法的正确实现。
//  set方法正确实现.
- (void)setAge:(int)age {
    s_age = age;
}

《OC5-构造方法和description方法》学习总结


1、用来初始化对象的方法,称为构造方法。

2、自定义构造方法的方法名一般都会以init开头,返回值为id类型,id可以代表任何OC对象。

3、构造方法实现。
#import "Student.h"

@implementation Student


//  构造方法实现.
- (id)initWithAge:(int)age {
    //  先调用父类的构造方法init,然后将返回值赋值给self,接着判断self是否为nil.
    if (self = [super init]) {
        //  给成员变量_age赋值.
        _age = age;
    }
    //  返回初始化过后的self.
    return self;
}

@end
4、构造方法调用。
#import <Foundation/Foundation.h>
#import "Student.h"

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

    @autoreleasepool {
        
        //  首先调用父类的alloc方法分配内存,然后调用构造方法initWithAge:,并传入20作为参数.
        Student *stu = [[Student alloc] initWithAge:20];
        //  销毁stu对象
        [stu release];
    }
    return 0;
}
5、NSLog函数可以输出任何OC对象,使用格式符%@。

6、NSLog函数发现%@时会调用这个对象的description方法,并将description方法返回的字符串代替%@的位置进行输出。

7、description方法默认返回<类名:对象的内存地址>。

8、重写description方法会覆盖默认的description方法。

9、静态方法返回的对象,不需要手动释放。

10、在description方法中同时使用%@和self,将会导致程序出现死循环。

---------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------


----------------详细请查看:www.itheima.com-----------------------------------------


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值