-6

       **NEVERMIND, I CHEATED**

Movie[] movies = new Movie[8];
movies[0] = new Movie("The Godfather", 1972);

映画の変数がたくさんあるとします。movies[] 変数の年に変数 (年などと呼ぶ) を設定するにはどうすればよいでしょうか?

(私はプログラミングのクラスにいて、私の課題はファイルをデバッグすることでした。残っている唯一のエラーは、年変数を映画の年に設定する必要があることです[])

私の完全なコードは次のとおりです。

import javax.swing.*;
public class DebugNine2
{
public static void main(String[] args)
   {
  Movie[] movies = new Movie[8];
  Movie[] year;
  int i;
  String message, entry;
  movies[0] = new Movie("The Godfather", 1972);
  movies[1] = new Movie("The Good, the Bad, and the Ugly", 1966);
  movies[2] = new Movie("Pulp Fiction", 1994);
  movies[3] = new Movie("Shindler's List", 1993);
  movies[4] = new Movie("Casablanca", 1942);
  movies[5] = new Movie("Wizard of Oz", 1939);
  movies[6] = new Movie("Citizen Kane", 1941);
  movies[7] = new Movie("Some Like It Hot", 1959);
  entry = JOptionPane.showInputDialog(null,
    "Sort Movies by\n(N)ame, or (Y)ear");
  if(entry.equals("N"))
  {
     nameSort(movies);
     message = "Sorted by Name\n";
  }
  else
  {
      year=movies;
      yearSort(year);
      message = "Sorted by Year\n";
  }   
  display(movies, message);
  //System.out.println(movies+"\n"+message);
}
public static void nameSort(Movie[] array)
{
  int a, b;
  int highSub = array.length - 1;
  for(a = 0; a < highSub; ++a)
  {
     for(b = 0; b < highSub; ++b)
 {
         String first = array[b].getName();
         String second = array[b + 1].getName();
         if(first.compareTo(second) > 0)
     {

        Movie temp = array[b];
        array[b] = array[b + 1];
        array[b + 1] = temp;
     }
  }
   }
}
public static void yearSort(Movie[] array)
{
    int a, b;
    Movie temp;
    int highSub = array.length;
    for (a = 0; a < highSub; ++a)
    {
       for (b = 0; b < highSub; ++b)
       if (array[b].getYear() > array[b + 1].getYear())
       {
          temp = array[b];
          array[b] = array[b + 1];
          array[b + 1] = temp;
       }
    }
 }
 public static void display(Movie[] s,  String msg)
 {
    for (int i = 0; i < 8; i++)
       msg = msg + s[i].getName() + ", " + s[i].getYear() + "\n";
    JOptionPane.showMessageDialog(null, msg);
 }
}

さらに、コードを含む Movie.java というファイルがあります。

public class Movie
{
private String name;
private int year;
Movie(String s, int y)
{
  name = s;
  year = y;
}
public String getName()
{ 
  return name;
}
public int getYear()
{
  return year;
}
}
4

2 に答える 2

1

Movie クラスには String name フィールドと int year フィールドを含めることができます。setter メソッドと getter メソッドを取得します。new Movie(String name , int year); のようなコンストラクターでそれらを初期化します。

于 2013-04-16T16:53:22.667 に答える
0

変数は非公開であるため、映画オブジェクトの年を設定することはできません。値を変更するパブリック メソッドを作成するか、変数自体をパブリックにする必要があります。

于 2013-04-16T16:52:42.600 に答える