Java 中的 OOPS 概念 - OOPS 概念示例

对象导向编程概念对于编程来说非常重要,没有对OOPS概念的了解,你就无法在对象导向编程模型中设计系统。

什么是面向对象的编程模型?

面向对象的编程模型围绕着对象的概念旋转。 什么是对象? 对象是一个类的实例。 它包含属性和功能。 它们就像真实世界的对象。 例如,你的车、房子、笔记本电脑等都是对象。 它们有某些特定的属性和方法来执行某些操作。 ** 什么是类?** 类定义了对象的蓝图。 它们定义了对象的属性和功能性。

OOPS 概念

oops concepts, object oriented programming concepts, oops concepts in java Core OOPS concepts are:

  1. 抽象
  2. 包装
  3. 多样性
  4. 继承
  5. 协会
  6. 聚合
  7. 组成

我们将使用Java编程语言为代码示例,以便您知道如何在Java中实施OOPS概念。

1、抽象

抽象是隐藏内部细节并用简单的术语描述事物的概念,例如,一种添加两个整数的方法。该方法的内部处理是隐藏于外部世界的。在面向对象的编程中,有许多方法可以实现抽象,如封装和继承。一个Java程序也是抽象的一个很好的例子。

进一步阅读: 什么是OOPS中的抽象化?

二、封锁

Encapsulation是用来实现对象导向编程中的抽象技术,用于限制类成员和方法的访问。 Access modifier关键字用于对象导向编程中的封装。

二、多元化

Polymorphism 是物体在不同情况下行为不同的概念,有两种类型的多样性 - 编译时间多样性和运行时间多样性。 编译时间多样性是通过 [方法过载]( / 社区 / 教程 / 方法过载-in-java)实现的。

 1public class Circle {
 2
 3    public void draw(){
 4    	System.out.println("Drwaing circle with default color Black and diameter 1 cm.");
 5    }
 6    
 7    public void draw(int diameter){
 8    	System.out.println("Drwaing circle with default color Black and diameter"+diameter+" cm.");
 9    }
10    
11    public void draw(int diameter, String color){
12    	System.out.println("Drwaing circle with color"+color+" and diameter"+diameter+" cm.");
13    }
14}

在这里,我们有多个绘图方法,但它们有不同的行为。这是一个方法过载的案例,因为所有方法的名称是相同的,而论点是不同的。在这里,编译器将能够识别在编译时间上调用的方法,因此它被称为编译时间多样性。当我们有对象之间的IS-A关系时,运行时间多样性被实施。这也被称为代替方法,因为子类必须取代运行时间多样性的超级类方法。如果我们在超级类方面工作,实际的实施类将在运行时决定。编译器无法决定将被调用到哪个类的方法。这个决定是在运行时做,因此这个名字被称为运行时间多样性或动态调用方法。

1package com.journaldev.test;
2
3public interface Shape {
4
5    public void draw();
6}
 1package com.journaldev.test;
 2
 3public class Circle implements Shape{
 4
 5    @Override
 6    public void draw(){
 7    	System.out.println("Drwaing circle");
 8    }
 9
10}
 1package com.journaldev.test;
 2
 3public class Square implements Shape {
 4
 5    @Override
 6    public void draw() {
 7    	System.out.println("Drawing Square");
 8    }
 9
10}

形状是超级类,有两个子类圆形方块

1Shape sh = new Circle();
2sh.draw();
3
4Shape sh1 = getShape(); //some third party logic to determine shape
5sh1.draw();

在上述示例中,java 编译器不知道在运行时使用的 Shape 的实际实现类,因此运行时的多样性。

四、继承

Inheritance是面向对象的编程概念,其中一个对象是基于另一个对象的。 继承是代码重复使用的机制。 被继承的对象被称为超级类,继承超级类的对象被称为子类。

 1package com.journaldev.java.examples1;
 2
 3class SuperClassA {
 4
 5    public void foo(){
 6    	System.out.println("SuperClassA");
 7    }
 8    
 9}
10
11class SubClassB extends SuperClassA{
12    	
13    public void bar(){
14    	System.out.println("SubClassB");
15    }
16    
17}
18
19public class Test {
20    public static void main(String args[]){
21    	SubClassB a = new SubClassB();
22    	
23    	a.foo();
24    	a.bar();
25    }
26}

5、协会

协会是OOPS概念,用来定义对象之间的关系。 协会定义对象之间的多样性,例如教师和学生对象。 教师与学生之间存在一对多的关系。 同样,学生可以与教师对象有一对多的关系,但学生和教师对象都是相互独立的。

合并

聚合是一种特殊的关联类型,在聚合中,对象有自己的生命周期,但有所有权。

6、组成

组合是组合的一个特殊情况,组合是组合的一种更具限制性的形式,当HAS-A关系中包含的对象不能单独存在时,那么它是一种组合的情况,例如,房子有一个房间,这里没有房间,房间就不能存在。 组合被称为比继承更好,阅读更多在 组合与继承

进一步阅读: [Java作文]( / 社区 / 教程 / composition-in-java - 例子)

这就是关于OOPS概念的快速回顾。

您可以从我们的 GitHub 存储库浏览更多 Java 示例程序。

参照: https://docs.oracle.com/javase/tutorial/java/concepts/

Published At
Categories with 技术
Tagged with
comments powered by Disqus