根据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上真的很好,很难相信他会错)
那么什么是真正的封装呢?
哪个定义是正确的?
(只有在你知道的情况下才回答,忽略这些问题和标签,因为我是stackoverflow的新手,我不知道你如何提问的规则。我只是想澄清我的疑问)
封装可以用于这两种目的。在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概念之间的区别。但我发现自己无法说服面试官。 有人能举个最简单的例子来证明吗?