概述
若没有构造方法,实例化一个对象后,如果要为这个对象中的属性赋值,必须要通过直接访问对象的属性或调用方法才可以。
通过构造方法,当类实例化一个对象时会自动调用构造方法,在实例化对象的同时就为这个对象的属性进行赋值。
如果一个类中的方法同时满足以下三个条件,该方法称为构造方法:
1、方法名与类名相同。
2、在方法名的前面没有返回值类型的声明。
3、在方法中不能使用return语句返回一个值。
案例1:实例化对象的同时,调用构造方法
结果直接输出:无参的构造方法被调用了...,因为new Person()语句不仅实例化了Person对象,还调用了构造方法Person()。
class Person {
// 下面是类的构造方法
public Person() {
System.out.println("无参的构造方法被调用了...");
}
}
public class Example05 {
public static void main(String[] args) {
Person p = new Person(); // 实例化 Person 对象
}
}
案例2:在实例化对象的同时就为这个对象的属性进行赋值
结果输出:I am 22 years old.!
class Person {
int age;
// 定义有参的构造方法
public Person(int a) {
age = a; // 为age属性赋值
}
public void introduce() {
System.out.println("I am " + age + " years old.!");
}
}
public class Example06 {
public static void main(String[] args) {
Person p = new Person(22); // 实例化 Person 对象
p.introduce();
}
}
案例3:构造方法的重载:
在一个类中可以定义多个构造方法,只要每个构造方法的参数类型或参数个数不同即可,在创建对象时,可以通过构造不同的构造方法,为不同的属性赋值。
如下例
class Person {
String name;
int age;
// 定义两个参数的构造方法
public Person(String con_name, int con_age) {
name = con_name; // 为name属性赋值
age = con_age; // 为age属性赋值
}
// 定义一个参数的构造方法
public Person(String con_name) {
name = con_name; // 为name属性赋值
}
public void speak() {
// 打印name和age的值
System.out.println("大家好,我叫" + name + ",我今年" + age + "岁!");
}
}
public class Example2 {
public static void main(String[] args) {
// 分别创建两个对象 p1 和 p2
Person p1 = new Person("小田");
Person p2 = new Person("大燕", 22);
// 通过对象p1 和 p2 调用speak()方法
p1.speak();
p2.speak();
}
}
注意:当定义有参的构造方法时,且没有定义无参构造方法时,实例化对象时必须传入参数,否则错误。
class Person {
int age;
// 定义有参的构造方法
public Person(int a) {
age = a; // 为age属性赋值
}
public void introduce() {
System.out.println("I am " + age + " years old.!");
}
}
public class Example06 {
public static void main(String[] args) {
Person p = new Person(); // 实例化 Person 对象,但没有传参,报错
p.introduce();
}
}
最后
以上就是紧张大地为你收集整理的构造方法的全部内容,希望文章能够帮你解决构造方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复