静态方法问题

时间:2015-04-16 14:55:07

标签: java static-methods

我已经使用了我的代码一段时间了,我被要求执行以下操作:

"名为ModifyPhonePrices()的静态方法。该方法的细节如下:

  • 该方法接受3个参数:一个2维的手机阵列和两个 双重值。该方法还返回一个整数。

  • 该方法将搜索整个阵列,寻找有价格的手机 匹配第二个参数,如果找到,该方法将取代价格 将值作为第3个参数传递的手机。"

我怎样才能创建一个既能查找对象(也就是Cellphone对象)和双值的方法。为什么我不需要两个不同的阵列?

public static double modifyCellPhone ( double x, double y)

那我明白了。困扰我的是在那里包括二维阵列。

为了清楚起见,这是我的代码:

import java.util.Random;

class Cellphone {

private String brand;
private long serialNumber;
private double Price;

public Cellphone (String br, long sN, double Pr)
{
    brand= br;
    serialNumber = sN;
    Price = Pr;
}
 public Cellphone(Cellphone aCellphone)
  {
   this(aCellphone.getbrand(), aCellphone.getserialNumber(),       aCellphone.getPrice());
   }
  public String getbrand()
  {
   return brand;
  } 
  public long getserialNumber()
  {
   return serialNumber;
  }
  public double getPrice()
  {
   return Price;
  }
   public void setBrand(String cellphoneBrand)
   {

     //allows to set the brand of the cellphone
    brand = cellphoneBrand;
    }
    public void setSerialNumber(long SN)
   {
     // Sets the Serial Number of the cellphone

    serialNumber = SN;
   }
   public void setPrice(double Pr)
   {
     // Sets the price of the cellphone

    Price = Pr;
    }
   public String toString()
   {
    return this.brand + ", " + this.serialNumber + " " + this.Price;

    }
    public boolean equals(Cellphone phone)
   {
    if (Price == phone.Price  && brand.equals(phone))
        return true;
    else
        return false;}
    public boolean equals2(Cellphone phone)
   { 
   if (Price == phone.Price)
    return true;
    else
      return false; 
    }
  public boolean equals3(Cellphone phone)
   { 
    if (brand.equals(phone));
    return true;
   }

 }
 public class ModifyCellPhone {
 public static  double ModifyPhonePrices (Cellphone[][], double x, double y)
 {
     return int r;
 }
 public static void main (String[] args)
 {    

     Cellphone[][] cellphoneArr  = new Cellphone[10] [10];
     for (int i=0; i < cellphoneArr.length-1; i++)
       {
         for (int m=0; m < cellphoneArr[i].length; m++)
         {
           if (i % 3 == 0)
            cellphoneArr[i][m]= new Cellphone("Samsung", 111111111 + (2 *   (m+ i) +1), 500.4 + (m+ i));

           else if (i % 3 == 1)
              cellphoneArr[i][m] = new Cellphone("LG", 111111111 + (2 * (m+   i)), 500.6 + (m+ i));

           else if (i % 3 == 2)
              cellphoneArr[i][m] = new Cellphone("HTC", 11111111 + 2^(m+ i), 700 + (m+ i));
          }

         }

     for (int y=9; y<cellphoneArr.length; y++)
        { 
         for (int n=0; n<cellphoneArr[y].length; n++)
             { 
               cellphoneArr[y][n] = new Cellphone(cellphoneArr [y-7][n]); 
              }
         }


     Random generator = new Random();

      for (int i=0; i < cellphoneArr.length ; i++)
       { 
         for (int m=0; m < cellphoneArr[i].length; m++)
          {
            double pick = generator.nextInt(199) + 100;
            cellphoneArr[i][m].setPrice((int)pick);
           }
       }


     for (int p = 0; p < cellphoneArr.length; p++) 
       {

            // Loop and display sub-arrays.
            for (int x = 0; x < cellphoneArr[p].length; x++) 
            {
            System.out.print(cellphoneArr[p][x].getPrice() + "  ");
            }
            System.out.println(" ");
       }



    }
  }

已编辑添加代码

1 个答案:

答案 0 :(得分:1)

这里有一些让您入门的骨干代码:

  

“名为ModifyPhonePrices()的静态方法。此方法的详细信息如下:

     

该方法接受3个参数:一个2维的手机阵列和两个双倍值。该方法还返回一个整数。

static int modifyCellPhone(CellPhone[][] cp, double x, double y)
{
  

该方法将搜索整个阵列,查找价格与第二个参数匹配的任何手机,如果找到,该方法将使用作为第三个参数传递的值替换该手机的价格。“ p>

    // start a nested for loop on the array, and search

}

我不确定为什么你的阵列是二维的。也许你可以对此进行扩展,以便澄清我的答案。