【问题标题】:Java- issue calling instances of methods?Java-调用方法实例的问题?
【发布时间】:2013-02-02 01:44:50
【问题描述】:

我创建了一个类,该类旨在获取 2 个分数,每个分数都有一个分子和分母,然后将它们相加,输出另一个分数。

当我编译程序时,我遇到了一个问题:

Fraction F3 = new Fraction.add(F1, F2);在main方法中

错误:找不到类型 Fraction$add

如果我将所有内容都设为一个类,程序将运行,但我希望所有方法都严格在 Fraction 类中,并在 UseFraction 类中调用分数。

import java.io.*;
import java.util.*;
import java.text.*;


public final class Fraction
{
    private int numerator, denominator;

    public Fraction (int numerator, int denominator) throws IllegalArgumentException
    {
        this.numerator = numerator;

        if (denominator == 0)
        {
            throw new IllegalArgumentException ();
        }
        this.denominator = denominator;
    }


    //As an instance method
    public void add (Fraction F)
    {
        this.numerator = this.numerator * F.denominator + this.denominator * F.numerator;
        this.denominator = this.numerator * this.denominator;
    }


    //As a static method
    public static Fraction add (Fraction F1, Fraction F2)
    {
        return new Fraction (F1.numerator * F2.denominator + F1.denominator * F2.numerator, F1.numerator);
    }


    //@ Override
    public String toString ()
    {
        return (this.numerator + "/" + this.denominator);
    }

}



public class UseFraction 
{

    public static void main (String str[]) throws IOException
    {
        BufferedReader stdin = new BufferedReader (new InputStreamReader (System.in));

        Fraction F1 = new Fraction (5, 7); // first fraction constructor
        Fraction F2 = new Fraction (3, 8); // second fraction constructor
        Fraction F3 = new Fraction.add (F1, F2); // addition

        System.out.println ("The sum is " + F3); 

    }
}

【问题讨论】:

    标签: java class


    【解决方案1】:

    使用Fraction.add(F1, F2),而不是new Fraction.add

    【讨论】:

      【解决方案2】:
      Fraction F3 = new Fraction.add (F1, F2); // addition
      

      这应该只是:

      Fraction F3 = Fraction.add (F1, F2); // addition
      

      ?

      【讨论】:

        【解决方案3】:
        Fraction F3 = new Fraction.add (F1, F2);
        

        改成:

        Fraction F3 = Fraction.add (F1, F2);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-30
          • 2012-09-27
          • 1970-01-01
          • 1970-01-01
          • 2011-03-27
          相关资源
          最近更新 更多