Objective-C類和Java類

1.類的定義

Objective-C類 java

@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文件下。 spa

Java類 code

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 ci

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

對於Java類來講,存在抽象類這個概念,對於Objective-C類來講不存在這個概念;對於整個繼承關係來講,要想在子類中添加新行爲,一個是重寫父類中的方法,另外一種是在子類中添加新方法。
相關文章
相關標籤/搜索