//:object/Practice.java
/**Calling constructors with "this"
* @author Female_
* */
public class Practice {
int petalCount=0;
String s ="initals value";
Practice(int petals){
petalCount = petals;
System.out.println("Constructor w/ int arg only, petalCount= "+petalCount);
}
Practice(String ss){
System.out.println("Constructor w/ String arg only ,s= "+ss);
s=ss;
}
Practice(String s,int petals){
this(petals);
// !this(s); 不能用this调用两个构造器,且必须将构造器置于最起始处
this.s=s;
System.out.println("String & int args");
}
Practice(){
this("hi",47);
System.out.println("default constructor (no args)");
}
void printPetalCount() {
//! this(11); 除构造器之外,编译器禁止在其他任何方法中调用构造器
System.out.println("petalCount= "+petalCount+" s= "+s);
}
public static void main(String[] args) {
Practice a=new Practice();
a.printPetalCount();
}
}/*Ouput:
Constructor w/ int arg only, petalCount= 47
String & int args
default constructor (no args)
petalCount= 47 s= hi
*/
/**Calling constructors with "this"
* @author Female_
* */
public class Practice {
int petalCount=0;
String s ="initals value";
Practice(int petals){
petalCount = petals;
System.out.println("Constructor w/ int arg only, petalCount= "+petalCount);
}
Practice(String ss){
System.out.println("Constructor w/ String arg only ,s= "+ss);
s=ss;
}
Practice(String s,int petals){
this(petals);
// !this(s); 不能用this调用两个构造器,且必须将构造器置于最起始处
this.s=s;
System.out.println("String & int args");
}
Practice(){
this("hi",47);
System.out.println("default constructor (no args)");
}
void printPetalCount() {
//! this(11); 除构造器之外,编译器禁止在其他任何方法中调用构造器
System.out.println("petalCount= "+petalCount+" s= "+s);
}
public static void main(String[] args) {
Practice a=new Practice();
a.printPetalCount();
}
}/*Ouput:
Constructor w/ int arg only, petalCount= 47
String & int args
default constructor (no args)
petalCount= 47 s= hi
*/
本文介绍了一个Java类中构造器的使用案例,演示了如何在一个类的不同构造器间通过this关键字进行调用。文章通过具体示例展示了构造器调用的规则及其注意事项。
366

被折叠的 条评论
为什么被折叠?



