类定义
oc 中定义一个类会产生两个文件 .h 和 .m
- .h 文件放类的声明,包括成员变量、属性和方法声明(.h文件不参与编译过程);关键字 @interface 声明一个类,以 @end 结束。
- .m 文件放属性、方法的具体实现,关键字 @implementation 实现某个类,以@end 结尾
Person.h
#import <Foundation/Foundation.h>
@interface Person : NSObject
@end
Person.m
#import "Person.h"
@implementation Person
@end
由于.m中使用了Person类,所有需要导入声明文件 "Person.h"
java 中默认所有类继承自Object
class Person {
}
方法和属性
Person.h
#import <Foundation/Foundation.h>
@interface Person : NSObject
// 对象是指针类型 带 * 号
NSString *name;
// 实例方法
-(void) setName:(NSString *) name;
// 静态方法
+(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;
}
// 静态方法,直接 Person.show(); 调用
public static void show() {
}
}
self 关键字
表示当前对象或者类本身
Java中用this
构造方法
-(id) initWithName:(NSString *) name {
if (self = [super init]) {
self.name = name;
}
return self;
}
java
//默认实现
public Person() {
}
public Person(String name) {
this.name = name;
}
//oc 类实例化需要先申请内存
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