ios第一课 关于类的声明和实现

总结:

1:

+ 代表方法为 类方法;

 - 代表方法为 实例方法;

2:

//在同一个类内方法不能重载,即方法的签名不能完全一样;但是类方法和实例方法签名可以相同

//方法的签名 参数类型、参数名称无关

//方法签名和方法的返回值类型无关;

3:

//实例方法可以直接引用类的实例变量和其他实例方法

//类的方法都是public的,没有protected private方法 ,但是如果一个方法 只是出现在类的方法里面,没有出现在类的声明里,name这个方法可以认为是私有的!

ASstudent类的声明

#import <Foundation/Foundation.h>

@interface ASStudent : NSObject
{
    NSString* name;//ios当中 对象都是在堆上分配的,所以都是指针
    @public
    unsigned int age;
    @private
    NSString* sid;//
}

+(void)print; // + 代表方法为 类方法; void为返回值类型, print为签名
-(void)setName:(NSString*)aName;// - 代表方法为 实例方法; void为返回值类型,setName: 为 签名 :也属于签名部分; NSString* 为形参类型, aName为形参
-(NSString*)name;
//-(void)name;  //error 实例方法签名不能相同 这个和上面都是 name
-(void)name:(int)aname;// 签名部分为 name: 包含冒号部分  所以不算相同
+(void)name; //true 类方法和 实例方法  签名可以相同  方法签名不能一样,不支持重载
//在同一个类内方法不能重载,即方法的签名不能完全一样;但是类方法和实例方法签名可以相同
//方法的签名 和 参数类型、参数名称无关
//方法签名和方法的返回值类型无关;


@end

实现:

#import "ASStudent.h"

@implementation ASStudent

-(NSString*)name{
    return name;
}

-(void)setName:(NSString *)aName{
    name = aName;
}

+(void)print{
    NSLog(@"类方法");
}
//实例方法可以直接引用类的实例变量和其他实例方法
//类的方法都是public的,没有protected 和 private方法 ,但是如果一个方法 只是出现在类的方法里面,没有出现在类的声明里,name这个方法可以认为是私有的!

@end

发现: 可以声明  但是不实现,不会报错,但是C++当中会报错;


主函数调用:

#import <Foundation/Foundation.h>
#import "ASStudent.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        
        ASStudent* student = [[ASStudent alloc]init]; //对象的创建
        student->age = 10;
        
        [student setName:@"dujianbao"]; //实例方法 调用
        NSLog(@"%@",[student name]);
        
        [ASStudent print]; //类方法的 调用  
        
            }
    return 0;
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值