Objective-C类和Java类

1.类的定义

Objective-C类

@interface Circle:NSObject{
 int fillColor;
 int bounds;
}

- (void)setFillColor:(int)fillColor;
- (void)setBounds:(int)bounds;
- (void)draw;
@end// Circle 类接口部分

@implementation Circle
- (void)setFillColor:(int)c{
 fillColor = c;
}//setFillColor

- (void)setBounds:(int)b{
 bounds = b;
}//setBounds

- (void)draw{
 NSLog(@"draw a cirle %d,%d",fillColor,bounds);
}
@end// Circle 类实现部C类

上面代码是一个Objective-C类,一个Objective-C类分为两部分,接口和实现部分。通常是把接口部分放到.h文件下,实现部分放在.m文件下。

Java类

public class Circle {
 private int fillColor;
 private int bounds;
 
 public void setFillColor(int c){
  fillColor = c;
 }
 
 public void setBounds(int b){
  bounds = b;
 }
 
 public void draw(){
  System.out.println("draw a circle " + fillColor + bounds);
 }
}
上面代码是一个java类,放在一个.java的文件下

通过上面java类和Objective-C类可以看出,类的定义,方法的定义形式的不同;Objective-C中方法只有类方法+,实例方法-,不存在public、private、protected等。

2.类的继承

Objective-C类

父类:Shape

@interface Shape:NSObject{
 int fillColor;
 int bounds;
}

- (void)setFillColor:(int)fillColor;
- (void)setBounds:(int)bounds;
- (void)draw;
@end// Shape 类接口部分

@implementation Shape
- (void)setFillColor:(int)c{
 fillColor = c;
}//setFillColor

- (void)setBounds:(int)b{
 bounds = b;
}//setBounds

- (void)draw{
}
@end// Shape 类实现部C类
子类 Circle

@interface Circle:Shape

@end// Circle
@implementation Circle
- (void)draw{
 NSLog(@"draw a circle %d %d",fillColor,bounds);
}
@end// Circle
Java 类
父类 Shape
public class Shape {
 private int fillColor;
 private int bounds;
 
 public void setFillColor(int c){
  fillColor = c;
 }
 
 public void setBounds(int b){
  bounds = b;
 }
 
 public int getFillColor(){
  return fillColor;
 }
 
 public int getBounds(){
  return bounds;
 }
}

子类Circle

public class Circle extends Shape {
 
 public void draw(){
  System.out.println("draw a cicle" + getFillColor() + getBounds());
 }
}

对于Java类来说,存在抽象类这个概念,对于Objective-C类来说不存在这个概念;对于整个继承关系来说,要想在子类中添加新行为,一个是重写父类中的方法,另一种是在子类中添加新方法。

你可能感兴趣的:(Objective-C类和Java类)