Java十分钟精通类 封装 继承

Java 十分钟精通类 封装 继承

Java 是面向对象编程语言,其中类、封装和继承是 OOP 的核心概念。在本文中,我们将介绍如何使用 Java 快速掌握这些概念。

在 Java 中,类是一种用于描述对象的结构。通过类定义,我们可以定义一个对象的属性和行为,从而为对象提供一个有意义的结构。Java 中的类定义如下:

public class ClassName {
    // 声明属性
    private int num;
    private String name;

    // 构造函数
    public ClassName(int num, String name) {
        this.num = num;
        this.name = name;
    }

    // 声明方法
    public void sayHello() {
        System.out.println("Hello, I am " + num + " " + name + "!");
    }
}

在这个示例中,我们定义了一个名为 ClassName 的类。该类有两个属性,分别是 numname,以及一个构造函数和一个方法。在构造函数中,我们为对象的属性赋初值。在 sayHello 方法中,我们通过访问对象的属性来打印输出一条消息。

示例 1:使用类生成对象和调用方法

ClassName obj = new ClassName(1, "Alice");
obj.sayHello();

在这个示例中,我们创建了一个名为 obj 的对象,并且调用了 sayHello 方法。在输出中,我们将会看到一条包含 1Alice 的消息。

封装

封装是指保护代码和数据不被外部访问到。在 Java 中,我们可以对类中的属性和方法设置访问权限,以控制哪些代码可以访问它们。

Java 中的访问权限主要有四种:public、protected、default 和 private。其中 public 表示该属性或方法可以被所有类的代码访问到,而 private 表示只有当前类的代码可以访问到。其他两种访问权限则位于这两个之间。

示例 2:使用封装保护属性

public class Student {
    // 声明属性
    private int id;
    private String name;
    private int age;

    // 构造函数
    public Student(int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    // 声明方法
    public void display() {
        System.out.println("ID:" + id + " Name:" + name + " Age:" + age);
    }
}

在这个示例中,我们定义了一个名为 Student 的类,并将 idnameage 属性设置为 private。这样就保护了这些属性,禁止了其他类的代码直接访问。同时,我们还定义了一个 display 方法,通过这个方法来访问这些属性。

示例 3:调用保护的属性

Student student = new Student(1, "Alice", 18);
student.display();

在这个示例中,我们创建了一个名为 student 的对象,并调用了 display 方法。在输出中,我们将会看到一条包含 1Alice18 的消息。

继承

继承是指一个类可以从另一个类中继承属性和方法。被继承的类被称为父类,继承这些属性和方法的类被称为子类。在 Java 中,我们可以使用关键字 extends 来实现继承。

示例 4:使用继承创建子类

public class Teacher extends Student {
    // 声明属性
    private String subject;

    // 构造函数
    public Teacher(int id, String name, int age, String subject) {
        super(id, name, age); // 调用父类的构造函数
        this.subject = subject;
    }

    // 声明方法
    public void display() {
        super.display(); // 调用父类的 display() 方法
        System.out.println("Subject:" + subject);
    }
}

在这个示例中,我们定义了一个名为 Teacher 的子类,并通过关键字 extends 来继承了 Student。在构造函数中,我们调用了父类的构造函数,并为 subject 属性赋初值。在 display 方法中,我们调用了父类的 display 方法,并在之后输出了 subject 的值。

示例 5:使用子类

Teacher teacher = new Teacher(2, "Bob", 28, "Math");
teacher.display();

在这个示例中,我们创建了一个名为 teacher 的对象,并输出了这个对象的信息。在输出中,我们将会看到一个包含 2Bob28Math 的消息,这些信息是继承自 Student 的。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java十分钟精通类 封装 继承 - Python技术站

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

相关文章

  • IDEA2022创建Maven Web项目教程(图文)

