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

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值