public class UserInfo {
int age;
String mobile;
String address;
String name;
UserInfo(){
}
UserInfo(int a,String m,String add,String n){
age =a;
mobile =m;
address =add;
name = n;//成员变量赋值
}
}
如上的形如 与类名相同的方法名(参数列表){方法体} 为构造方法
以下代码是均包含在此类中的例子,互不影响
构造方法的调用方式为 new 方法名()
其特点为
1、方法名前只能加 public 或 private 或 protected ,即无返回值类型如void和修饰词如static
2、类中默认有无参构造方法,当定义有参构造方法时,默认的无参构造方法会被隐藏
public static void main(String[] args) {
UserInfo userinfo = new UserInfo();
new Userinfo();
}
故如果没有像上一段代码中自己定义一个无参构造方法,那么此代码会报错,原因是已经定义了有参构造方法,默认的无参构造方法已经隐藏
3、一个类中可以跟据需要定义多个构造方法,这是”重载“的表现
构造方法的作用是简化代码
public static void main(String[] args) {
UserInfo wang = new UserInfo();
wang.age =12;
wang.name ="王勇";
wang.mobile ="12333334567";
wang.address ="河南省郑州市高新区";
UserInfo li = new UserInfo();
li.age =22;
li.name ="李三";
li.mobile ="12233334567";
li.address ="河南省郑州市高新区";
}
上述代码可以用有参构造方法来简化
public static void main(String[] args) {
UserInfo wang = new UserInfo(12,"12333334567","河南省郑州市高新区","王勇");
UserInfo li = new UserInfo(22,"12233334567","河南省郑州市高新区","李三");
}
除此之外,可以在构造方法中调用其他的构造方法
调用方式为在构造方法第一段有效代码位置 this(调用方法的实参列表)
将最初代码改变,展示调用并且达到相同效果
public class UserInfo {
int age;
String mobile;
String address;
String name;
UserInfo(){
}
UserInfo(int a,String n){
age =a;
name =n;
}
UserInfo(int a,String m,String add,String n){
this(a,n);//调用构造方法
mobile =m;
address =add;
}
}