数据类型之id类型
id數(shù)據(jù)類型可以存儲(chǔ)任何類型的對(duì)象。在概念上類似于Java中的Object類,可以被轉(zhuǎn)換為任何數(shù)據(jù)類型。在內(nèi)部處理中,id是一個(gè)指向任何一個(gè)繼承了Object或者NSObject類的對(duì)象,在使用時(shí)不用加星號(hào)。
Student.h
#import <Foundation/Foundation.h>@interface Student : NSObject {int sid; //學(xué)號(hào)NSString *name; //姓名 }@property int sid; @property (nonatomic,retain)NSString *name;-(void)print; //聲明一個(gè)名為print的實(shí)例方法 -(void)setSid:(int)sid andName:(NSString*)name;@endStudent.m
#import "Student.h"@implementation Student @synthesize sid,name;-(void)print {NSLog(@"My number is %i,and My name is %@",sid,name); } -(void)setSid:(int)sid1 andName:(NSString*)name1 {self.sid=sid1;self.name=name1; }@endMember.h
#import <Foundation/Foundation.h>@interface Member : NSObject {int age;NSString *name; }@property(nonatomic,retain)NSString *name; @property int age;-(void)print; -(void)setName:(NSString *)name1 andAge:(int)age1;@endMember.m
#import "Member.h"@implementation Member @synthesize age,name;-(void)print{NSLog(@"Myname is %@,Myage is %i",name,age); }-(void)setName:(NSString *)name1 andAge:(int)age1{self.age=age1;self.name=name1; }@endmain.m
#import <UIKit/UIKit.h>#import "AppDelegate.h" #import "Member.h" #import "Student.h"int main(int argc, char * argv[]) {@autoreleasepool {NSLog(@"My First App is Run!"); //為什么加了這句以后下面的print就打不出來(lái)了?Member *member1=[[Member alloc]init];[member1 setName:@"zhangsan" andAge:24];id data; //定義了一個(gè)id類型的變量datadata=member1;[data print];Student *student1=[[Student alloc]init];[student1 setSid:9527 andName:@"huaan"];data=student1;[data print]; } return 0; }?
轉(zhuǎn)載于:https://www.cnblogs.com/Birdmafly/p/3670952.html
總結(jié)