Java 面向对象和封装全面梳理总结

yizhihongxing

Java 面向对象和封装全面梳理总结

什么是面向对象编程?

面向对象编程(Object-Oriented Programming,简称OOP)是一种程序设计范式,它将“对象”作为程序的基本单元,通过对象之间的交互来实现程序的功能。在OOP中,每个对象都具有数据(属性)和行为(方法),对象通过调用方法来执行某些操作,并可以修改自身的状态。

OOP的核心思想是把现实世界中的事物抽象成程序中的对象,这样就可以更加自然地设计程序,减少程序出错的可能性,加快程序的开发速度。

Java 中的面向对象编程

Java是一门强类型、面向对象的编程语言,它严格遵循OOP的思想,可以说Java的全部特性都与面向对象编程有着密切的联系。

Java中的每个对象都必须是一个类的实例,类是对象共享状态和行为的集合,Java中的类包含数据(成员变量)和方法(成员方法)。可以通过创建类的实例来访问它的数据和方法。

Java中还有一个重要的概念是继承(Inheritance),它允许类继承其他类的属性和方法,从而可以节省代码并实现代码复用。

除了继承,Java中还有另一个重要的概念是多态(Polymorphism),它允许不同对象对同一消息作出不同的响应。多态是通过方法重载(Overloading)和方法重写(Overriding)实现的。

什么是封装?

封装是面向对象编程的一种基本特性,它指的是将数据和方法包装在一个单元中,并对外部隐藏实现细节,只公开一些必要的接口,从而提高代码的可维护性和重用性。

在Java中,封装是通过访问权限修饰符实现的。Java中有4种访问权限修饰符,它们分别是:

  • public:公共的,可以被任何类访问。
  • protected:受保护的,可以被子类和同一包中的类访问。
  • default(没有修饰符):默认的,可以被同一包中的类访问。
  • private:私有的,只能被本类中的方法访问。

我们可以根据数据和方法的访问权限将其划分为不同的层次,以保证代码的安全性和简洁性。

示例说明

示例一:封装的实现

public class Person {
    private String name;
    private int age;

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }
}

public class Test {
    public static void main(String[] args) {
        Person p = new Person();
        p.setName("Tom");
        p.setAge(18);
        System.out.println(p.getName() + " " + p.getAge());
    }
}

在这个例子中,我们定义了一个Person类,它有两个私有的成员变量nameage,以及四个公有的成员方法setNamegetNamesetAgegetAge。我们可以通过公有的成员方法来访问和修改成员变量,从而实现了数据的封装。

Test类中,我们创建了一个Person对象p,并使用setNamesetAge方法来设置成员变量的值,然后使用getNamegetAge方法来获取成员变量的值,最终输出结果为Tom 18

示例二:继承的实现

public class Animal {
    private String name;

    public Animal(String name) {
        this.name = name;
    }

    public void shout() {
        System.out.println("Animal is shouting!");
    }
}

public class Dog extends Animal {
    public Dog(String name) {
        super(name);
    }

    public void shout() {
        System.out.println("Dog is shouting!");
    }
}

public class Test {
    public static void main(String[] args) {
        Animal a = new Animal("Animal");
        a.shout();

        Dog d = new Dog("Dog");
        d.shout();
    }
}

在这个例子中,我们定义了一个Animal类,它有一个私有的成员变量name和一个公有的成员方法shoutshout方法输出了Animal is shouting!。接着我们定义了一个Dog类,它继承自Animal类,并重写了shout方法,shout方法输出了Dog is shouting!

Test类中,我们分别创建了一个Animal对象a和一个Dog对象d,并调用它们的shout方法。由于Dog继承自Animal,所以它可以调用Animal类中的方法,但由于它重写了shout方法,所以它会输出Dog is shouting!。最终输出结果为:

Animal is shouting!
Dog is shouting!

