色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java 內部類和組合

林玟書2年前8瀏覽0評論

Java語言中的內部類和組合是兩種不同的實現方式,它們都是為了更好地實現類之間的關系而生的。

首先來說說內部類,內部類是指定義在另一個類內部的類,它可以訪問外部類的成員變量和方法,并且可以實現接口和繼承其他類。內部類還可以分為靜態內部類和非靜態內部類,靜態內部類可以直接通過外部類訪問,而非靜態內部類則需要先創建外部類的實例才能訪問。

public class OuterClass {
private int num = 10;
// 靜態內部類
static class StaticInnerClass {
public void printNum() {
System.out.println("num is " + num); //不允許訪問外部類的非靜態成員變量
}
}
// 非靜態內部類
class InnerClass {
public void printNum() {
System.out.println("num is " + num);
}
}
public static void main(String[] args) {
OuterClass.StaticInnerClass staticInnerClass = new OuterClass.StaticInnerClass();
staticInnerClass.printNum();
OuterClass outerClass = new OuterClass();
OuterClass.InnerClass innerClass = outerClass.new InnerClass();
innerClass.printNum();
}
}

其次是組合,組合是指一個類將其他類對象作為自己的成員變量,通過調用成員變量的方法來實現該類的功能。組合是一種強關聯的關系,組合的對象是該類的一部分,不能獨立存在。

public class Car {
private Engine engine;
private GearBox gearBox;
public Car() {
engine = new Engine();
gearBox = new GearBox();
}
public void start() {
engine.start();
gearBox.shift();
}
}
public class Engine {
public void start() {
System.out.println("Engine is starting...");
}
}
public class GearBox {
public void shift() {
System.out.println("GearBox is shifting...");
}
}
public class Main {
public static void main(String[] args) {
Car car = new Car();
car.start();
}
}

所以,內部類和組合都是為了更好地實現類之間的關系而生,雖然它們的實現方式不同,但是它們都可以有效地提高代碼的復用性和靈活性。