当前位置: 首页 > 知识库问答 >
问题:

我如何引用一个方法中的对象,它已经调用了?

孙子民
2023-03-14
class Rational{

private int numer;
private int denom;

//sets numerator and denominator
public Rational (int numer, int denom){
    this.numer = numer;
    this.denom = denom;     
}

//copy constructor for a Rational object
public Rational (Rational copy){
    this(copy.getNumer(), copy.getDenom());
}

//sets numerator to parameter
public void setNumer(int numer){
    this.numer = numer;
}

//returns the stored numerator
public int getNumer(){
    return this.numer;
}

//sets denominator to parameter
public void setDenom(int denom){
    this.denom = denom;
}

//returns the stored denominator
public int getDenom(){
    return this.denom;
}

//returns a new Rational object that contains the reciprocal of the object that
//invoked the method
//Method #1
public Rational reciprocal(){
    this(rat1.getDenom(), rat1.getNumer()); 
}

//Method #2
public Rational reciprocal(Rational dup){
    this(dup.getDenom(), dup.getNumer());   
}

我想用对象rat1调用倒数方法,但我想不出如何在方法内部引用rat1的变量。有没有什么方法可以用类似于方法#1的方式来实现这一点。(顺便说一句,我知道这是行不通的)另外,当使用方法#2时,为什么我总是得到一个“构造函数调用必须是第一个语句”的错误,即使它是第一行呢?

共有1个答案

戈正初
2023-03-14

不清楚rat1互惠方法中的含义...但不能只使用this(...)的原因是这些是方法,而不是构造函数。在我看来你可能想:

public Rational reciprocal() {
    return new Rational(denom, numer);
}

如果您想调用这些方法,您可以在this上隐式地调用它们:

public Rational reciprocal() {
    return new Rational(getDenom(), getNumer());
}

也可以显式使用this:

public Rational reciprocal() {
    return new Rational(this.getDenom(), this.getNumer());
}
private int numerator, denominator;

public int getNumerator() {
    return numerator;
}

// etc
 类似资料:
  • 好的,我创建了一个名为game1的Game实例,但我如何在其他方法中使用game1的相同实例呢?这是我目前所拥有的 这是我的游戏类中的全部显示方法

  • 问题内容: 我想要进行属性调用,例如返回某种方法的结果。我怎样才能做到这一点? 编辑:我很快问:看起来我可以用 这样行吗? 问题答案: 使用属性装饰器 使用__dict__进行处理很脏,尤其是在@property可用时。

  • 下面是我要为其创建测试的类和方法: 具体地说,我希望模拟getAnalytics.getAll(),这样它就会返回一个我已经定义的字符串。而不是方法执行它的任务。这是我的代码:

  • 问题内容: 所以我基本上想做的很简单 由于某种原因,它无法正常工作。在我的Javascript控制台(Chrome浏览器)中 编辑1:我已经添加了实际的代码,如您所见,我在构造函数中绑定了validateEmail 问题答案: 您的方法已正确定义,因此问题出在如何 调用上 。 您以一种设置为实例以外的方式调用它。这在事件侦听器中很常见。我想您的代码中有一些类似的代码: React 的推荐解决方案是

  • 我创建了一个静态变量来保存应用程序上下文,因为我要在课堂上的其他地方使用它。这个变量被分配到类的构造函数中,我得到了以下错误——“不要将Android上下文类放在静态字段中(静态引用MyClass,其中字段appContext指向上下文);这是内存泄漏(也会中断即时运行)[StaticFieldLeak]。” 下面是MyClass中的代码: 为了解决这个问题,我考虑将appContext作为弱引用

  • 这是我的代码想要使用AdapterVersion(父类)的对象引用访问AdapterVer1 getAdaptObj1()的子类方法(没有类型转换)