欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java 內(nèi)部類和組合

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

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

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

public class OuterClass {
private int num = 10;
// 靜態(tài)內(nèi)部類
static class StaticInnerClass {
public void printNum() {
System.out.println("num is " + num); //不允許訪問外部類的非靜態(tài)成員變量
}
}
// 非靜態(tài)內(nèi)部類
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();
}
}

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

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();
}
}

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