objective-c 自定义类

Objective-c
创建类 class
会自动生成二个文件
Student.h


Student.m


Student.h ,类song的头文件
Student.m,类song的实现文件


//-(NSString *)name;   //减号-代表的是实例方法,加号+代表的是类方法


在其他类中调用创建的类要引用:
#import "Student.h"    //不要忘了这句,否则无法使用自己定义的song类


**在头文件里添加类成员变量和方法


@interface


#import <Foundation/Foundation.h>   
  
@interface Student : NSObject  
{  
    NSString *studentName;  
    NSInteger age;  
}  
  
-(void) printInfo;  
-(void) setStudentName: (NSString*) name;  
-(void) setAge: (NSInteger) age;  
-(NSString*) studentName;  
-(NSInteger) age;  
@end  
@interface 类的开始的标识符号 ,好比Java  或 C 语言中的Class   
@end 类的结束符号
继承类的方式:Class:Parent,如上代码Student:NSObject
成员变量在@interface Class: Parent { .... }之间
成员变量默认的访问权限是protected。
类成员方法在成员变量后面,格式是:: scope (returnType) methodName: (parameter1Type) parameter1Name;
scope指得是类方法或实例化方法。类方法用+号开始,实例化方法用 -号开始。


**实现类方法


@implementation


#import "Student.h"   
  
@implementation Student  
  
-(void) printInfo  
{  
    NSLog(@"姓名:%@ 年龄:%d岁",studentName,studentAge);  
}  
-(void) setStudentName: (NSString*) name  
{  
    studentName = name;  
}  
-(void) setAge: (NSInteger) age  
{  
    studentAge = age;  
}  
-(NSString*) studentName  
{  
    return studentName;  
}  
-(NSInteger) age  
{  
    return studentAge;  
}  
  
@end  


在View中创建并初始化,调用方法。


- (void)viewDidLoad  
{  
    [super viewDidLoad];      
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];  
      
    Student *student = [[Student alloc]init];  
    [student setStudentName:@"张三"];  
    [student setAge:10];  
    [student printInfo];  
    [pool release];  
  
}  
Sutdent *student = [[Sutdent alloc] init]; 这行代码含有几个重要含义
 [Student alloc]调用Student的类方法,这类似于分配内存,
 [object init]是构成函数调用,初始类对象的成员变量。
打印结果:
姓名:张三 年龄:10岁  

你可能感兴趣的:(objective-c 自定义类)