首页 > 解决方案 > 范围和访问权限问题

问题描述

使用 Java 并尝试解决以下问题,我的代码不断给出此错误:

“TesterClass.java:41:错误:不兼容的类型:int 不能转换为 String 返回分子;”

该代码应该打印出 0 和 1。

我已经改变了周围的一切,我知道这是一个范围和访问问题,只是不确定它在哪里。

public class TesterClass
{

public static void main(String[] args)
     {
Fraction f1 = new Fraction();
Fraction f2 = new Fraction(1,2);
System.out.println(f1);
System.out.println(f2.numerator / f2.denominator);  //class Scope
    }
}

/** Class Fraction */
class Fraction
{
// instance variables
private int numerator;
private int denominator;

// constructor: set instance variables to default values
public Fraction()
    {
int d = 1;
numerator = d;
denominator = d;
    }

// constructor
public Fraction(int initNumerator, int initDenominator)
    {
numerator = initNumerator;
denominator = initDenominator;
    }
 
public String toString()
    {
if (denominator == 1)
return numerator;
return numerator + "/" + denominator;
    }

public int getNum()
   {
return numerator;
   }

public int getDen()
   {
return denominator;
   }
}

应该打印出来

1 0

标签: java

解决方案


return numerator;本身不能工作,因为该方法应该返回 aStringnumerator类型为int

如果你想保持 distition usingif (denominator == 1)你需要手动将 numerator 转换为 a String。例如,您可以使用

return String.valueOf(numerator)

(感谢@Antonio)


推荐阅读