使用真实世界场景理解 OOP 和抽象
面向对象编程:顾名思义,面向对象编程或 OOP 是指在编程中使用对象的语言。面向对象编程旨在在编程中实现继承、隐藏、多态等现实世界的实体。在本文中,我们将讨论这个 OOP 的概念是如何在现实世界场景中实现的。
让我们考虑一个想要在线学习Java完整课程的 Geek 示例。他选择了其中一个资源来了解提供Java课程的各种平台。假设他选择 Google 并搜索课程。一旦 Google 接受请求,它将执行各种操作来执行请求,直到请求得到处理。下图演示了执行的步骤:
下面是演示类的实现,它演示了上图中提到的步骤:
// Java Program to demonstrate
// the above steps
// Here, Geek is a class
class Geek {
// Until no request the
// value will be false
boolean value = false;
private String request = "";
// Constructor of Geek
Geek(String request)
{
// The value becomes true
// once the constructor called
// or when the object created
value = true;
this.request = request;
System.out.println(
"Geek Requested: "
+ request);
}
public String getRequest()
{
return this.request;
}
}
// A google class
class Google {
private String request;
// Constructor of Google
Google(String request)
{
this.request = request;
System.out.println(
"Google Searched: "
+ request);
}
// This class may also contains methods
// through which the request passes
// messages to further more objects
// and also send back a response
}
// Demo class to understand
// A way of using abstraction
public class MainDemo2 {
// Driver code
public static void main(String[] args)
{
// Geek class object creation
Geek g = new Geek("Java");
// Checking whether Geek
// has requested or not
if (g.value) {
// If the Geek requested
// Google object created
Google gl = new Google(g.getRequest());
// Google performs some action
// To satisfy the Geek with his
// Desired result
}
}
}
输出:
Geek Requested: Java
Google Searched: Java
上述程序的示意图:
从上面的例子中,让我们了解面向对象设计中使用的不同术语:
- 代理和社区:
- 代理:社区中的每个对象都充当了上述示例中的代理(即),我们可以说 Geek、Google 和其他额外的对象都被称为代理。每个代理都会执行一些操作,并且社区的其他成员正在利用这些操作来解决问题。
- 社区:它是由行动创造的。在上面的例子中,我们可以说搜索引擎社区已经形成。
因此,在上面的例子中:
Agents: Geek, Google, and other objects Community: Search engine community
- 消息和方法:
- 消息:每条消息都可能是传递给社区其他成员的请求或响应。
- 方法每个方法都用于在社区中执行一个动作,该动作将被社区的其他成员用来解决各种问题。
- 职责:从上面的示例中,我们可以观察到,一旦 Geek 将请求传递给 Google,它就会接受该请求并执行各种操作以向他提供所需的结果。这意味着如果代理接受请求,代理有责任执行请求,直到问题解决。
最后,我们可以得出结论,我们已经实现了数据或抽象的隐藏,通过这样的方式实现系统,当 Geek 通过请求时,Google 执行的操作对他隐藏以获得所需的结果。