類定義
oc 中定義一個類會產(chǎn)生兩個文件 .h 和 .m
- .h 文件放類的聲明丝蹭,包括成員變量慢宗、屬性和方法聲明(.h文件不參與編譯過程)坪蚁;關(guān)鍵字 @interface 聲明一個類奔穿,以 @end 結(jié)束。
- .m 文件放屬性敏晤、方法的具體實現(xiàn)贱田,關(guān)鍵字 @implementation 實現(xiàn)某個類,以@end 結(jié)尾
Person.h
#import <Foundation/Foundation.h>
@interface Person : NSObject
@end
Person.m
#import "Person.h"
@implementation Person
@end
由于.m中使用了Person類婚瓜,所有需要導(dǎo)入聲明文件 "Person.h"
java 中默認(rèn)所有類繼承自O(shè)bject
class Person {
}
方法和屬性
Person.h
#import <Foundation/Foundation.h>
@interface Person : NSObject
// 對象是指針類型 帶 * 號
NSString *name;
// 實例方法
-(void) setName:(NSString *) name;
// 靜態(tài)方法
+(void) show();
@end
Person.m
#import "Person.h"
@implementation Person
-(void) setName:(NSString *) name {
self.name = name;
}
+(void)show() {
NSLog(@"hehe");
}
@end
Java
class Person {
//聲明一個屬性
String name;
// 實例方法
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
// 靜態(tài)方法票灰,直接 Person.show(); 調(diào)用
public static void show() {
}
}
self 關(guān)鍵字
表示當(dāng)前對象或者類本身
Java中用this
構(gòu)造方法
-(id) initWithName:(NSString *) name {
if (self = [super init]) {
self.name = name;
}
return self;
}
java
//默認(rèn)實現(xiàn)
public Person() {
}
public Person(String name) {
this.name = name;
}
//oc 類實例化需要先申請內(nèi)存
Person *p = [[Person alloc]initWithName:@"lihua"];
description 方法
打印對象時扳抽,輸出具體信息,(打印地址沒什么用)
-(NSString *)description{
return [NSString stringWithFormat:@"{name:%@}",self.name];
}
java
@Override
public String toString() {
return "Person [name=" + name + "]";
}
繼承
oc
@interface Person : NSObject
@end
java
class Son extends Person