1、定义:
如果在创建类时未添加无参数构造方法,编译器将自动添加无参数构造方法。 (如果添加自己的构造函数,则无论是否有参数,缺省构造函数都将禁用。)
如果在不添加无参数构造函数的情况下创建有参数的构造函数,编译器将只识别有参数的构造函数,并且缺省情况下不会添加无参数构造函数。
如果需要使用无参结构方法,请确保将其添加到类中
2、如:
定义四个类。 说明四种情况。
类Person1本身不手动添加无参数或有参数的构造方法。 (实例化对象时:编译路径) )。
类Person2本身添加无参数的构造方法(实例化对象时:编译路径) ) ) )。
类Person3具有参数的构造方法(实例化对象时:不通过) )。
类Person4自己添加无参数的构建方法和有参数的构建方法(实例化对象时:通过编译)
//定义类Person1本身不手动添加无参数或有参数的方法
类人员1 {
私有输入;
私有字符串名称;
私有字符串sex;
}
//类Person2自身定义添加无参的构建方法
类人员2 {
私有输入;
私有字符串名称;
私有字符串sex;
公共人员2 () {
System.out.println;
}
}
//类定义人员3有参数的结构方法
class Person3{
私有输入;
私有字符串名称;
私有字符串sex;
PublicPerson3(stringname,String sex,int age ) {
this.name=name;
this.sex=sex;
this.age=age;
}
}
//定义类Person4自身添加无参的构建方法和有参数的构建方法
类人员4 {
私有输入;
私有字符串名称;
私有字符串sex;
//可以重载无参数的构造函数
公共人员4 () {
System.out.println;
}
//带参数对的构造函数
公共人员4 (string name,String sex,int age ) {
this.name=name;
this.sex=sex;
this.age=age;
}
}
公共类对象init _2{
publicstaticvoidmain (string [ ] args ) {
人员1人员1=新人员1 (; //编译通过; 实例化Person对象构建方法Person (
人员2人员2=新人员2 (; //编译通过; 调用打印:无参数生成方法
//这样写的话,编译器会报告错误。 这是因为系统的缺省无参数生成方法被无参数生成方法所复盖,编译器无法再提供无参数生成方法
人员3人员3=新人员3 (;
//人员4人员4=新人员4 (; //编译通过; 调用打印:无参数生成方法
人员4人员4=new人员4 (' qzz ',' man ',18 ); //编译通过;
}
}
3 .使用生成器时,请记住以下事项:
1 .构造函数必须与类同名。 如果源文件中有多个类,则构造函数必须与公共类具有相同的名称。)
2 .每个类可以具有一个或多个构造函数
3 .构造函数可以具有0个、1个或多个参数
4 .构造函数没有返回值
5 .构造函数总是与new操作一起调用
父类具有带参数的方法。 一个只是有参数的方法,子类方法的第一句是有父类参数的方法,即“super; )中被调用,将出现故障。……为你传递的参数如下。
class Father {
公共father (string last name ) {
}
}
class Son extends Father {
public Son () }
super(AAAA ); //这个句子必须有
//也可以写其他代码
}
}
2有带参数的方法和没有参数的方法。 在这种情况下,子类不显示调用super。 缺省情况下,它会自动调用父类的无参数方法。
class Father {
公共设施()。
}
公共father (string last name ) {
}
}
class Son extends Father {
public Son () }
super (; //这个句子可有可无。 如果没有写的话会自动调用
//也可以写其他代码
}
}