这就是多态的实现方式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 面向对象和封装全面梳理总结 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • JavaSpringBoot报错“TransactionSystemException”的原因和处理方法

    当使用Java的Spring Boot框架时,可能会遇到“TransactionSystemException”错误。这个错误通常是由以下原因之一引起的: 事务管理器配置错误:如果事务管理器配置错误,则可能会出现此错误。在这种情况下,需要检查事务管理器的配置并进行必要的更改。 事务注解使用错误:如果事务注解使用错误,则可能会出现此错误。在这种情况下,需要检查…

    Java 2023年5月5日
    00
  • Java基础之switch分支结构详解

    Java基础之switch分支结构详解 在Java中,switch分支结构是一种多分支的逻辑结构。相比于if-else语句,它对于多个分支的情况更加简洁易读,是Java程序设计中常用的结构之一。 switch语句的基本格式 switch语句的基本格式如下: switch (expression) { case value1: // case1 code br…

    Java 2023年5月26日
    00
  • Spring Boot 2.0快速构建服务组件全步骤

    Spring Boot是一个流行的Java框架,可以帮助开发人员更加高效地构建和部署应用程序。在本文中,我们将详细讲解如何使用Spring Boot 2.0快速构建服务组件的全步骤,并提供两个示例来演示如何使用Spring Boot 2.0构建服务组件。 Spring Boot 2.0快速构建服务组件全步骤 以下是使用Spring Boot 2.0快速构建服…

    Java 2023年5月15日
    00
  • JSP代码实现 金字塔(倒置)示例

    下面我将为你详细讲解“JSP代码实现金字塔(倒置)示例”的完整攻略。 1. 编写 JSP 页面 我们首先需要编写一个 JSP 页面来实现金字塔倒置的功能。在 JSP 页面中,我们需要使用嵌入式 Java 代码来实现金字塔倒置的逻辑。以下是一个示例的 JSP 页面: <%@ page language="java" contentTy…

    Java 2023年6月15日
    00
  • Java简单实现调用命令行并获取执行结果示例

    首先我们需要了解Java如何调用命令行来执行外部的命令。在Java中,可以通过ProcessBuilder或Runtime.getRuntime().exec()两种方式实现。 使用ProcessBuilder调用命令行 ProcessBuilder是一个Java API,它提供了一个类来启动外部进程并与其进行交互。下面是一个简单的Java程序,它使用Pro…

    Java 2023年5月23日
    00
  • Java 实战项目之在线点餐系统的实现流程

    Java 实战项目之在线点餐系统的实现流程 在实现一个在线点餐系统时,需要考虑到多个方面的因素,涉及到技术栈、数据结构、算法等知识。本文将为大家详细讲解,如何实现一个完整的在线点餐系统。 目标 在线点餐系统需要实现的功能包括:用户注册、用户登录、浏览菜单、添加菜品到购物车、下订单、支付订单等。 实现步骤 步骤一:设计数据库 一个完整的系统,需先设计好数据库。…

    Java 2023年5月19日
    00
  • javaScript 连接打印机,打印小票的实例

    要实现 JavaScript 连接打印机,打印小票的功能,可以借助 JavaScript 打印插件JSPrintManager。 JSPrintManager 是一个完全跨平台和打印技术无关的 JavaScript 打印客户端(打印机驱动程序),可通过扩展 Web 端点管理打印机及其设置,生成和打印 ZPL、EPL、ESC/POS、HTML、PDF、PNG、…

    Java 2023年6月15日
    00
  • SpringBoot+MySQL+Jpa实现对数据库的增删改查和分页详解

    前置知识: 在学习本篇攻略之前,需要熟悉如下知识: SpringBoot: 一款基于Spring框架的快速开发脚手架工具,可以快速创建Spring应用 MySQL: 一款流行的关系型数据库 JPA: Java持久化API,是一套标准的ORM框架 步骤: 1.配置MySQL数据库 首先需要进行mysql数据库的安装和配置。这里不再赘述,建议在官网上进行下载和安…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部