构造方法,重载以及何时可以省略
构造方法和类名重名,前面没有任何修饰,无返回值
1,一般情况下,程序会自动生成构造方法,任何东西没有包含,一般可以省略,省略有两种情形,1是没有用到省略的,2是重载后也未用到
2,但是重载的情况下不能够省略,如输入不同的参数类型,而且省略和未省略的都又用到
A,省略的情形两种
第一种:系统自带的用上了,但是没有其他的重载
class Cat1{
private String name;
private int age;
/*Cat1(){
}//此时程序中可省略,系统自带的
*/ void prt(){
System.out.println(this.name+this.age);
}
}
public class A614{
public static void main(String[] args){
Cat1 one=new Cat1();
one.prt();
}
}
第二种情形:系统自带的没有用上
class Cat1{
private String name;
private int age;
Cat1(String name,int age){//构造方法前面任何的修饰词,没有返回值
this.name=name;
this.age=age;
}
void prt(){
System.out.println(this.name+this.age);
}
}
public class A614{
public static void main(String[] args){
Cat1 two=new Cat1("小花",2);
two.prt();
}
}
B,重载后不能省略的情形,省略的和重载的均有定义,不能省略
class Cat1{
private String name;
private int age;
Cat1(String name,int age){//构造方法前面任何的修饰词,没有返回值
this.name=name;
this.age=age;
}
Cat1(){
}//java对象自动匹配的构造方法,可省略?
void prt(){
System.out.println(this.name+this.age);
}
}
public class A614{
public static void main(String[] args){
Cat1 one=new Cat1();
one.prt();
Cat1 two=new Cat1("小花",2);
two.prt();
}
}