抽象和封装之间有什么区别?

Java抽象

1) 抽象是一种面向对象的编程概念,也在Java中引入。

2) 抽象意味着我们隐藏了内部实现细节。(或者换句话说,突出显示它们提供的服务集)。

范例1:

ATM用户界面:
突出显示ATM提供的服务集,例如现金提取,余额查询和密码更改等。但是我们不知道服务背后的内部编码(即隐藏的内部实现)。

范例2:

汽车驾驶员:
他知道如何启动汽车,如何改变汽车的档位,但是他不知道汽车的启动过程和汽车的换档过程。

3)抽象的优点很少:

  1. 安全性:外部人员不了解我们可以用来实现安全性的内部实施细节。

  2. 增强功能:在不影响外部人员(最终用户)的情况下,我们可以根据需要更改内部实施细节,因此增强功能很容易。

2)用Java封装

1) 封装是一种面向对象的编程概念,也在Java中引入。

2)将数据及其相应的方法包装到一个单元中(换句话说,将数据及其相应的方法绑定到一个单元中的过程)。

示例

class GetAccountDetails{
	private double balance;

	public double getBalance(){
		return balance;
	}
	
	public void setBalance(double bal){
		balance = bal;
	}
}

class AccountDetails{
	public static void main(String[] args){
		GetAccountDetails GAD = new GetAccountDetails();
		GAD.setBalance(10000.000);
		double balance = GAD.getBalance();
		System.out.println(balance);
	}
}

在这里,GetAccountDetails是一个单位,其中balance是数据成员,getBalance()而setBalance是方法或成员函数。

3)封装的优点很少:

  1. 我们可以实现安全性。

  2. 增强功能很忙。

  3. 它提高了应用程序的可维护性。

4)封装的缺点是由于安全方面的级别检查而导致执行速度变慢,因此性能下降。