码迷,mamicode.com
首页 > 其他好文 > 详细

Object-C学习笔记之基础知识一

时间:2015-10-02 20:03:13      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:

Object-C 是C的衍生语言,继承了所有C语言的特性,但是Object-C并不是继承自C语言特性本身。

首先我们先通过例子来说明Object-C中的一些基本语法:

#import <Foundation/Foundation.h>

@interface Print: NSObject{    //Objective-c的所有类都继承于NSObject 
    // 成员属性
    NSString * caption;
    NSString * photographer;
}

//在Objective-C 2.0引入了属性合成,相当于之前的get/set方法 
@property(nonatomic, copy) NSString * caption;
@property(nonatomic, copy) NSString * photographer; 

//类方法

+(NSString *)printSize: (NSString *)size;
//实例方法
-(NSString *)printName;
-(NSString *)printName: (NSString *)name;

-(BOOL)print: (NSString *)size setLength: (int)length;

@end

上面代码展示了如何在Object-C声明一个类,其中也涉及到了少许继承:

Object-C声明一个类以@interface 开始,以@end 结束;

Print 为所声明的类,继承自NSObject 类;

//无参实例方法
-(NSString *)printName;
//有参实例方法
-(NSString *)printName: (NSString *)name;
//多参实例方法

-(BOOL)print: (NSString *)size setLength: (int)length;

相当于Java中的:

public static String printSize(String name){
}
public String printName(){
}

public String printName(String name){
}
public Boolean print(String name, int length){
}

首先要把以前学习面向对象语言的惯性思维抛去,在Objective-C里面没有public和private的概念,你可以认为全是public;它只有类方法和实例方法,加号表示类方法,类方法可以直接调用,而不用创建这个类的实例;减号表示实例方法,需要创建这个类的实例对象才可以调用。

(void)和(BOOL)分别为返回值的类型; 
那么BOOL是不是跟Java语言中的Boolean值一样呢,不是的: 
BOOL使用8位存储,YES定义为1,NO定义为0,大于1不为YES,跟标准C不同。 
若不小心将一个长于1字节的整型值赋给BOOL,则只截取低八位 
Obejective-C中1不等于1,绝对不要将BOOL值和YES比较

引用转载自:www.cnblogs.com/moonvan 
/archive/2011/10/13/2210498.html

#import <Foundation/Foundation.h> 

//使用@implementation开始和@end结束实现类的内容
@implementation Print

@synthesize caption;
@synthesize photographer;

+(NSString *)printSize: (NSString *)size{
    ......
}
-(NSString *)printName: (NSString *)name{
    ......
}

@end

之后,就是如何调用的问题了:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]){
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 
    
    //实例化类的对象 
    Print * pt = [[Print alloc]init];
    
    //方法的使用

    NSString * a = [self printSize: @"20"];
    NSString * b = [pt printName];
    NSString * c = [pt printName: @"Yi_Yuan_n"];
    BOOL d = [pt printName: @"Yi_Yuan_n" setlength: 175];
    
  //属性的使用
    //设置器的调用
    [pt setCaption: @"haha"];
    [pt setPhotographer: @"hehe"];
    //获取器的调用
    NSString * haha = [pt getCaption];
    NSString * hehe = [pt getPhotographer];
    //输出
    NSLog(@"%@", haha);
    NSLog(@"%@", hehe);
    
    [pt release];
    
    [pool drain];
    return 0;
}

Object-C学习笔记之基础知识一

标签:

原文地址:http://my.oschina.net/u/2478158/blog/513238

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!