Как я могу связать объект с другим объектом в Java?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как я могу связать объект с другим объектом в Java?

Сообщение Anonymous »

Я создаю приложение для кинотеатра на Java, и мне нужна помощь в связывании объектов. Я создал три класса: «Человек», «Фильм» и «Дополнительно».
В настоящее время у меня есть сценарий, в котором человек (например, Джон или Сэм) может добавить фильм (например, «Бойцовский клуб»). в свой список фильмов. Я хочу, чтобы каждый человек мог выбрать разные дополнения для одного и того же фильма. Однако когда я добавляю к фильму дополнительный контент (например, «Попкорн»), он добавляется для всех людей, которые смотрят этот фильм, а не только для отдельного человека.
Вот пример:
Джон хочет посмотреть «Бойцовский клуб» и добавить дополнительный «Попкорн».
Сэм хочет посмотреть тот же фильм, но предпочитает дополнительный «Выпивку».
Проблема в том, что когда я добавляю «Попкорн», в фильм, он добавляется в фильм как для Джона, так и для Сэма, а не только для Джона.
Вот мой код:
Человек:

Код: Выделить всё

public class Person {
private String name;
private int attendeesCount;
private List movies;

public Person(String name, int attendeesCount) {
this.name = name;
this.attendeesCount = attendeesCount;
this.movies = new ArrayList();
}

public void addMovie(Movie movie) {
movies.add(movie);
}
}
Фильм:

Код: Выделить всё

public class Movie {
private String title, description;
private int price, duration;
private List extras = new ArrayList();

private Movie(String title, int price, String description, int duration) {
this.title = title;
this.price = price;
this.description = description;
this.duration = duration;
}

public void addExtra(Extra extra) {
this.extras.add(extra);
}
}
Дополнительно:

Код: Выделить всё

public class Extra {
private String name;
private int price;

public Extra(String name, int price) {
this.name = name;
this.price= price;
}
}
Основное:

Код: Выделить всё

public class TestTheatre {
public static void main(String[] args) {
Movie fightClub = new Movie("Fight Club", 1000, null, 90);
Movie theMatrix = new Movie("The Matrix", 2000, null, 80);

Extra popcorn = new Extra("Popcorn", 500);
Extra drink = new Extra("Drink", 400);

fightClub.addExtra(popcorn); // Here is where I am adding the extra to the movie

Person john = new Person("John", 2);
Person sam = new Person("Sam", 3);

john.addMovie(fightClub);
john.addMovie(theMatrix);

sam.addMovie(fightClub);
}
}
Я понимаю, что проблема возникает из-за того, что я добавляю дополнения к фильму по всему миру, в результате чего дополнения применяются ко всем людям, которые смотрят этот фильм, однако я просто не могу понять, как мне это сделать. может решить это. Любая помощь будет принята с благодарностью.

Подробнее здесь: https://stackoverflow.com/questions/793 ... ct-in-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»