我們的目標是理解並實現 Java 中的控製抽象。在直接進入控製抽象之前,讓我們先了解什麽是抽象。
抽象:簡而言之,抽象就是隻向用戶展示係統的基本函數而不深入了解其細節。例如,向買家說明汽車及其函數,駕駛員也學習如何使用方向盤和加速器駕駛,但發動機的內部機製不會向買家展示。要了解有關抽象的更多信息,請參閱這裏.
首先,我們看到一個簡單的抽象示例,然後我們轉向 java 中的控件抽象:
Java
abstract class gfg {
abstract void printInfo();
}
class employee extends gfg {
void printInfo() {
String name = "avinash";
int age = 21;
float salary = 22332.2F;
System.out.println(name);
System.out.println(age);
System.out.println(salary);
}
}
class base {
public static void main(String args[]) {
gfg s = new employee();
s.printInfo();
}
}
輸出
avinash 21 22332.2
抽象來說,有兩種類型:數據抽象和控製抽象。
簡而言之,數據抽象意味著創建複雜的數據類型,但僅給出基本操作。
控製抽象:這是指抽象的軟件部分,其中程序被簡化並刪除了不必要的執行細節。
這裏有關於控製抽象的要點:
- 控製抽象遵循 DRY 代碼的基本規則,這意味著不要重複自己,在程序中使用函數是控製抽象的最佳示例。
- 控製抽象可用於構建新函數並將控製語句組合成單個單元。
- 它是所有高級語言的基本特征,而不僅僅是java。
- 高階函數、閉包和 lambda 是控製抽象的幾個先決條件。
- 更多地強調如何實現特定函數,而不是說明每個細節。
- 構成結構化編程的主要單元。
一個簡單的控製流算法:
- 首先獲取資源
- 然後,執行該塊。
- 一旦控製權離開塊,資源就會關閉
例子:
Java
// Abstract class
abstract class Vehicle {
// Abstract method (does not have a body)
public abstract void VehicleSound();
// Regular method
public void honk() { System.out.println("honk honk"); }
}
// Subclass (inherit from Vehicle)
class Car extends Vehicle {
public void VehicleSound()
{
// The body of VehicleSound() is provided here
System.out.println("kon kon");
}
}
class Main {
public static void main(String[] args)
{
// Create a Car object
Car myCar = new Car();
myCar.VehicleSound();
myCar.honk();
}
}
輸出
kon kon honk honk
控製抽象的最大優點是它使代碼更加幹淨並且更加安全。
相關用法
- Java ContentHandlerDecorator用法及代碼示例
- Java ConcurrentHashMap computeIfPresent()用法及代碼示例
- Java ConcurrentHashMap equals()用法及代碼示例
- Java ConcurrentHashMap forEach()用法及代碼示例
- Java ConcurrentHashMap getOrDefault()用法及代碼示例
- Java ConcurrentHashMap hashcode()用法及代碼示例
- Java ConcurrentHashMap mappingCount()用法及代碼示例
- Java ConcurrentHashMap merge()用法及代碼示例
- Java ConcurrentHashMap newKeySet()用法及代碼示例
- Java ConcurrentHashMap replace()用法及代碼示例
- Java ConcurrentHashMap toString()用法及代碼示例
- Java ConcurrentLinkedQueue forEach()用法及代碼示例
- Java ConcurrentLinkedQueue removeAll()用法及代碼示例
- Java ConcurrentLinkedQueue removeIf()用法及代碼示例
- Java ConcurrentLinkedQueue retainAll()用法及代碼示例
- Java Connection setAutoCommit()用法及代碼示例
- Java Connection setTransactionIsolation()用法及代碼示例
- Java Connection setHoldability()用法及代碼示例
- Java Console format()用法及代碼示例
- Java Console printf()用法及代碼示例
- Java ConcurrentHashMap contains()用法及代碼示例
- Java ConcurrentHashMap containsKey()用法及代碼示例
- Java ConcurrentHashMap containsValue()用法及代碼示例
- Java ConcurrentHashMap elements()用法及代碼示例
- Java ConcurrentHashMap entrySet()用法及代碼示例
注:本文由純淨天空篩選整理自dikshapatro大神的英文原創作品 Control Abstraction in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。