object-c最基础语法快速入门笔记

能力要求:能看、能改对写不作要求(暂时)

通过类比法学习,应该会比较快吧。

函数的定义:

(void) initInfo:(NSString *) mName mAge: (int) value mSex: (NSString *)sex {  
                NSLog(@"my name is %@ ,my age is %d,my sex is %@",mName,mAge,mSex);  
          } 

解释:
‘-’ 表示实例化方法

‘+’ 表示静态方法,类似static
oc木有public

‘(void)’ 表示返回值

‘initInfo:’注意有个冒号,是函数名

‘mName’表示形参,前面加空格隔开

‘(NSString *)’是形参类型,写在括号中,NSxxx是一套函数库(NextStep)
NSLog、NSString、NSInteger、NSURL、NSImage… …

内部参数外部参数暂时没搞懂

函数的调用:

[GetInfo initInfo: @”cloudhuan” mAge: “25” mSex:@”男3”]
[self getName:@”xxx”]

‘[]’ 看来要加个[ ] 中括号

‘空格’ 用类名 方法名调用,java是xx.xx

后边表示实参,第一个参数不用写名字,其他可以写名字,类似py咯

@ 是用来标识NSString类型的,双引号之前要加上,字符串作为Cocoa的NSString处理

类的定义和使用:

先写头文件:

#import <Foundation/Foundation.h>  
  // <>这是导入系统的意思?
@interface Fraction : NSObject  
  //oc先定义头文件,然后.m写具体实现,这里的@interface很像java的定义接口了
-(void) print;  
// 嘿嘿,接口都是不写具体实现的
-(void) setNumerator: (int) n;  
-(void) setDenominator: (int) d;  
-(int) numerator;  
-(int) denominator;  
-(double) convertToNum;  

@end  
//定义完成用@end结束,java是大括号

然后是实现:

#import "Fraction.h"  
  // ""这玩意表示是引入自己定义的接口文件、头文件
@implementation Fraction  
// implment?就是实现,和j一致
{  
    int numerator;  
    int denominator;  
}  

-(void) print  
{  
    NSLog(@"%i/%i",numerator,denominator);  
}  

-(void) setNumerator:(int)n  
{  
    numerator=n;  
}  

-(void) setDenominator:(int)d  
{  
    denominator=d;  
}  

-(int) numerator  
{  
    return numerator;  
}  

-(int) denominator  
{  
    return denominator;  
}  

-(double) convertToNum  
{  
    if(denominator!=0){  
        return (double)numerator/denominator;  
    }else{  
        return NAN;  
    }  
}  

@end  

定义完就使用吧!

#import "Fraction.h"
// 还是import到头文件中去
Fraction *fractionA = [Fraction new];  
[fractionA setNumerator:1];  

实例化是[xxx new]这样的,但是还可以
A *A = [[xx alloc]init] 这是alloc申请内存空间,然后init初始化
区别在于可以自定义构造函数了,new默认使用init,但是alloc/init可以自己定义

关于getter和setter
oc直接通过@property 和 @synthesize 实现了

@property int numerator,denominator;
// 在头文件定义
@synthesize numerator,denominator; 
// 实现类中系统自动实现,调用直接setX getX  [xxx setXXX:xxx]

练习:
1.定义一个接口文件(头文件),然后定义3个方法,参数类型1~n个
2.定义3个成员变量,其中两个使用@property定义get/set
3.实现这个接口
4.在main.m中使用两种方法实例化这个类,并且调用,结果通过NSLog打印出来

@interface PeopleInfo:NSObject
    NSString name;
    @property int age;
    - (NSString)getName;
    - (void)setName:(NSString) mName;
@end
------------------------------------------
@implementation PeopleInfo
    - (NSString)getName{
        return name;
    }
    - (void)setName:(NSString) mName{
        name = mName;
    }
@end
------------------------------------------
PeopleInfo info = [[PeopleInfo alloc]init]
[info getName]

基础数据结构

基本数据类型:int short long float double

字符串类型:NSString* char* 格式化用[NSString stringwithFormat:xxx]

布尔:YES NO

容器类:NSArray不可变,不可以存基本数据类型 NSMutableArray可变化的数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值