首页 > 编程语言 >Java中的构造器详解

Java中的构造器详解

时间:2024-06-22 10:31:44浏览次数:28  
标签:初始化 Java name age 构造 Person 详解 public

在Java中,构造器(也称构造方法)是一种特殊的方法,用于初始化对象的状态当创建对象时,构造器会被自动调用。以下是关于Java中构造器的详细解释:

  1. 命名规则

    • 构造器的名称必须与类名完全相同。
    • 构造器没有返回值类型,连void也没有。
  2. 用途

    • 初始化对象的属性(实例变量)。
    • 执行一些必要的操作,如打开文件、建立网络连接等。
  3. 重载

    • 一个类可以有多个构造器,这称为构造器的重载。
    • 不同的构造器可以有不同的参数列表,但方法名必须与类名相同。
  4. 调用时机

    • 当使用new关键字创建对象时,会调用构造器。
    • 如果在代码中没有显式地定义构造器,编译器会自动提供一个无参数的构造器(也称为默认构造器)。但是,如果类中定义了其他构造器,编译器就不会自动提供默认构造器了。
  5. 示例

    public class Person {  
        private String name;  
        private int age;  
      
        // 无参数的构造器  
        public Person() {  
            this.name = "Unknown";  
            this.age = 0;  
        }  
      
        // 带参数的构造器  
        public Person(String name, int age) {  
            this.name = name;  
            this.age = age;  
        }  
      
        // getter和setter方法...  
      
        // toString方法,用于输出对象的状态...  
    }  
      
    // 使用示例  
    public class Main {  
        public static void main(String[] args) {  
            Person p1 = new Person(); // 调用无参数的构造器  
            System.out.println(p1); // 输出:Person{name='Unknown', age=0}  
      
            Person p2 = new Person("Alice", 30); // 调用带参数的构造器  
            System.out.println(p2); // 输出:Person{name='Alice', age=30}  
        }  
    }

  6. this关键字在构造器中的使用
    • this关键字可以用于引用当前对象的属性或方法。

    • 在构造器中,this还可以用于调用同一个类的其他构造器。这被称为构造器链接或构造器委托。

      public class Person {  
          // ... 其他代码 ...  
        
          // 带两个参数的构造器  
          public Person(String name, int age) {  
              // 使用this调用另一个构造器  
              this(); // 调用无参数的构造器  
        
              // 然后设置name和age  
              this.name = name;  
              this.age = age;  
          }  
        
          // ... 其他代码 ...  
      }

  7. 静态初始化块和实例初始化块
    • 静态初始化块在类加载时执行一次,用于初始化类的静态变量。
    • 实例初始化块在每次创建对象时执行,且在构造器之前执行,用于初始化对象的实例变量。

注意:构造器链接必须在构造器的第一行进行,且只能调用一次

标签:初始化,Java,name,age,构造,Person,详解,public
From: https://blog.csdn.net/2301_79842503/article/details/139786334

相关文章

  • JavaScript基础部分知识点总结(Part5)
    注册事件(绑定事件)1.注册事件概述给元素添加事件,称为注册事件或者绑定事件。注册事件有两种方式:传统方式和方法监听注册方式传统注册方式:利用on开头的事件onclick<buttonοnclick=“alert('hi~')”></button>btn.onclick=function(){}特点:注册事件的唯一性同一个元素同......
  • LOMBOK使用详解
    最近正在写SpringBoot系列文章和录制视频教程,每次都要重复写一些Getter/Setter、构造器方法、字符串输出的ToString方法和Equals/HashCode方法等。甚是浪费时间,也影响代码的可读性。因此,今天就给大家推荐一款Java开发神器——Lombok,让代码更简单易读。什么是LombokLombok是一款J......
  • 基于JAVA个人博客系统设计(论文)
    目录1引言11.1课题背景11.2国内研究情况11.3国外研究情况21.4课题研究目标及意义22相关框架和技术简介32.1semanticUI框架32.2SpringMVC框架32.3MyBatis框架32.4Spring框架32.5wangEditor插件42.6Vue框架42.7MySQL数据库42.8Tomc......
  • Android14之java层:增加系统API(二百二十)
    简介:CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!优质专栏:Audio工程师进阶系列【原创干货持续更新中……】......
  • java集合使用中的注意事项
    集合判断是否为空判断所有集合内部的元素是否为空,使用 isEmpty() 方法,而不是 size()==0 的方式这是因为isEmpty()方法的可读性更好,并且时间复杂度为O(1)。绝大部分我们使用的集合的size()方法的时间复杂度也是O(1),不过,也有很多复杂度不是O(1)的,比如java.util.c......
  • Java爬虫入门(2) Jsoup使用
    Jsoup介绍:    一款Java对html的解析工具。Jsoup的基础使用:    导入Maven依赖:                <dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.11.3</version></dependency>......
  • 又跳槽!3年java经验offer收割机的面试心得
    中厂->阿里->字节,成都->杭州->成都系列文章目录和关于我0.前言笔者在不足两年经验的时候从成都一家金融科技中厂跳槽到杭州阿里淘天集团,又于今年5月份从杭州淘天跳槽到成都字节。自认为自己在面试这方面有一点心得,处于记录和分享的目的便有了此文,此文纯主观,也许对3年社招的同学......
  • 063java jsp ssm企业员工培训管理系统员工培训计划培训记录管理(源码+数据库+文档)
    项目技术:Spring+SpringMVC+MyBatis等等组成,B/S模式管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/10......
  • 059java jsp ssm二手玩具交换商城网站系统(源码+数据库+文档)
    项目技术:Spring+SpringMVC+MyBatis等等组成,B/S模式管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/10......
  • 056java jsp ssm客户关系管理系统(源码+数据库+文档)
    项目技术:Spring+SpringMVC+MyBatis等等组成,B/S模式管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/10......