我们的目标是理解并实现 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。