1.构造方法在对象创建的时候运行,可以对对象进行初始化
2.一个类的构造方法与该类的名字相同,没有返回值。
3.对于一个类,如果不创建构造方法,会默认有一个空参数的
构造方法,并且该构造方法有方法体,但是没有内容。
public class ConsDemo{
public static void main(String []args){
Person person1 = new Person();
person1.speak();
}
}
class Person{
private String name;
private int age;
public void speak(){
System.out.println(name+":"+age);
}
}
该对象可以实例化成功
4.如果在类中定义了指定的构造方法,那么类中的默认的构造方法就没有了
例如:Person类定义了一个参数的构造方法,实例化对象时不传参数代码如下:
public class ConsDemo{
public static void main(String []args){
Person person1 = new Person();
person1.speak();
}
}
class Person{
private String name;
private int age;
Person(String name){
this.name = name;
age=1;
System.out.println("一个参数的构造方法运行");
}
public void speak(){
System.out.println(name+":"+age);
}
}
**
结果如下
ConsDemo.java:29: 错误: 无法将类 Person中的构造器 Person应用到给定类型;
Person person1 = new Person();
^
需要: String
找到: 没有参数
原因: 实际参数列表和形式参数列表长度不同
**会提示没有相应的构造方法**
5.一个类可以有多个构造方法,用于对不同的对象进行针对性的初始化。多个
构造方法在类中是以重载的形式来体现的,这些个构造方法的名字必须相同,
都和类名相同,但是他们必须拥有不同的参数列表(参数个数、参数类型、
参数顺序)本类实例化的时候会根据传参数的类型来选择调用哪一个构造方法。
代码如下:
public class ConsDemo{
public static void main(String []args){
Person person1 = new Person();
person1.speak();
Person person2 = new Person("xiao");
person2.speak();
Person person3 = new Person("xiao",3);
person3.speak();
}
}
class Person{
private String name;
private int age;
//定义一个构造方法
// 1.空参数构造方法
Person(){
name="xiao";
age=23;
System.out.println("空参数的构造方法运行");
}
// 2.一个参数的构造方法
Person(String name){
this.name = name;
age=1;
System.out.println("一个参数的构造方法运行");
}
//3.两个参数的构造方法
Person(String name,int age){
this.name = name;
this.age = age;
System.out.println("两个参数的构造方法运行");
}
public void speak(){
System.out.println(name+":"+age);
}
}
结果如下:
Compiling ConsDemo.java......
------Output------
空参数的构造函数运行
xiao:23
一个参数的构造函数运行
xiao:1
两个参数的构造函数运行
xiao:3
[Finished in 0.6s]
6.一般方法和构造方法的区别:
构造方法:在对象创建时,就被调用与之对应的构造方法,对对象进行初始化。
对象创建时会调用,且只调用一次一般方法:对象创建后,需要方法功能时才调用。
对象创建后,可以多次调用。
7.定义构造方法的场景:在描述事物时,该事物一存在就具备一些内容,这些内容就定义在构造方法中。
8.构造方法拥有自己的return语句。
在构造方法中写上return语句,若return语句之后不存在内容,不影响编译与运 行,但是若return语句后还有内容,会提示报错。