• java面向对象入门(1)-入门介绍


    在本 Java OOPs 概念教程中,我们将学习四种主要的面向对象原则 -- 抽象、封装、继承和多态性。它们也被称为面向对象编程范式的四大支柱。

    1. _抽象_是在不考虑无关细节的情况下公开实体基本细节的过程,以降低用户的复杂性。
    2. _封装_是将数据和对数据的操作捆绑到一个实体中的过程。
    3. _继承_用于从现有类型派生新类型,从而建立父子关系。
    4. _多态_使一个实体在不同的上下文中具有不同的含义。

    1.抽象

    将 OOP中的抽象与实时示例相关联时,它很容易理解。例如,当您开车时,您不必担心汽车的内部实际工作情况。您所关心的是通过方向盘,制动踏板,油门踏板等接口与汽车交互。在这里,您对汽车的了解是抽象的。
    在计算机科学中,抽象是一个过程,通过该过程定义数据和程序的形式类似于其含义(语义),同时隐藏实现细节。
    用更简单的术语来说,抽象是隐藏与上下文无关或仅显示相关信息的信息,并通过将其与现实世界中的相似内容进行比较来简化信息。

    通常,可以通过两种方式查看抽象:

    1.1数据抽象

    数据抽象是从多个较小的数据类型中创建复杂的数据类型的方法,该类型更接近于现实生活中的实体。例如,Employee类可以是具有各种小型关联的复杂对象。

    public class Employee 
    {
        private Department department;
        private Address address;
        private Education education;
        //So on...
    }
    

    因此,如果您想获取员工的信息,则要从Employee对象那里询问信息-就像您在现实生活中一样,请询问员工本身。

    1.2控制抽象

    通过将复杂任务的动作序列隐藏在一个简单的方法调用中,可以实现控制抽象,因此可以从客户端隐藏执行任务的逻辑,并且将来可以更改该逻辑而不会影响客户端代码。

    public class EmployeeManager
    {
        public Address getPrefferedAddress(Employee e)
        {
            //Get all addresses from database 
            //Apply logic to determine which address is preferred
            //Return address
        }
    }
    

    在上面的示例中,明天如果您要更改逻辑以使每次本地地址始终是首选地址,则将更改getPrefferedAddress()方法内部的逻辑,并且客户端将不受影响。

    2.封装

    将类中的数据和方法与实现隐藏(通过访问控制)结合起来通常称为OOP中的封装。结果是具有特征和行为的数据类型。封装本质上既有信息隐藏又有实现隐藏。

    无论变化如何,将其封装 ” –著名的设计原则


    信息隐藏**是通过使用访问控制修饰符(公共,私有,受保护的)implementation hiding来完成的,并且是通过为类创建接口来实现的。

    实现隐藏使设计人员可以自由修改对象如何履行职责。这在设计(甚至需求)可能发生变化的点上特别有价值。
    让我们以一个例子来使它更清楚。

    2.1信息隐藏

    class InformationHiding 
    {
        //Restrict direct access to inward data
        private ArrayList items = new ArrayList();
     
        //Provide a way to access data - internal logic can safely be changed in future
        public ArrayList getItems(){
            return items;
        }
    }
    

    2.2实现隐藏

    interface ImplemenatationHiding {
        Integer sumAllItems(ArrayList items);
    }
    class InformationHiding implements ImplemenatationHiding
    {
        //Restrict direct access to inward data
        private ArrayList items = new ArrayList();
     
        //Provide a way to access data - internal logic can safely be changed in future
        public ArrayList getItems(){
            return items;
        }
     
        public Integer sumAllItems(ArrayList items) {
            //Here you may do N number of things in any sequence
            //Which you do not want your clients to know
            //You can change the sequence or even whole logic
            //without affecting the client
        }
    }
    

    3.继承

    继承是面向对象编程中的另一个重要概念。Java中的继承是一种机制,通过该机制,一个对象可以获取父对象的属性和行为。本质上是在类之间创建父子关系。在Java中,您将主要使用继承来实现代码的可重用性和可维护性。

    关键字“ extends”用于继承java中的类extends关键字表示您正在制作一个从现有类派生的新类。在Java术语中,被继承的类称为类。新类称为子类

    子类从其超类继承所有非私有成员(字段,方法和嵌套类)。构造函数不是成员,因此它们不会被子类继承,但是可以从子类调用超类的构造函数。

    例如

    class Employee 
    {
        private Department department;
        private Address address;
        private Education education;
        //So on...
    }
    class Manager extends Employee {
        private List<Employee> reportees;
    }
    

    在上面的示例中,ManagerEmployee部门的专门版本,可以重复使用部门,地址和来自Employee班级的教育,以及定义其自己的报告人列表。

    4.多态性

    多态是一种能力,通过这种能力,我们可以创建在不同程序环境中表现不同的函数或引用变量。
    在Java语言中,多态本质上被认为是两个版本:

    • 编译时多态(静态绑定或方法重载
    • 运行时多态(动态绑定或方法覆盖

    上面是四个Java OOP概念,我建议您对其中的每个概念都有很好的了解。
    学习愉快!
    更多精彩请关注

  • 相关阅读:
    openldap
    Java实现 洛谷 P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He…
    Java实现 洛谷 P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He…
    Java实现 洛谷 P2141 珠心算测验
    Java实现 洛谷 P2141 珠心算测验
    Java实现 洛谷 P2141 珠心算测验
    Java实现 洛谷 P2141 珠心算测验
    Java实现 洛谷 P2141 珠心算测验
    Java实现 洛谷 P1567 统计天数
    Java实现 洛谷 P1567 统计天数
  • 原文地址:https://www.cnblogs.com/qingmiaokeji/p/12354430.html
Copyright © 2020-2023  润新知