2015-02-07 2 views
-3
public class Biblioteca { 
    String[] libros = {"Odisea", "Diccionario", "Historia", "Sociales", "Biblia"}; 
    String nombre; 
    Boolean[] disponible = {true, true, true, true, true}; 

    public Biblioteca(String a, String nombre) { 
     int i; 
     for (i = 0; i < libros.length; i++) { 
      if (a == libros[i] && disponible[i] == true) { 
       System.out.println("El libro esta disponible"); 
       disponible[i] = false; 
      } 
     } 
    } 
} 

Вектор disponible[i] изменений, но это не изменится, если я использую метод с другим объектом в главном классе, например,Логика Ошибки Java Затмение

Biblioteca b1 = new Biblioteca("Bible", "Ana"); 
Biblioteca b2 = new Biblioteca("Bible", "Jacke"); 

Проблема заключается произнесите имя и книгу что вы хотите, вы должны увидеть, доступна ли книга, и если это так, книга больше не будет доступна, и вы сохраните имя пользователя в файле. И тот же процесс, чтобы вернуть книгу, если файл существует, вы снова разместили книгу и удалили файл.

Массив из книг содержит пять

libros = {"Odisea", "Diccionario", "Historia", "Sociales", "Biblia"}; 

Кто-то может мне помочь, пожалуйста?

+1

Итак, в чем вопрос? – Aify

+0

@ Удовлетворить вопрос, почему массив «disponible» не изменяется ... Я думаю, – Typo

+0

@Alejandro, используя один объект. – immibis

ответ

1

Поскольку ваш класс объявляет переменные экземпляра, вы создаете только свежие копии этих переменных для каждого объекта. Поэтому состояние вашей книжной библиотеки не поддерживается.

Вам необходимо смоделировать свой класс таким образом, чтобы вы ссылались на одну и ту же структуру данных по всем объектам. Это статические переменные. Сделайте типовую статичность.

Ознакомьтесь с разницей между переменными экземпляра и статическими переменными.

+0

Для OP проверьте шаблон singleton: http://en.wikipedia.org/wiki/Singleton_pattern – Typo

+0

Вы можете мне помочь? Мне нужно создать другой класс. или что? – Alejandro

+0

СПАСИБО ВАС, Я НАКОНЕЦ – Alejandro

Смежные вопросы