2016-04-14 5 views
-1

В настоящее время я работаю над настольной игры с использованием Java, и я получил вопрос о том, как именно ООП работает в этой ситуации:мне нужна помощь понимание ООП

Прямо сейчас, у меня есть два объекта:

  1. Игровое объект
  2. Win объект, который принимает в игре объект доска в его конструктор

Оба объекта были инициализируется в начале моего основного метода.

Объект игровой доски будет активным, все части будут перемещаться назад и вперед и быть уничтожены.

Каждый раз, когда ход сделан, объект Win проверяет, выиграл ли текущий игрок или нет.

Теперь вопрос:

Будет ли плата объект, который передается в объект Win в начале обновления в качестве активного объекта платы в основном методе?

public static void main(String[] args){ 

    Matrix m = new Matrix(); 
    Win w = new Win(m); 
+4

Ну, я думаю, что простой ответ на ваш вопрос: попробуйте: P. – 3kings

+2

Да, он обновится. Не уверен, почему вам нужен объект Win. Я думаю, что в этом случае было бы лучше спросить совета, есть ли победитель или, может быть, кто это, а не такой подход. Возможно, я ошибаюсь. – Rig

+0

Забавно, как я что-то публикую, и через несколько секунд я думаю о способе самостоятельно ответить на вопрос и на самом деле ответить на него. Но спасибо вам, ребята, в любом случае! –

ответ

1

Это даже не вопрос ООП, это основной Java. потому что java хранит ссылки на объекты в памяти (указатели, поэтому он называется NullPointer), если у вас есть объекты A и B, относящиеся к одному месту памяти, и вы обновляете значение A, значение B-s также будет обновляться.

При копировании объекта в другой (объект A = B) копируется только адрес памяти.

+0

Спасибо за ответ! Это объяснение было очень полезным. Но я думаю, что меня все еще немного смущает разница между базовым языком Java и ООП. Есть ли большая разница между этими двумя? Я думал, что сама Java является объектно-ориентированным языком программирования. –

+0

@ JasonJ.Y.Kim Java - это просто объектно-ориентированный язык программирования. Вы можете делать ООП на языках C++ или Python или на многих других языках. –

+0

@Jason J.Y. Ким Когда я говорю «базовая ява», я говорю о базовом языке, без каких-либо причудливых вещей, таких как встроенные библиотеки или собственный ООП. Вы можете прочитать это как «Этот вопрос не относится непосредственно к функциональности OOP для Java» –

-1

Win не является объектом! win - это действие a.k.a метод! Некоторые объекты для вашей игры:

  • игры
  • Совет
  • игрока
  • Консоль
+0

Ну, эм ... технически, это экземпляр объекта класса Win. –

+0

Хм? Вы хотите, чтобы «выиграть должен быть метод»? Кроме того, консоль? Зачем? Просто почему? –

+0

Конечно, вы можете создать класс под названием «Прогулка» и создать его в объекте, но с точки зрения ООП объекты не являются действиями! –