我参加了一个 java 程序员的面试,在问了几个个人问题之后,面试官问了我“什么是封装和抽象”这个问题,我对这个问题很满意,我的回答是隐藏了实现细节用户不需要知道。抽象只是向用户展示重要的细节。在我回答后几秒钟,面试官又问了我一个问题。只向用户展示重要的细节,这意味着向用户隐藏不相关的数据,如实现细节。是吗?
我已经回答了!!!
还有一个问题来自。那么abstraction和encapsolution有什么区别。我认为根据你的回答没有区别。
我就像我不知道,我的手被冻住了,对我来说真是糟糕的一天
谁能解释一下如果有人问你这样的问题你会怎么回答
封装通俗地说就是覆盖(encapsulating)。
就 Java 而言,这意味着将您的代码编写在一起并仅公开其中打算公开的部分。但它通常与数据隐藏相关联。例如,当您将实例方法/函数定义为私有(private)时,只能从同一个类访问它。这样你就不会直接公开你的实例变量/函数。为什么?因为用户与它无关。
用外行人的话说,抽象是一个用来隐藏其背后复杂性的概念。以计算机为例。它们是处理器的抽象,处理器进行实际计算,而芯片又涉及门。对于普通人来说,很难用使用的门来说话。所以这个概念已经被抽象到计算机。
关于 Java 抽象意味着对用户隐藏实现细节。这包括使类抽象或定义接口(interface)。所有用户都接触到界面(一组函数或 API)。他不需要知道它的内部实现。他只需要知道他必须提供什么输入(参数)以及什么是相应的输出(返回类型)。
为了更好地理解 Java 示例,请参阅 this问题。