关于Objective-C的入门学习整理

关于Objective-C初级学习的整理

有段日子没有写博客了,下面来整理整理我这段时间学习的OC知识。

-基本语法
-类的声明和实现
-实例练习


基本语法

  • #import指令 该指令自带预编译判断,相较于C的#include省去了判断语句
  • Autoreleasepool 自动释放池,自动释放内部的对象,具体是在内存管理中的(之后深入学习我会补充)
  • NSLog OC之中的输出语句,可以输出时间,语法基本与C中的printf相同
  • 字符串 OC之中的字符串与特地独立出一个类NSString,类似于C++、Java之中的string类(需要注意的是,其必须添加'@'作为字符串的开头,比如:@"Hello World!",另外不同于C之中%s,OC用%@表示字符串)
  • 关键字 在OC中大部分关键字前需要加上@
  • 数据类型 不同于C且比较常见的类型有对象类型:(NSObject *)对象类型 (id)动态对象类型 (SEL)选择器数据类型

类的声明和实现

  • 声明 .h文件为类的声明文件,用于声明成员变量、方法。声明时使用关键字@interface和@end,且该文件中的方法仅仅作为声明,并不进行具体实现
  • 实现 .m文件为类的实现文件,用于实现.h文件中的方法。实现时使用关键字@implementation和@end
  • 方法 方法声明和实现必须以+或-开头,+表示类方法,静态方法;-表示对象方法,动态方法
  • 成员变量 三种作用范围声明的关键字
    @public 全局皆可访问
    @private 只能类内部访问
    @protected 类内部与子类可以访问

方法

方法的声明

格式:- (returnTypeName)methodName : (typeName)parameter ……;
例如:- (double)sum:(double) num1 : (double) num2;

方法的实现
//Person.h文件中
@interface Person:NSObject
-(void)say;
@end
//Person.m文件中
@implementation Person
-(void)say
{
    NSLog(@"Hello World!");
}
@end
方法的调用
  • [类名或者对象名 方法名]; 例如:
Person* person = [Person new]; 
// 或者Person* person = [[Person alloc] init];
[person say];
  • 或者用点来调用 用@property来声明的成员变量自动生成set和get方法; 例如:
//Person.h文件中
@interface PersonNSObject
@property int age;//相当于定义一个_age的成员变量
@end
//main.m文件中
Person* person = [[Person allco] init];
person.age = 18;//相当于person->_age = 18;

self关键字

类似于Java和C++,self就是本类的指针,也就是上述两种语言的this
self方便一个方法中调用另外的方法,也防止局部变量和成员变量同名时混淆
@implementation Person
-(void)tellAge
{
    [self say];
    NSLog(@"我今年%d岁了",self->_age);
}

-(void)say
{
    NSLog(@"Hello World!");
}
@end

description方法

//description的重写如下
-(NSString *)description
{
    return [NSString stringWithFormat:@"%@的身高为%.2f米,年龄为%d",_name,_height,_age];
}
//main.m文件中
Person *person = [[Person alloc] init];
person.name = @"Jack";
person.height = 1.78;
person.age = 21;

NSLog(@"%@",person);
//可以观察输出结果为"Jack的身高为1.78米,年龄为21"

实例练习

实现一家Apple商店的购买功能,可卖商品有iPhone,iPad,Mac这三类
分析如下
1. 类:appleshop
属性:货架
方法:欢迎语
2. 类:货架类
属性:手机 电脑 平板
方法:购买方法,添加货物方法,
3. 类:商品父类
属性:价格,名称
4. 子类:手机,电脑,平板
5. 打折父类:
根据原价计算价格
子类:满减,或者折扣

具体代码下载地址:OC入门练习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值