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

来源:互联网 发布:steam数据扫号 编辑:程序博客网 时间:2024/05/29 21:28

总结:

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 0
原创粉丝点击