Object-C入门,创建一个Person工程,给新手用

来源:互联网 发布:java类加载机制 编辑:程序博客网 时间:2024/05/18 02:47

OC语言的基本特点:

(1)OC语言是C语言的一个超集,只是在C的基础之上加上了面对对象(oo)的特性;

(2)OC与Java语言相同都是单继承,这一点与C++语言不同(多重继承);

(3)OC不支持命名空间机制,取而代之的是在类名之前添加前缀,以此来区分。

创建一个Person工程

main.m

#import <Foundation/Foundation.h>#import "Person.h"int main(int argc, const char * argv[]){     /*____________________创建person对象______________________*/    //在OC里面对象使用指针声明的    //alloc在内存中申请一块内存,用来存储此对象的信息//    Person *person = [Person alloc];    //调用init方法初始化一些默认的数据//    person = [person init];        //以上两步就创建好了一个对象    //等价与下面的这句    Person *person = [[Person alloc] init];        //new创建对象,不推荐//    Person *person1 = [Person new];        /*________________________OC方法的调用__________________________*///    [对象/类  方法名];        //类方法的调用    [Person testClass];        //实例方法的调用    //不带参数的方法的调用    [person shopping];        //带一个参数的方法的调用    [person shopping:3000];        //带两个参数的方法的调用    [person shopping:400 withPlace:@"大物美"];        NSInteger a = [person shoppingPrice];    NSLog(@"a:%ld",a);        return 0;}
Person.h

#import <Foundation/Foundation.h>//:后面的就是当前类的父类,NSObject是一切类的根类@interface Person : NSObject {    //在{}之间定义属性    //属性、全局变量、实例变量、成员变量        NSInteger age;  //年龄        NSString *name; //名字        BOOL sex;   //性别        //注意:在OC里面不能在定义属性的时候对属性赋值//    float height = 1.70;   //身高    }/*--------------------设置类的方法---------------------*///C语言定义函数//函数返回值类型 函数名  (形参列表);//int getSum(int a, int b);//OC中方法的定义//方法的类型 (方法的返回值类型)方法名  参数/*--------------------设置类的方法(实例方法)---------------------*///实例方法//方法名:   shopping- (void)shopping;   //购物的方法,不带参数//方法名:  shopping:(注意:“:”是方法名的一部分)- (void)shopping:(float)price;  //带一个参数的//方法名:   shopping: withPlace:- (void)shopping:(float)price withPlace:(NSString *)place;   //带两个参数//返回类型为整型- (NSInteger)shoppingPrice;/*--------------------设置类的方法(累方法)---------------------*/+ (void)testClass;@end


Person.m

#import "Person.h"@implementation Person//不带参数的方法- (void)shopping {    //在实例方法类里面可以用档期类的属性//    NSLog(@"%@",name);        NSLog(@"购物了");    }//带一个参数的方法- (void)shopping:(float)price {    NSLog(@"购物消费了%f元",price);}//带两个参数的方法- (void)shopping:(float)price withPlace:(NSString *)place {    NSLog(@"在%@购物消费了%f元",place,price);    }- (NSInteger)shoppingPrice {    NSInteger price = 100;        return price;}//类方法+ (void)testClass {    //在类方法中无法访问属性//    NSLog(@"%@",name);        NSLog(@"这是一个类方法");    }@end




0 0
原创粉丝点击