gnustep:object-c继承
点击 27461 创建时间 2012-10-30 22:46:27
<p> <strong>People.h</strong></p> <div class="code">
import <Foundation/Foundation.h> <br />
@interface People : NSObject<br />
{<br />
NSInteger age;<br />
NSString *name;<br />
}<br />
-(NSString*)getName;<br />
-(void)setName:(NSString*)name2;<br />
-(void)setAge:(NSInteger)age2;<br />
-(NSInteger)getAge;<br />
@end</div>
<p> <strong>People.m</strong></p> <div class="code">
import "People.h"<br />
@implementation People: NSObject<br />
<br />
- (NSString*) getName<br />
{<br />
return name;<br />
}<br />
<br />
- (void) setName:(NSString*) name2<br />
{<br />
name=name2;<br />
}<br />
-(void)setAge:(NSInteger)age2<br />
{<br />
age =age2;<br />
}<br />
-(NSInteger)getAge<br />
{<br />
return age;<br />
}<br />
@end</div>
<p> <strong>Teacher.h</strong></p> <div class="code">
import <Foundation/Foundation.h> <br />
@interface Teacher : People<br />
{<br />
NSString *major;<br />
}<br />
-(NSString*)getMajor;<br />
-(void)setMajor:(NSString*)major2;<br />
@end</div>
<p> <strong>Teacher.m</strong></p> <div class="code">
import "Teacher.h"<br />
@implementation Teacher:People<br />
-(NSString*)getMajor<br />
{<br />
return major;<br />
}<br />
-(void)setMajor:(NSString*)major2<br />
{<br />
major=major2;<br />
}<br />
@end</div>
<p> <strong>test.m</strong></p> <div class="code">
import <Foundation/Foundation.h> <br />
#import "People.m"<br />
#import "Teacher.m"<br />
<br />
int main(int arvc, char* argv[]) <br />
{ <br />
NSString *domain = @"wudimei.com杨庆荣";<br />
<br />
NSLog(@"domain:%@ ,length:%d",[domain uppercaseString] , [domain length]);<br />
<br />
People *people= [[People alloc]init];//初始化自定义类People<br />
NSString *name = [[NSString alloc]init];<br />
name=@"yqr杨庆荣";<br />
[people setName:name];<br />
[people setAge:28];<br />
NSLog(@"name:%@ , age: %d", [people getName] ,[people getAge]);<br />
<br />
Teacher *teacher = [[Teacher alloc]init]; //Teacher类继承自People类<br />
NSString *major = [[NSString alloc]initWithString:@"math"];<br />
[teacher setMajor:major];<br />
[teacher setAge:29];<br />
NSLog(@"name:%@ , age: %d", [teacher getMajor] ,[teacher getAge]);<br />
return 0; <br />
} <br />
<br />
//gcc -o test test.m -I/GNUstep/System/Library/Headers/ -fconstant-string-class=NSConstantString -L/GNUstep/System/Library/Libraries -lobjc -lgnustep-base && ./test.exe<br />
//文件存为utf-8格式<br />
</div>
<p> 输出结果是:</p> <div class="code"> <span style="color:#008000;">rong@rong-PC ~</span><br /> <span style="color:#ff5500;">$ gcc -o test test.m -I/GNUstep/System/Library/Headers/ -fconstant-string-class<br /> =NSConstantString -L/GNUstep/System/Library/Libraries -lobjc -lgnustep-base &&<br /> ./test.exe<br /> 2012-10-30 22:42:14.158 test[4604] autorelease called without pool for object (0<br /> x5dac68) of class GSUnicodeBufferString in thread <NSThread: 0x59b458><br /> 2012-10-30 22:42:14.189 test[4604] domain:WUDIMEI.COM鏉ㄥ簡鑽?,length:14<br /> 2012-10-30 22:42:14.205 test[4604] name:yqr鏉ㄥ簡鑽?, age: 28<br /> 2012-10-30 22:42:14.220 test[4604] name:math , age: 29</span></div>
上一篇: gnustep写一个类
下一篇: php5.4.8 连接mysql比php5.2.6要慢