package fracciones;
public class Fraction {
private int Numerador;
private int Denominador;
public Fraction() {
Numerador = 0;
Denominador = 1;
}
public Fraction(int Num, int Den) {
Numerador = Num;
Denominador = Den;
}
public int getNumerador() {
return Numerador;
}
public int getDenominador() {
return Denominador;
}
public Fraction Suma(Fraction Suma) {
int Num = Suma.getNumerador();
int Den = Suma.getDenominador();
Fraction c = new Fraction();
c.Numerador = Numerador * Den + Denominador * Num;
c.Denominador = Denominador * Den;
return c;
}
public Fraction Resta(Fraction Resta) {
int Num = Resta.getNumerador();
int Den = Resta.getDenominador();
Fraction c = new Fraction();
c.Numerador = Numerador * Den - Num * Denominador;
c.Denominador = Denominador * Den;
return c;
}
public Fraction Multiplicación(Fraction Multiplicación) {
int Num = Multiplicación.getNumerador();
int Den = Multiplicación.getDenominador();
Fraction c = new Fraction();
c.Numerador = Numerador * Num;
c.Denominador = Denominador * Den;
return c;
}
public Fraction División(Fraction División) {
int Num = División.getNumerador();
int Den = División.getDenominador();
Fraction c = new Fraction();
c.Numerador = Numerador * Den;
c.Denominador = Denominador * Num;
return c;
}
public String ImpresiónFraction() {
String Text = Numerador + "/" + Denominador;
return Text;
}
public Float ImpresiónFloat() {
Float Float = new Float(Numerador);
Float Numero = Float.floatValue() / Denominador;
return Numero;
}
}
和这个打印类:
package fracciones;
public class FraccionCalc {
public static void main(String[] args) {
Fraction Una = new Fraction(1, 2);
Fraction Dos = new Fraction(8, 16);
System.out.println(Una.Resta(Dos));
System.out.println(Una.ImpresiónFloat());
}
}
答案 0 :(得分:6)
如果要打印对象,则需要在toString()
类中自行覆盖和定义Fraction
- 否则您只需打印对象哈希码。
例如,以下内容可能类似于您想要的内容:
@Override
public String toString() {
return "Fraction [" + Numerador + "/" + Denominador + "]";
}
答案 1 :(得分:2)
Fraction
需要实现toString()
方法,因为它目前正在使用Object.toString()
返回:
getClass().getName() + '@' + Integer.toHexString(hashCode())
示例实施:
class Fraction
{
@Override public String toString()
{
return Numerador + "/" + Denominador;
}
}
答案 2 :(得分:2)
在Fraction
类
@Override
public String toString() {
return "Numerador: "+Numerador+", "+"Denominador: "+Denominador;
}
PS:在编写变量名称和方法名称时使用 camel case ,并在编写类名时使用 pascal case 。
答案 3 :(得分:1)
您需要覆盖班级中的toString()
方法。 System.out.println()
使用它来获取对象的文本表示。
答案 4 :(得分:1)
您正在打印对象的引用。如果你想获得实际的整数值,你必须提供getter方法,或者你将变量公开并直接通过Una.Num打印出来等等......
答案 5 :(得分:1)
尝试这样做
System.out.println(Una.Resta(Dos).getNumerador() + Una.Resta(Dos).getDenominador());
答案 6 :(得分:1)
Una.Resta()=>返回类Fraction的对象。 System.out.println =>需要一个字符串来打印。所以它必须通过调用Object类的toString()方法将对象强制转换为字符串。因此,您必须在Fraction类中实现此方法以格式化要打印的字符串。
答案 7 :(得分:0)
你的方法返回一个类型Fraction,这将需要实现toString()方法,该方法可以控制对象的字符串表示。
或者,您可以将方法更改为返回值类型为字符串。