java构造器 默认构造方法及参数化构造方法

 更新时间:2021年10月09日 16:25:24   作者:努力成为java程序员的啊文  
构造器也叫构造方法、构造函数,是一种特殊类型的方法,负责类中成员变量(域)的初始化。构造器的用处是在创建对象时执行初始化,当创建一个对象时,系统会为这个对象的实例进行默认的初始化,下面文章将进入讲解,需要的朋友可以参考下

1、构造器

构造器也叫构造方法、构造函数,是一种特殊类型的方法,负责类中成员变量(域)的初始化。构造器的用处是在创建对象时执行初始化,当创建一个对象时,系统会为这个对象的实例进行默认的初始化。

有两种类型的构造方法:

  • 1、默认构造方法(无参数构造方法)
  • 2、参数化构造方法

1.1 权限修饰符是public

权限修饰符是public,表示内部属性能被其他类访问到。

java默认的构造方法是无参的。

Java编译器会自动创建无参构造函数,因此在类中,无参构造即使没有,我们也可省略不写。实例化对象时无需赋值

新建一个Person类,再用new实例化person对象。运行后会生成一个Person.class对象。

public class Demo02 {
    public static void main(String[] args) {
        //new 实例化一个对象
        //一个类就算什么也不写,也存在一个方法,且方法名与类名相同。
        Person p=new Person();创建对象,括号内无需赋值,没赋值的情况下,字符类型默认值为null,数值类型默认值为0
    }
}

public class Person {

}

若类中什么也不写,运行之后,默认多一个Person()方法,下面是Person.class的代码:

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package Demo01;

public class Person {
    public Person() {
    }
}

故:一个类就算什么也不写,他也会存在一个默认的方法

参数化构造方法:

  • 参数化构造方法用于为不同对象提供不同初始化的值。
  • 倘若类中已存在有参构造函数,则编译器不再提供默认无参构造。实例化对象时需赋值,不然报错

1.2 显示定义构造器

package Demo01;

public class Demo02 {
    public static void main(String[] args) {
        //new 实例化一个对象
        //一个类就算什么也不写,也存在一个方法,且方法名与类名相同。
        Person p=new Person();
        System.out.println(p.name);//null
    }
}
package Demo01;

public class Person {
    String name;
    //实例化初始值
    //1、使用new关键字,本质实在构造器
    //2、用来初始化值
    public Person(){//默认构造器
        this.name="xiaoming";
    }

    //有参构造:一旦定义了有参构造,无参构造就必须显示定义,否则无效,也是重载
    public Person(String name){
        this.name=name;
    }

    //快捷键: alt + insert     生成构造器,自动生成构造器,有参无参可自行选择。
}

总结:

构造器:

  • 1、和类名相同
  • 2、没有返回值

作用:

  • 1、new 本质在调用构造方法
  • 2、初始化对象的值

注意:定义构造之后,如果想使用无参构造,显示的定义一个无参构造,否则不能使用无参的构造方法ALT + INSERT 生成构造器

到此这篇关于java构造器 默认构造方法及参数化构造方法的文章就介绍到这了,更多相关java构造器 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • FeignClient中name和url属性的作用说明

    FeignClient中name和url属性的作用说明

    这篇文章主要介绍了FeignClient中name和url属性的作用说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • SpringMVC4.3 HandlerExceptionResolver异常处理源码解析

    SpringMVC4.3 HandlerExceptionResolver异常处理源码解析

    这篇文章主要为大家介绍了SpringMVC4.3 HandlerExceptionResolver异常处理源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪<BR>
    2023-09-09
  • jvm排查工具箱jvm-tools下载使用详解

    jvm排查工具箱jvm-tools下载使用详解

    这篇文章主要为大家介绍了jvm排查工具箱jvm-tools下载使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • SpringBoot整合RabbitMQ, 实现生产者与消费者的功能

    SpringBoot整合RabbitMQ, 实现生产者与消费者的功能

    这篇文章主要介绍了SpringBoot整合RabbitMQ, 实现生产者与消费者的功能,帮助大家更好得理解和学习使用SpringBoot框架,感兴趣的朋友可以了解下
    2021-03-03
  • idea中springboot项目连接数据库报错的原因解析

    idea中springboot项目连接数据库报错的原因解析

    这篇文章主要介绍了idea中springboot项目连接数据库报错的原因解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • 通过String.intern()方法浅谈堆中常量池

    通过String.intern()方法浅谈堆中常量池

    这篇文章主要介绍了通过String.intern()方法浅谈堆中常量池,在JDK7之前,字符串常量是存在永久带Perm 区的,JDK7开始在将常量池迁移到堆中,这个变化也导致了String的新特性,下面我们慢慢进行介绍。,需要的朋友可以参考下
    2019-06-06
  • Java面试题冲刺第二十二天-- Nginx

    Java面试题冲刺第二十二天-- Nginx

    这篇文章主要为大家分享了最有价值的三道关于Nginx的面试题,涵盖内容全面,包括数据结构和算法相关的题目、经典面试编程题等,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 每天学Java!一分钟了解JRE与JDK

    每天学Java!一分钟了解JRE与JDK

    每天学Java!一分钟了解JRE与JDK,什么是JRE?什么是JDK?什么是JVM?相信通过本文大家都会有所了解,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • 通过实例解析Spring Ioc项目实现过程

    通过实例解析Spring Ioc项目实现过程

    这篇文章主要介绍了Spring Ioc项目实践过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Java并发编程示例(八):处理线程的非受检异常

    Java并发编程示例(八):处理线程的非受检异常

    这篇文章主要介绍了Java并发编程示例(八):处理线程的非受检异常,Java为我们提供了一种机制,专门用于处理由Thread对象抛出的非受检异常,以避免程序的退出,需要的朋友可以参考下
    2014-12-12

最新评论