Objective-C 基础入门(一)

目录

 

一、什么是Objective-C?

Hello world

Tips:

二、Objective-C的类

1.新建一个OC类

self 指针

Tips:

2.NSString

创建实例

NSString方法

3.NSArray

创建数组

遍历数组

NSMutableArray

4.属性

声明属性

属性的特性

5.继承

创建 

覆盖方法

super

继承层次

6.类扩展

7.循环引用与内存泄露

弱引用


一、什么是Objective-C?

  1. 是扩充C的面向对象的编程语言;OC可以完全兼容C语言,在OC中可以随便写C代码,甚至部分的C++代码。(其他类似的面向对象编程语言:C ——> C++;Objective-C;C #)
  2. Objective-C用来可发 Mac OS X 平台与 iOS 平台的应用程序

Hello world

#import <Foundation/Foundation.h>
//类比#include<>  <>引用的是系统库;""引用自己定义的类

int main(int argc,const char * argv[])
{
    @autoreleasepool{
    //自动释放池
    
    NSLog(@"Hello World!");

    }
    return 0;
}

Tips:

  1. 输出语句 NSLog ( @"Hello World!" );  NSLog 是自动换行的,即无需 ‘ \n ’!
  2. command + R 运行;command + B 编译

二、Objective-C的类

1.新建一个OC类

  • 新建一个类时会自动创建.h 与.m 两个文件,其中.h文件只包含声明不实现;.m文件实现声明的方法。
  • 创建语句:

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

Person *per = [Person new];

BNRStockHolding.h
#import<Foundation/Foundation.h>

@interface BNRStockHolding:NSObject
{
    float _purchaseSharePrice;
    float _currentSharePrice;
    int _numberOfShares;
}

-(void)setPurchaseSharePrice:(float)p setCurrentSharePrice:(float)c... 
       setNumberOfShares:(int)n;

-(float)costInDollars;
-(float)valueInDollars;

@end


BNRStockHolding.m:
#import"BNRStockHolding.h"

@implementation BNRStockHolding

-(void)setPurchaseSharePrice:(float)p setCurrentSharePrice:(float)c...
       setNumberOfShares:(int)n
{
    _purchaseSharePrice=p;
    _currentSharePrice=c;
    _numberOfShares=n;
}

-(float)costInDollars
{
    return _purchaseSharePrice*_numberOfShares;
}
-(float)valueInDollars
{
    return _currentSharePrice*_numberOfShares;
}

@end


​main函数:
#import <Foundation/Foundation.h>
#import "BNRStockHolding.h"

int main ()
{
@autoreleasepool{
    printf("My StockHolding:\n");
    NSMutableArray *list=[[NSMutableArray alloc] init];

    BNRStockHolding *A=[[BNRStockHolding alloc] init];
    BNRStockHolding *B=[[BNRStockHolding alloc] init];
    BNRStockHolding *C=[[BNRStockHolding alloc] init];
    
    [A setPurchaseSharePrice:12 setCurrentSharePrice:14.5 setNumberOfShares:32];
    [B setPurchaseSharePrice:17 setCurrentSharePrice:12.3 setNumberOfShares:25];
    [C setPurchaseSharePrice:32 setCurrentSharePrice:27.5 setNumberOfShares:43];
    
    [list addObject:A];
    [list addObject:B];
    [list addObject:C];
    int i=1;
    for(BNRStockHolding *t in list)
        NSLog(@"第 %d 支股票的购入价为 %.2f,市值为 %.2f。",i++,[t costInDollars],
                                                             [t valueInDollars]);
    }
    return 0;
}

头文件以 @interface 开始,以 @end 结束。注意要在花括号中声明成员变量。 

  • 实例变量
  1. 变量属性默认相当于 C++ 中的 private,只能通过实例方法进行存取
  2. 变量命名以 _ 开头(后续会提到带 _ 的为实参,不带 _ 的为形参)。
  • 实例(对象)方法
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值