    以下是“IDEA2022创建Maven Web项目教程(图文)”的完整攻略: IDEA2022创建Maven Web项目教程(图文) 在开始之前,请确保你已经安装了Maven和IntelliJ IDEA 2022。 步骤一:创建Maven Web项目 打开IntelliJ IDEA,点击“File”菜单,选择“New” – “Project ”。 在弹出的窗…

    Java 2023年6月2日
    00
  • SpringBoot热部署设置方法详解

    Spring Boot是一个非常流行的Java Web框架,它提供了许多方便的功能,如自动配置、快速开发和易于部署。在开发过程中,我们经常需要修改代码并重新部署应用程序。为了提高开发效率,我们可以使用Spring Boot的热部署功能,它可以在不重启应用程序的情况下自动加载修改后的代码。本文将详细介绍如何设置Spring Boot的热部署,并提供两个示例。 …

    Java 2023年5月15日
    00
  • mybatis之增删改查

    下面是关于 MyBatis 的增删改查操作的完整攻略。 简介 MyBatis 是一种优秀的持久层框架,它封装了 JDBC 操作的细节,并提供了方便的 SQL 映射配置方法,使得开发者可以使用面向对象的方式进行 SQL 操作。 在 MyBatis 中,增删改查操作是非常常见的操作。本文将通过两个示例分别讲解如何使用 MyBatis 实现增删改查操作。 示例1:…

    Java 2023年5月20日
    00
  • 在Centos上搭建Maven中央仓库的方法

    下面是在Centos上搭建Maven中央仓库的方法的完整攻略。 步骤一:安装Java 在Centos上搭建Maven中央仓库需要先安装Java。可以通过以下命令安装Java: sudo yum update sudo yum install java-devel 安装完成后,可以通过以下命令检查Java是否安装成功: java -version 步骤二:安装…

    Java 2023年5月19日
    00
  • JAVA基础之控制台输入输出的实例代码

    JAVA基础之控制台输入输出的实例代码 本文将介绍JAVA语言中,如何利用控制台进行输入输出操作。首先需要理解Java标准I/O流的概念,Java的I/O流分为两种:字节流和字符流。字节流以字节为单位进行操作,字符流以字符为单位进行操作。在控制台输入输出中,一般使用字符流,使用InputStreamReader和OutputStreamWriter将字节流转…

    Java 2023年5月30日
    00
  • 深度思考JDK8中日期类型该如何使用详解

    深度思考JDK8中日期类型该如何使用详解 JDK8引入了新的日期和时间API,旨在取代原先的Date和Calendar类。新的API提供了更好的易用性和可读性,同时也更加严格和健壮。在使用时间和日期时,应该尽量使用新的API。 LocalDate LocalDate是新API中表示日期的主要类。它是一个不可变的类,用于表示ISO-8601日历系统中的日期(年…

    Java 2023年5月20日
    00
  • 避免sql注入_动力节点Java学院整理

    接下来我将详细讲解“避免SQL注入_动力节点Java学院整理”的完整攻略。 SQL注入是什么 SQL注入攻击是指攻击者在提交应用程序的输入值时,嵌入执行恶意的SQL语句,从而诱发数据库执行非预期的恶意操作。SQL注入是目前web程序中比较常见的漏洞种类之一,它是由于软件开发人员在编写应用程序或Web页面时,没有对用户输入的数据进行充分的检查,致使攻击者可以攻…

    Java 2023年5月27日
    00
  • Nginx+Tomcat实现负载均衡、动静分离的原理解析

    下面我会针对Nginx+Tomcat实现负载均衡、动静分离的原理进行一些详细的讲解,同时会提供两个实例。 负载均衡原理解析 负载均衡是一种将网络请求分配到多个服务器上,并通过算法确保均衡分配的技术。常见的负载均衡算法分为以下几种: 轮询算法:按顺序轮流分配请求给服务器,均衡地将请求分配给每个服务器。 随机算法:随机从服务器列表中选取一台服务器来处理请求。 I…

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