Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有实例方法的Java构造函数_Java_Oop - Fatal编程技术网

带有实例方法的Java构造函数

带有实例方法的Java构造函数,java,oop,Java,Oop,在这里,我有一些代码,应该为我的分数类创建一个构造函数和一些getter。我想知道,是否有可能在一个getter中同时获得这两个参数?因为我应该只使用一种方法来获得两种结果 例如“1/2和3/5” import java.lang.reflect.*; import java.lang.annotation.*; import java.util.*; import java.time.*; // Please do not change or remove this line. class

在这里,我有一些代码,应该为我的分数类创建一个构造函数和一些getter。我想知道,是否有可能在一个getter中同时获得这两个参数?因为我应该只使用一种方法来获得两种结果

例如“1/2和3/5”

import java.lang.reflect.*; import java.lang.annotation.*; import java.util.*; import java.time.*; // Please do not change or remove this line.

class Fraction {
    private Integer nominator;
    private Integer denominator;


    public Fraction(Integer nominator, Integer denominator){
        this.nominator = nominator;
        this.denominator = denominator;
    }

    public Integer getNominator() {

        return nominator;
    }

    public Integer getDenominator() {

        return denominator;
    }


}

class Main {


    public static Fraction createFraction(Integer nominator, Integer denominator) {
        return new Fraction(nominator, denominator);
    }

    public static void main(String[] arguments) {
        final Fraction HALF = createFraction(1, 2);
        final Fraction THREE_FIFTH = createFraction(3, 5);
        System.out.println((HALF));
        System.out.println((THREE_FIFTH));

    }
    public static String toString(Fraction fraction) {
        return fraction.getDenominator() + "/" + fraction.getNominator();
    }

}

创建一个小类并返回它或使用数组 举个例子

class Fraction1{
    private int nominator;
    private int denominator;
}
public Fraction1 getDenominator() {
    Fraction1 fr=new Fraction1();
    fr.nominator=this.nominator;
    fr.denominator=this.denominator;
    return fr;
}

创建一个小类并返回它或使用数组 举个例子

class Fraction1{
    private int nominator;
    private int denominator;
}
public Fraction1 getDenominator() {
    Fraction1 fr=new Fraction1();
    fr.nominator=this.nominator;
    fr.denominator=this.denominator;
    return fr;
}

首先,很好,您没有setter,并且您的类在功能上是不可变的——这是一个好的开始

我会有点抗拒提名人和分母。我敢肯定,你最终将不得不这样做,但要尽量避免

例如,如果你将两个分数相乘,你只需要一个分数。multiply(Fraction)方法返回一个新的分数,不需要getter。您可以在Fraction类中对命名符/分母执行任何操作

至于您是否真的需要获取值(使用一种方法):

  • 返回一个浮点数(在内部进行除法)
  • 返回一个字符串(与toString方法类似,但在fraction类中)
  • 对于15/2的值,字符串也可能看起来像“7r1”
  • 你可以返回一个数组,但我不推荐,神秘的返回值并不可怕
  • 我也不推荐使用子对象,它必须有两个getter,这样您就不会真正解决任何问题,只需将它踢下线
  • 我会考虑GigPrimeRealEvo()和GETReMaRund(),但它们是两种方法——它们仍然是一种体面的方法。<李>
首先,很好,您没有setter,并且您的类在功能上是不可变的——这是一个好的开始

我会有点抗拒提名人和分母。我敢肯定,你最终将不得不这样做,但要尽量避免

例如,如果你将两个分数相乘,你只需要一个分数。multiply(Fraction)方法返回一个新的分数,不需要getter。您可以在Fraction类中对命名符/分母执行任何操作

至于您是否真的需要获取值(使用一种方法):

  • 返回一个浮点数(在内部进行除法)
  • 返回一个字符串(与toString方法类似,但在fraction类中)
  • 对于15/2的值,字符串也可能看起来像“7r1”
  • 你可以返回一个数组,但我不推荐,神秘的返回值并不可怕
  • 我也不推荐使用子对象,它必须有两个getter,这样您就不会真正解决任何问题,只需将它踢下线
  • 我会考虑GigPrimeRealEvo()和GETReMaRund(),但它们是两种方法——它们仍然是一种体面的方法。<李>
将您的
toString()
Main
移动到
Fraction
,然后您就拥有了所需的内容。编辑:而且,这个术语是分子,而不是命名器。你的变量名
nominator
毫无意义。变量名应该代表变量的用途,但是
命名器
不是分数形式。您可能想要
分子
。将
toString()
Main
移动到
分数
,然后您就拥有了所需的内容。编辑:而且,这个术语是分子,而不是命名器。你的变量名
nominator
毫无意义。变量名应该代表变量的用途,但是
命名器
不是分数形式。您可能想要
分子