当前位置: 首页 > 知识库问答 >
问题:

封装=数据隐藏抽象?[重复]

叶茂
2023-03-14

根据Geeksforgeks的说法。java封装中的组织/封装=数据隐藏抽象?如果是,那么我可以看到数据隐藏,但抽象在哪里?

有些人将此作为封装的示例

class Person
{
    
    private String name;
    private int age;
    

    public void setName(String name){
        this.name = name;
    }
    
    public String getName(){
        return this.name;
    }
    
    public void setAge(int age){
        this.age = age;
    }
    
    public int getAge(){
        return this.age;
    }
}

有些人说这不是一个封装的例子。参考:https://www.youtube.com/watch?v=tjyZWqJkNpc(在这个视频中教学的人在java上真的很好,很难相信他会错)

那么什么是真正的封装呢?

  1. 数据隐藏抽象
  2. 将变量和方法分组到单个单元中

哪个定义是正确的?

(只有在你知道的情况下才回答,忽略这些问题和标签,因为我是stackoverflow的新手,我不知道你如何提问的规则。我只是想澄清我的疑问)

共有1个答案

尹钱青
2023-03-14

封装可以用于这两种目的。在java中,封装是通过类实现的,类提供了私有、公共等权限改造。当人们编码他们的类时,每个程序员都可以设置访问权限,以防止其他类对象的不当使用。这样,数据隐藏就可用了。类用户不必知道甚至对他们关闭的细节。对封装信息(类的成员、其他私有方法等)的访问是有限的,这使得程序员只能专注于他们应该做的事情,不管实现有多复杂。所以在我看来,封装可以说是包括抽象的概念。

 类似资料:
  • 我浏览了很多帖子,但没有抓住要点。 我们能不能说:抽象=封装数据隐藏 或者不止这些!! 谢谢

  • 有些人将抽象定义为: 抽象是通过在基本功能上提供一个层来隐藏实现细节。 对对象的用户隐藏实现细节不是封装的一部分吗? 假设动物类有函数ate(),那么给对象的用户提供这个接口是封装还是抽象?或者提供函数名使用是抽象,方法实现部分的隐藏是封装。 我真的很困惑,因为在很多地方它是抽象的,很多人说实现细节隐藏是封装? 在这个问题中,答案是: 抽象=外部对象;封装(通过信息隐藏实现)=对象内部。 那么,这

  • 类通常对类的客户隐藏其实现细节,即所谓的信息隐藏。下列以堆栈数据结构作为信息隐藏的例子。 可以把堆栈看成一堆盘子。将盘子放在堆中时,总是放在顶部(压入堆栈),从堆中取下盘子时,总是从顶上取(称为弹出堆栈)。堆栈是后进先出(last-in,first-out;LIFO)的数据结构,最后放进堆栈的项目最先从堆栈中取出。 程序员可以生成堆栈类,对客户隐藏实现细节。堆栈可以方便地用数组实现(或用第15章“

  • 问题内容: 封装和信息隐藏之间到底有什么区别? 好吧,我知道将字段设为私有,然后将字段的setter和getter设为封装。但是封装只是这个意思吗? 假设我有一个如下所述的课程。 现在,类IsThisEncapsulation是封装的示例吗? 现在将上述类中的“年龄”字段设为私有可以实现信息隐藏吗? 您能给我清楚的例子,以帮助我清楚地区分这些概念吗? 问题答案: 好吧,我知道将字段设为私有,然后将

  • Truffle provides contract abstractions for interacting with your contracts. Skip ahead to the api section for a list of contract methods. 使用方法 To obtain a contract abstraction you can require it with

  • 我今天有个面试。我有一个来自OOP的问题,关于封装之间的区别 我告诉她,封装基本上是绑定数据成员 在提出这个问题之前,我阅读了StackOverFlow上的其他线程,了解这两个OOPs概念之间的区别。但我发现自己无法说服面试官。 有人能举个最简单的例子来证明吗?