OC - 类的基本定义与方法的使用

//先上.m
//  Created by 大L君 on 16/1/19.
//  Copyright © 2016年 bigL.com. All rights reserved.

#import <Foundation/Foundation.h>
//
@interface Person : NSObject//类的声明
{
    @public //对象属性的声明
    NSString *_name;
    int _age;
    double _weight;
}
-(void)shout;//对象方法声明
+(void)sumValue1:(int)numX withSumValue2: (int)numY;//类方法声明
@end


@implementation Person//方法的实现
-(void)shout     //输出所有对象的值
{
    NSLog(@"name = %@;age = %d; weight = %.2lf",_name,_age,_weight);
}
+(void)sumValue1:(int)numX withSumValue2: (int)numY//求2个数的和
{
    NSLog(@"sum = %i",numX+numY);
}

@end

void test();//函数声明(函数声明与调用类声明之间不分先后 PS:(函数与调用结构体分先后))
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        test();
    }
    return 0;
}

void test()
{
    Person *p = [Person new];//通过类创建对象
    p -> _name = @"蛤";//修改对象的属性
    p -> _age  = 18;
    p -> _weight = 157.54;
    [p shout];//对象方法只能用对象调用
    [Person sumValue1:10 withSumValue2:20];//类方法只能用类调用
}

/*===================================================
 2016-01-19 15:14:52.765 1.2 类的定义[5147:415020] name = 蛤;age = 18; weight = 157.54
 2016-01-19 15:14:52.766 1.2 类的定义[5147:415020] sum = 30
 ==================================================*/

一.类的基本格式

@interface 类名 : 父类名称//NSObjectOC中的基类
{
    @public //公用对象
    NSString _a;//成员对象的声明
    int _b;
    id _c;
}
//对象方法的声明
//类方法的声明
@end

@implementation 类名
//对象方法
-(方法类型)对象方法名:(参数类型)参数名1 方法签名:(参数类型)参数名2
{
    code;
}
//类方法
+(方法类型)类方法名:(参数类型)参数名1 方法签名:(参数类型)参数名2
{
    code;
}
@end

图片版定义方法
二.对象方法和类方法与函数区别
//类方法与对象方法 : 互相4种调用均问题;

  1. 对象方法与类方法的区别
    这里写图片描述

  2. 函数与方法区别
    对象方法:
    • (1)对象方法的实现只能写在@implementation…@end中,对象方法的声明只能写在 @interface…@end中间
    • (2)对象方法都以-号开头,类方法都以+号开头
    • (3)对象方法只能由对象来调用,类方法只能由类来调用,不能当做函数一样调用
    •(4)函数属于整个文件,可以写在文件中的任何位置,包括@implementation…@end中,但写在 @interface…@end会无法识别,函数的声明可以在main函数内部也可以在main函数外部。
    • (5)对象方法归类\对象所有

    • 函数:
    • (1)所有的函数都是平行的
    • (2)函数不存在隶属关系
    • (3)使用的时候可以直接调用
    • (4)不可以访问对象中的成员变量

    三. 常见错误
    • 1)@interface @end和@implementation @end不能嵌套包含
    • 2) OC是弱语法,可以只有@implementation,但实际开发中千万不要这样。
    • 4)漏写@end
    • 5)两个类的对象声明顺序(可以把顺序打乱)
    • 6)成员变量没有写在{}里
    • 7)方法的声明写在了{}里面
    • 8)在声明时不能对类的成员变量进行初始化,请注意成员变量不能脱离对象而独立存在
    • 9)方法无法像函数那样的调用
    • 10)成员变量和方法不能用static等关键字修饰,不要和c语言混淆
    • 11)类的实现可以写在mian函数后面,在使用之前只要有声明就可以

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值