java构造方法调用构造方法
⑴ java构造函数中调用构造函数的问题
不是,因为你初始化(即new)的时候调用的是无参构造函数,所以先调用的是无参构造函数,只不过你在无参构造函数中有调用了有参构造函数(即this(1)),所以当无参构造函数还没有执行到System.out.println("3
Default!!");时,有参构造函数先执行了System.out.println("3
NotDefault!!");所以在输出是会出现“3
NotDefault!!”在"3
Default!!"之前的情况.
⑵ Java中如何在无参构造方法中调用有参构造方法,希望最好有个例子,谢谢
一般正常的都是参数多的调用参数少的。有参数的调用无参数的居多。
当然你要无参调用的参的也可以。
你用无参,调用有参的。那你有参的参数你需要怎么传呢。当然如果换一个角度也可以。
我手写下。没经过IDE的。提供下思路。我有两种思路,写同一个功能。
public class Person{
private String name;
private int age;
//无参
public Person(){
this.name="张三";
this.age=20;
}
//有参
public Person(String name){
this.name=name;
}
//多参
public Person(String name,int age){
this(name);//调用一个参数的构造方法
this.age=age;
}
}
这是一种写法比较常用的方法。写第一种。用上面的例子直接写
public Person(){
this("张三",20);//调用有参构造方法。设置默认值。和第一种方法功能一样
}
public Person(String name,int age){
this.name=name;
this.age=age;
}
为了程序易读性。一般。参数的扩展和构造方法的调用都是有一定的规律的。
有参调无参,多参调少参。。扩展参数的时候,最好保持原来的顺序。
⑶ java构造方法
java构造方法也就是java构造函数,方法举例如下图:
java构造函数一般用来初始化成员属性和成员方法的,即new对象产生后,就调用了对象了属性和方法。
在现实生活中,很多事物一出现,就天生具有某些属性和行为。比如人一出生,就有年龄、身高、体重、就会哭;汽车一出产,就有颜色、有外观、可以运行等。这些,我们就可以将这些天然的属性和行为定义在构造函数中,当new实例化对象时,也就具有这些属性和方法了,没必要再去重新定义了,从而加快了编程效率。
(3)java构造方法调用构造方法扩展阅读:
java构造函数的特点:
1、函数名与类名相同
2、不用定义返回值类型。(不同于void类型返回值,void是没有具体返回值类型;构造函数是连类型都没有)
3、不可以写return语句。(返回值类型都没有,也就不需要return语句了)
⑷ 在一个类的构造方法中如何调用本类其他的构造方法
1,构造方法可以调用本类的其他方法。既然可以调用本类的属性,那么也就可以调用属于本类的其他方法。
2,需要注意的是,如果要在构造方法里调用一个非静态方法时,应该将该方法声明为private。
因为如果这个类被其他类继承成为父类时,这个方法不是private的又被子类所重载,这样在实际创建子类的过程中递归调用到了父类的构造器时,父类构造器对这个方法的调用就会由于多态而实际上调用了子类的方法,当这个子类方法需要用到子类中实例变量的时候,就会由于变量没有初始化而出现异常(子类中的实例变量没有初始化这种情况还是会遇见的),这是Java不想看到的情况。
⑸ java 构造方法相互调用
可以的,但是构造方法的引用必须写在当前构造函数的第一句:this();//有参数的要写参数。
请采纳答案,支持我一下。
⑹ java中如何实现构造方法的调用
public class Util {
public String name;
public Util(){
System.out.println("无参构造方法..");
}
public Util(String name){
this.name = name;
System.out.println("有参构造方法.."+name);
}
public static void main(String[] args) {
Util u1 = new Util();
Util u2 = new Util("小明");
}
}
⑺ “java”中父类构造方法的调用怎么操作
Father a = new Father(baba); 这跟直接调用另一个类并且实例化对象并没多大区别把,不用继承也能做到。调用父类的构造函数用super();关键字
public class Father {
public Father()
//{
//System.out.println("父类无参构造方法");
//} //不在父类中显式声明
public Father(String name)
{
System.out.println("父类有参构造方法");
}
}//父类
public class son extends Father {
public son()
{
super();
System.out.println("子类无参构造方法");
}//子类super();调用父类无参构造方法
public son(String name)
{
super(name);
System.out.println("子类有参构造方法");
}
}//子类
系统在Father类中默认一个无参构造函数,若不在父类中显式的声明,子类super();调用时提示父类的构造方法是未定义的。必须要显式的声明。不会调用默认的无参构造函数。用个编译器具体编译一下,看看到底报的什么错,对症下药。
⑻ java在构造方法中怎么调用其它构造方法
你好!
其实就是像调用函数一个调用传入对应参数就可以了。
如:
ClassA{
intnum;
A()
{
A(5);
}
A(inta)
{
num=a;
}
}
⑼ java 构造方法调用。怎么做
class A {
public A(){}
public A(String a){}
public A(String a,String b){
this();
}
public A(String a,String b,String c){
this(a,b);
......
}
不知道是不是想问的是这个。构造方法调用构造方法的话,可以采用“this”关键字来实现。
}
⑽ java怎么在构造方法里面调用另外一个构造方法啊,在线等,急
第三个 Students 不是构造方法,不能在其里面调用另外的构造方法,正确如下:
classStudent{
intno;
Stringname;
intmath;
intjava;
intphy;
Student(intno,Stringname){
this(no,name,0,0,0); //调用构造方法
}
Student(intmath,intjava,intphy){
this(0,"",math,java,phy); //调用构造方法
}
Student(intno,Stringname,intmath,intjava,intphy){
this.no=no;
this.name=name;
this.math=math;
this.java=java;
this.phy=phy;
}
}