封装和抽象的区别?(java)

来源:百度知道 编辑:UC知道 时间:2024/06/04 10:24:04
好想感觉差不多,说不出他们有什么不同,哪位高手帮解决一下。
两个都是显示必要信息,隐藏次要的信息

kcl13 意思说到了,但是表述的不准确。

我的理解如下,希望对你有帮助。

首先,你说他们之间没有什么不同? 其实,他两一点关系也没有啊,怎么会相同呢。

抽象比较好了解,就是忽略与主题或者目的无关的东西,剥离出只需要的东西。比方说 kcl13 给出的代码,他给出的那只狗,有一个吃的方法和一个咬的方法,但是现实中的狗还有一系列其他的方法,但是对于你的目的来说,你只需要关注吃和咬就可以了,所以你把吃和咬的方法给“抽象”了出来,抽象分为2种,一种是过程抽象,一种是数据抽象(这是一种说法),数据抽象和过程抽象分别是什么,你应该能分清楚。

而,关于封装 kcl13 就说的太片面了,封装是把数据和方法给包围起来,面向对象的语言,比如java,所有的代码都是由类来构成的,那么什么是类,类不就是把方法和属性给“包围”起来的一个东西吗! 另外,封装也可以这么理解,用户不需要去了解具体实现,就能够使用功能,比如,你用java做了一个计算器,用户只要一按按钮就能计算,那个按钮就相当于一个接口,他通过这个接口来使用计算这个功能,他不需要知道你这个计算器是如何实现的,为什么?因为你把具体实现给“封装”起来了! 提供给用户的是一个接口!

封装是封装,抽象是抽象

抽象,是把许多类,的共同特性的提取出来。
封装,是把只需在本地类中使用的变量或方法变为私有,拒绝他人访问。

抽象,现实中的所以东西都可以抽象成java中的类,人类,兽类,鸟类
比如说一只狗你设计时会把它抽象成一个
Class Dog
{
private weight;
private length;
private color;
public void eat()
{
吃的代码

}
public void bite()
{
咬的代码
}
public void wang()
{
Sysetm.out.println("wangwang");