简单了解JAVA构造方法

简单了解JAVA构造方法

什么是构造方法

Java中每个类都有构造方法,构造方法是用来初始化对象的方法,即在使用new操作符创建对象时调用的一种特殊方法。构造方法与类名相同,无需返回类型,且不能被重载。

构造方法的特点

  1. 构造方法名要与类名相同,且区分大小写;
  2. 构造方法没有返回值类型;
  3. 构造方法没有具体的返回值,但需要使用return语句结束构造方法;
  4. 构造方法可以被重载,即有多个构造方法。

构造方法的格式

[public/private] 类名(参数列表) {
    // 构造方法体
}

构造方法的调用

构造方法在使用new关键字创建对象时自动被调用,不需要显式调用。

构造方法示例1

下面是一个简单的Person类,包含有姓名、年龄以及住址等属性:

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

    public Person() {
        System.out.println("调用Person类的无参构造方法");
    }

    public Person(String name, int age, String address) {
        System.out.println("调用Person类的有参构造方法");
        this.name = name;
        this.age = age;
        this.address = address;
    }

    public void printInfo() {
        System.out.println("姓名:" + this.name + ",年龄:" + this.age + ",住址:" + this.address);
    }
}

其中,Person类定义了两个构造方法:无参构造方法和有参构造方法。无参构造方法用于创建一个空的Person对象,有参构造方法用于创建一个具有姓名、年龄和地址信息的Person对象。

我们可以通过下面的代码来创建两个不同的Person对象并调用printInfo方法输出其信息:

public class Main {
    public static void main(String[] args) {
        Person p1 = new Person();
        p1.printInfo();

        Person p2 = new Person("张三", 18, "北京市朝阳区");
        p2.printInfo();
    }
}

输出结果如下:

调用Person类的无参构造方法
姓名:null,年龄:0,住址:null
调用Person类的有参构造方法
姓名:张三,年龄:18,住址:北京市朝阳区

构造方法示例2

下面是一个更复杂一点的示例,演示了一个银行账户类的实现:

public class Account {
    private String id; // 账户ID
    private String name; // 账户名
    private int balance; // 账户余额

    public Account(String id, String name) { // 构造方法
        this.id = id;
        this.name = name;
    }

    public Account(String id, String name, int balance) { // 构造方法
        this.id = id;
        this.name = name;
        this.balance = balance;
    }

    public String getId() { // 获取账户ID
        return id;
    }

    public String getName() { // 获取账户名
        return name;
    }

    public int getBalance() { // 获取账户余额
        return balance;
    }

    public void deposit(int amount) { // 存款
        balance += amount;
    }

    public void withdraw(int amount) { // 取款
        if (balance >= amount) {
            balance -= amount;
        } else {
            System.out.println("余额不足");
        }
    }
}

上述代码中,Account类包含了两个构造方法,一个无参构造方法和一个有参构造方法。无参构造方法为空实现,有参构造方法用于初始化账户ID、账户名以及账户余额信息。

我们可以写出下面的代码:

public class Main {
    public static void main(String[] args) {
        Account a = new Account("10001", "张三");
        a.deposit(1000);
        a.withdraw(500);
        System.out.println("账户名:" + a.getName() + ",余额:" + a.getBalance());
    }
}

输出结果如下:

账户名:张三,余额:500

本示例演示了创建一个账户对象、进行存取款操作并输出账户余额的完整流程。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:简单了解JAVA构造方法 - Python技术站

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

相关文章

  • SpringSecurity页面授权与登录验证实现(内存取值与数据库取值)

    下面我将详细讲解“SpringSecurity页面授权与登录验证实现(内存取值与数据库取值)”的完整攻略。 一、概述 在开发Web应用程序时,安全性一直是非常重要的一环。Spring Security是Spring Framework所提供的一个强大的安全性框架,能够帮助我们很容易实现认证和授权功能。本文将介绍SpringSecurity页面授权与登录验证实…

    Java 2023年5月19日
    00
  • Java 多线程传值的四种方法

    Java 多线程传值的四种方法 在Java中,当多个线程需要共享数据时,传值成为一件非常重要的事情。该文章将介绍Java中多线程传值的四种方法。 方法一:使用静态变量 Java中的静态变量在不同的线程之间是共享的,我们可以通过修改静态变量实现线程之间的值的传递。 public class ThreadDemo1 { private static int va…

    Java 2023年5月19日
    00
  • Java之Mybatis多层嵌套查询方式

    下面我会为大家详细讲解“Java之Mybatis多层嵌套查询方式”的完整攻略。 1. 什么是多层嵌套查询? 多层嵌套查询指的是在进行数据库查询时,需要查询多个关联表才能获取最终的结果。这种情况下,我们需要在 SQL 语句中使用多个子查询,把不同层级的查询进行组合,才能得到最终的结果。 2. Mybatis 多层嵌套查询的实现方式 Mybatis 多层嵌套查询…

    Java 2023年5月20日
    00
  • 详解spring boot jpa整合QueryDSL来简化复杂操作

    下面我来为你详细讲解“详解spring boot jpa整合QueryDSL来简化复杂操作”的完整攻略。 什么是QueryDSL QueryDSL 是一个DSL query 框架,基于类型安全,可以使用 Java而非 SQL 来查询数据。它支持多种后端数据库,包括 MySQL,PostgreSQL 和 SQL Server。QueryDSL提供了一种比直接写…

    Java 2023年5月20日
    00
  • Java中Lambda表达式的使用详解

    Java中Lambda表达式的使用详解 Lambda表达式是JDK8引入的一个新特性,它可以让Java程序员写出更简洁、更易读、更灵活的代码。本文将详细讲解Java中Lambda表达式的用法。 什么是Lambda表达式 Lambda表达式是一种匿名函数,它可以作为方法参数传递给其他方法,也可以作为返回值返回给调用方。Lambda表达式的语法如下: (参数列表…

    Java 2023年5月26日
    00
  • java计算π的多种方法

    Java 计算 π 的多种方法 在计算机科学中,π(圆周率)是一个非常有趣且重要的数学常数。由于π是一个无理数,不能用有限长的小数表示,因此我们需要使用其他方法来近似计算π。本文将介绍几种 Java 中计算π的方法。 1. 蒙特卡罗方法 蒙特卡罗方法是一种基于随机抽样的数值计算方法。这个方法的基本思想是在一个正方形内随机放置若干个点,并且判断每个点是否在以正…

    Java 2023年5月19日
    00
  • MybatisPlus自带的queryWrapper实现时间倒序方式

    下面我将为您详细讲解“MybatisPlus自带的queryWrapper实现时间倒序方式”的完整攻略,并提供两条示例。 MybatisPlus是一种强大的mybatis框架增强工具,它内置了一些实用的功能,比如一些查询条件构造器(queryWrapper、lambdaQueryWrapper等)。其中queryWrapper是一个强大实用的查询条件构造器,…

    Java 2023年5月20日
    00
  • SpringMVC+Shiro的基本使用及功能介绍

    SpringMVC+Shiro的基本使用及功能介绍 什么是Shiro Shiro是一个强大且易于使用的Java安全框架,它提供了身份验证、授权、加密、会话管理等功能,可以帮助我们快速构建安全的Web应用程序。 SpringMVC集成Shiro SpringMVC集成Shiro可以帮助我们快速构建安全的Web应用程序。以下是SpringMVC集成Shiro的基…

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