java程序中可以有几个构造方法_java中多个构造方法可以相互引用么?

这个程序是创造一个矩形并输出它的对角点importjava.awt.Point;classMyRect{intx1=0;intx2=0;inty1=0;inty2=0;MyRect(intx1,inty1,intx2,inty2){this.x1=x1;this.y1=y1;this.x2=x2;th...

这个程序是创造一个矩形并输出它的对角点

import java.awt.Point;

class MyRect

{

int x1=0;

int x2=0;

int y1=0;

int y2=0;

MyRect(int x1,int y1,int x2,int y2)

{

this.x1=x1;

this.y1=y1;

this.x2=x2;

this.y2=y2;

}

MyRect(Point a,Point b)

{

this=new MyRect(a.x,a.y,b.x,b.y);

}

MyRect(Point a,int l,int w)

{

this=new MyRect(a.x,a.y,a.x+l,a.y+w);

}

public static void main(String[] arguments)

{

MyRect rect;

rect=new MyRect(1,2,3,4);

System.out.println(rect.x1+","+rect.y1+","+rect.x2+","+rect.y2);

rect=new MyRect(new Point(2,3),new Point(3,4));

System.out.println(rect.x1+","+rect.y1+","+rect.x2+","+rect.y2);

rect=new MyRect(new Point(1,2),2,2);

System.out.println(rect.x1+","+rect.y1+","+rect.x2+","+rect.y2);

}

}

编译不通过,构造方法引用错误了。我想让第二个,第三个构造方法都引用第一个,应该怎么写?还是不能写?

我知道有一种方法

MyRect(Point a,Point b)

{

x1=a.x;

y1=a.y;

x2=b.x;

y2=b.y;

}

这不是我本意,感觉做了重复工作

我知道如果是实例方法的话,互相引用很简单,直接引用然后return就行

谁能给我解释一下?

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 是的,在Java语言,可以在一个类的两个构造方法使用`this`相互调用。这种方法有助于代码复用和维护。使用`this`进行构造方法间的调用需要注意以下几点: 1. 使用`this`调用的构造方法必须是在当前构造方法的第一行调用。 2. 不能在同一个构造方法递归地调用自己。 3. 构造方法调用结束后,当前对象才会被完全初始化。 例如: ``` public class Example { int a; int b; public Example(int a, int b) { this.a = a; this.b = b; } public Example(int a) { this(a, 0); } } ``` 在上面的代码,第二个构造方法使用了`this`调用了第一个构造方法。 ### 回答2: 在Java语言,是可以在一个类的两个构造方法使用this相互调用的。 在一个类,如果有多个构造方法,可以通过在构造方法使用this关键字来调用其他构造方法。这样做的好处是可以减少重复代码,提高代码的复用性。 具体使用方法如下: 1. 在构造方法使用this关键字来调用其他构造方法时,需要使用this关键字后加圆括号,表示调用其他构造方法。 2. 调用其他构造方法时,需要注意以下几点: a. 调用其他构造方法的语句必须写在构造方法的第一行。 b. 通过this语句调用其他构造方法时,不可以使用super关键字调用父类的构造方法。 c. 在调用其他构造方法时,可以传递参数给其他构造方法,也可以不传递参数。 3. 构造方法相互调用应该注意避免出现循环调用的情况,以免造成死循环。 总之,在Java语言,可以通过在一个类的两个构造方法使用this关键字来相互调用,从而实现代码的复用和减少重复代码的目的。 ### 回答3: 在Java语言,是可以在一个类的两个构造方法使用this来相互调用的。使用this关键字可以调用当前类的其他构造方法。 当一个类有多个构造方法时,我们可以在某个构造方法调用另一个构造方法,以简化代码的编写。在构造方法内部使用this关键字调用其他构造方法,语法如下: ```java public class MyClass { private int x; private int y; public MyClass() { this(0, 0); // 调用带有两个参数的构造方法 } public MyClass(int x, int y) { this.x = x; this.y = y; } } ``` 上述代码,MyClass类有两个构造方法,一个是无参构造方法,一个是带有两个参数的构造方法。在无参构造方法使用this关键字调用带有两个参数的构造方法。这样做的好处是无需重复编写相同的初始化代码,提高了代码的可维护性和重用性。 需要注意的是,在构造方法使用this关键字相互调用时,应确保调用的构造方法不会形成循环调用,否则会导致栈溢出错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值