-3

これはクラス サークルと呼ばれる私の最初のクラスです。

public class circle
{
   //circle class begins
   //declaring variables 
   public double circle1;
   public double circle2;
   public double circle3;
   public double Xvalue;
   public double Yvalue;
   public double radius;
   private double area;

   //Constructor
   public circle(int x,int y,int r)
   {//constructor begins
       Xvalue = x;
       Yvalue = y;
       radius = r;
   }//constructor ends

   //method that gets the area of a circle       
   public double getArea ()
   {//method getArea begins

      area = (3.14*(this.radius * this.radius));
      return area;
   }//getArea ends

   public static smaller (circle other)
   {
      if (this.area > other.area)
      {
         return other;
      else 
      {
         return this;
      }

      //I'm not sure what to return here. it gives me an error( I want to return a circle)
    }
}//class ends
}

これは私のテスタークラスです:

public class tester
{//tester begins
  public static void main(String args [])
  {

        circle circle1 = new circle(4,9,4);
        circle circle2 = new circle(4,7,6);
        c3 = c1.area(c2);

        System.out.println(circle1.getArea());
        //System.out.println(
  }
}//class tester ends
4

3 に答える 3

2

smallerメソッドには戻り値の型が必要です。また、キーワードはメソッドthisでは使用できません。staticつまり、メソッドは のインスタンスにアクセスできませんCircle。これは、メソッド名が意味することを考えると理にかなっています。現在のインスタンスと渡された別smallerのインスタンスを比較します。Circle

public Circle smaller(circle other) {
   if (this.area > other.area) {
    return other;
   } else {
    return this;
   }
}

使用するには:

Circle smallerCircle = circle1.smaller(circle2);

Aside:Java 命名規則は、クラス名が大文字で始まることを示していますCircle

于 2013-04-18T01:01:04.763 に答える