简述什么是Java构造器? 怎么使用?

猿友 2021-07-15 10:11:18 浏览数 (3387)
反馈

相信有很多初学Java的小伙伴在学习面对对象的时候,一个类里面既有构造函数,又有普通函数,因为他们两个就像双胞胎兄弟,所以区分得不是很明白。本文将为您介绍Java中的构造器,重载方法,以及构造函数和普通函数之间的区别。

构造器

在学习之前,我们首先要了解什么是构造器?构造器能用来做什么?

构造器:也就是我们前文提到的构造函数,也可以叫做构造方法,是 Java 中一种特殊的函数。

作用:构造器一般是用来初始化成员属性和成员方法。当我们使用​new​关键词美创建一个新的对象,那么构造器就会被调用一次。


构造器的特点

  1. 函数名必须和类名相同。
  2. 不需要定义返回值类型。
  3. 每个对象都至少有一个构造函数,即使没有创建构造器,系统也会默认添加一个无参构造器。
  4. 如果有自定义的构造器,那么系统就不会添加。

因为构造函数的名称只能和类名相同,这也就是说明了如果要自定义多个构造函数的话,那么必然就会有重名的结果。在这里,就要先介绍Java中另外一个很重要的知识点——重载。

重载

定义:在同一个类当中,方法可以有相同的方法名,但是所给的参数不一样,那么这就叫做方法重载(Method Overloading)。。

特点:和返回值类型无关,只和参数列表有关系。(参数个数、参数类型、参数顺序)。

那么方法重载后,会不会影响前面写过的方法函数?

答案是不会的!方法重载并不会对前面的方法函数进行覆盖。

同样的方法名,不同的方法函数。


构造器的示例用法

无参构造器

创建一个​People​对象,定义一个无参构造器(为了更直观看到是否调用了构造器,在其中添加了一个打印。)

public class People {
        String name;
        Integer age;
        String gender;

        public People() {
            System.out.println("已经调用了这个无参构造器。");
        }
}

用​new​关键词创建一个新对象

public class Demo {
    public static void main(String[] args) {
        People p1 = new People();
    }
}

输出结果

java构造器输出结果


有参构造器

有参构造器也就是比无参构造器多一些参数类型,参数值。

写法

public 类名 (参数类型1 参数值1, 参数类型2 参数值2...){}

自定义一个有参构造器

public People(String name, Integer age, String gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }

创建一个名为​p2​的对象,来调用自定义的有参构造器

People p2 = new People("Jack", 15, "男");
System.out.println(p2.name+"是一个"+p2.age+"岁的"+p2.gender+"生.");

输出结果

java有参构造器的输出结果

看到这里,对构造器有了一个大概的了解了。接下来,我们说说构造函数和普通函数的区别。

构造函数和普通函数的区别

构造函数和普通函数长得非常相似,就像是双胞胎一样。但即便是双胞胎,他们之前也会存在一些的区别的。

  • 普通函数的函数名可以根据个人爱好自定义的;构造函数的函数名只能是和类名一样。
  • 普通函数可以用void来修饰,也可以有返回值;构造函数则既不能用void修饰,也没有返回值。
  • 一般情况下,建议的是普通函数使用小驼峰式命名法,即首字母小写;构造函数和类名首字母要大写。
  • 普通函数是可以直接通过​函数名()​来直接调用;构造函数则是在new​关键词创建对象时才调用。

总结

关于Java构造器、重载方法以及构造函数和普通函数之间的区别就介绍到此结束了。如果想要了解更多有关于Java知识的内容,请搜索W3Cschool以前的文章或是继续浏览相关文章。


0 人点赞