学科分类
目录
Java基础

构造方法的定义

构造方法的语法格式与定义成员方法的语法格式相似,其语法格式如下:

[修饰符] 方法名 ([参数列表]){
   // 方法体
}

上述语法格式所定义的构造方法需同时满足以下三个条件:

① 方法名与类名相同。

② 在方法名的前面没有返回值类型的声明。

③ 在方法中不能使用return语句返回一个值,但是可以单独写return语句来作为方法的结束。

了解了构造方法的定义语法后,接下来通过一个案例来演示如何在类中定义构造方法,如文件1所示。

文件1 Example08.java

 1    class Person {
 2        // 类的构造方法
 3        public Person() {
 4            System.out.println("调用了无参的构造方法");
 5        }
 6    }
 7    public class Example08 {
 8        public static void main(String[] args) {
 9            Person p = new Person();  // 实例化Person 对象
 10        }
 11    }

运行结果如图1所示。

图1 运行结果

文件1中,Person类中定义了一个无参的构造方法Person()。从图1可以看出,Person类中无参的构造方法被调用了。这是因为第9行代码在通过“new Person()”实例化Person对象时会自动调用该类的构造方法。

在一个类中除了可以定义无参的构造方法外,还可以定义有参的构造方法,通过有参的构造方法就可以实现对属性的赋值。接下来对文件1进行改写,改写后的代码如文件2所示。

文件1 Example09.java

 1    class Person {
 2        // 声明int类型的变量age
 3        int age;
 4        // 定义有参构造方法
 5        public Person(int a) {
 6            age = a;                  //为age属性赋值
 7        }
 8        // 定义 speak() 方法
 9        public void speak() {
 10            System.out.println("我今年" + age + "岁了!");
 11        }
 12    }
 13    public class Example09 {
 14        public static void main(String[] args) {
 15            Person p = new Person(18); // 实例化Person对象
 16            p.speak();
 17        }
 18    }

运行结果如图2所示。

图2 运行结果

文件2中,Person类中定义了一个有参的构造方法Person(int a),第15行代码中的“new Person(18);”会调用有参的构造方法来实例化一个Person对象,并传入参数18,对age属性进行赋值。从图2可以看出,Person对象在调用speak()方法时,其age属性已经被赋值为18。

点击此处
隐藏目录