たとえば、Movie オブジェクトのリストを含む MovieDatabase クラスがあります。私のメイン コードでは、MovieDatabase 内のすべてのオブジェクトを初期化します。ただし、この MovieDatabase を別のクラスで呼び出して、ライブラリにアクセスしたいと考えています。どうすればいいですか?
メイン コードに get メソッドを追加して、それを返しますか? または、別の方法があります (たとえば、オブジェクトのリストを保護/公開に変更しますか?)
ありがとう!
コードは、Main、MovieDatabase、および Movie の 3 つの別個のクラスであるはずです。
movieDatabase のインスタンスは Main で初期化されます。構築時に loadMovieList() を呼び出し、テキスト ファイルからリストを作成します。ただし、ムービーにアクセスするために別のクラスから movieDatabase の同じインスタンスを呼び出したいので、ロードを繰り返す必要はありません。
public class Main {
public static void main(String[] args) {
MovieDatabase movieDatabase = new MovieDatabase();
}
public class MovieDatabase {
ArrayList<Movie>movieList = new ArrayList<Movie>();
String fileAddress = "D:/Users/Mine/School/Java/CZ2002_Assignment/src/MovieDatabase/movieDatabase.txt";
public MovieDatabase()
{
numOfMovie=0;
loadMovieList();
}
public int getNumOfMovie() {
return numOfMovie;
}
public void addMovieToList(Movie movie) {
movieList.add(movie);
numOfMovie++;
}
public Movie selMovieByID(int movieID) {
int index=-1;
for (Movie m : movieList) {
index++;
if (m.getMovieID() == movieID)
break;
}
return selMovieByIndex(index);
}
public Movie selMovieByIndex(int index) {
return movieList.get(index);
}
public void loadMovieList()
{
//loads through text file
addMovieToList(new Movie(tempMovie));
System.out.println("Movie Database loaded");
}
public class Movie{
private int movieID;
private String movieName;
private int movieDuration; //in minutes;
private String movieRating; //G; PG; PG13; NC16; M18; R21;
private boolean has3D;
private boolean status;
}