java - 范围和访问权限问题
问题描述
使用 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
解决方案
return numerator;
本身不能工作,因为该方法应该返回 aString
但numerator
类型为int
。
如果你想保持 distition usingif (denominator == 1)
你需要手动将 numerator 转换为 a String
。例如,您可以使用
return String.valueOf(numerator)
(感谢@Antonio)
推荐阅读
- mysql - 基于JOIN的列复制MySQL SUM
- info.plist - Info.plist 中未定义的字典
- php - assert() 不会自动评估代码
- netlify - 将 Netlify 的托管身份服务与自托管 Netlify CMS 结合使用
- python - MacOS 高 OSierra 10.13.6、Python3.7、GeocoderServiceError: [SSL: CERTIFICATE_VERIFY_FAILED]
- php - 我正在尝试将 3 年添加到从我的数据库返回的日期
- java - 如何使用 Java 驱动程序 3.4+ 在 mongodb 中使用 ObjectId 字段计算唯一 _id?
- python - numpy:沿两个轴的矢量化累积和
- azure-functions - 在 Docker 容器上的 Azure Function Apps Runtime 2.x 中运行 csproj 函数时,如何根据环境条件设置 AuthorzationLevel?
- spring - 是否可以在 spring elasticsearch 中使用 _update_by_query