嗨客网搜索
Java开发环境搭建
Java方法
Java构造方法

Java构造方法教程

在学习 对象的封装性 课程中,我们发现要对对象里面的属性赋值的时候,要先实例化一个对象,然后再调用属性对应的 set 方法,才能够对对象里面的属性赋值。

Java 这边会有一个更加简单的方法,通过构造方法,在创建对象的时候,就可以对对象里面的属性赋值。

Java构造方法定义

语法

class ClassName{ 访问权限 ClassName(Object param1, Object param2,...){ //do something ; 基本就是对本对象里面的属性赋值 构造函数没有返回值 } }

参数

参数 描述
ClassName 类的名称,构造方法也是以类名称作为名字的
param1 参数,用这些参数来对具体的属性赋值
访问权限 有 private,public,protect 。

说明

构造方法是没有返回值的,它的名称必须要和类的名字一样。它和一般的方法不一样,一般的方法需要有返回类型,但是构造方法没有返回类型。

创建一个对象的时候,就是调用该类里面对应的构造方法。

案例

我们还是以创建一个 Person 为例子。

package com.haicoder.net.clas; /** * 定义一个 person 类 */ public class Person { //无参构造函数 public Person() { } //一个参数构造函数 public Person(String name) { this.name = name; } //两个参数构造函数 public Person(String name, int age) { this.name = name; this.age = age; } private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { if (age < 0 || age > 150) { this.age = 0; } else { this.age = age; } } public void desc() { System.out.println("姓名 : " + name + ", 年龄 : " + age); } }

我们定义一个测试类,来调用构造函数:

package com.haicoder.net.clas; /** * 用来创建对象,并使用的测试类 */ public class TestPerson { public static void main(String[] args) { System.out.println("嗨客网(www.haicoder.net)"); Person person = new Person("嗨客网"); person.desc(); person.setName("www.haicoder.net"); person.setAge(15); person.desc(); } }

运行结果如下:

13 构造方法.png

我们可以看到,我们定义构造函数的时候,存在没有传递参数的,有一个参数的,还有一个是两个参数的。我们在测试类里面,调用了给名字赋值的构造函数,然后调用了 set 的方法,对对象的属性重新赋值,得到的结果也是赋值后的结果。

Java构造方法总结

在平时使用的时候,我们没有自己定义构造函数,就可以 new 一个对象,java 语言中,在你没有定义构造函数的时候,它会默认的有一个无参的构造函数,所以在 new 对象的时候,不用传递任何参数。但是你在类里面定义了一个有参的构造函数,那么默认的无参构造函数就会失效,如果想使用无参构造函数,必须要自己重新定义。

在创建构造函数的时候,我们也可以对构造函数进行重载,可以定义相同的名字,参数的个数或者参数的名字不相同。

如果一个类里面定义了构造函数,在 new 一个对象的时候,构造函数里面的参数必须要在定义的构造方法里面,如果你在定义构造函数的时候,参数有两个,而你在 new 对象的时候,不传参数,或者传递一个参数,那么这个时候编译期间就会有问题,代码不会编译通过,更不用提执行了。

嗨客网顶部