2015-01-20 14 views
0

Я новичок в java и еще многому научился. У меня встроенный опыт программирования C, но совершенно новый для объектно-ориентированного программирования.Динамическая переменная класса JAVA?

У меня есть следующее, что мне нужно понять. Когда вы создаете класс в Java, это чертеж объекта, который вы собираетесь создавать. И скажите, что у меня есть GUI с кнопкой, которая создает новый велосипед после того, как я нажал кнопку создания нового велосипеда, вы вводите все переменные экземпляра, которые он запрашивает в вашем графическом интерфейсе и т. Д.

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

Так что в вашем исполнителе действий, когда нажата полная кнопка, фрагмент кода, например Велосипед велосипед = новый велосипед(); должен работать. Но велосипед статичен, и вы никогда не знаете, сколько там будет велосипеда. Итак, как можно сделать эталонную переменную динамической или действовать как ее динамика?

Извините, позвольте мне попробовать и прояснить следующее.

public void actionPerformed(ActionEvent e) { 
      Bicycle bike = new Bicycle(); 
    } 

Это действие, которое выполняется при нажатии кнопки Jbutton. Это создаст объект с именем «велосипед». Но что произойдет, когда кнопка снова нажата? Будет ли она просто переопределять предыдущий объект с именем bike?

И вы не знаете, сколько объектов типа велосипеда пользователь создаст, нажав кнопку. Так что мне было интересно, если что-то вроде массива можно использовать следующим образом

String bike[] = {"bike1","bike2,"bike3"}; 
for(int i=0;i<3;i++){ 
    Bicycle bike[i] = new Bicycle(); 
} 

или использовать «список массива», потому что в конечном счете, вы не знаете, сколько объект будет создан?

+0

'bike' не статичен или что-то в этом роде, и JVM делает гораздо больше вещей динамически, чем вы могли бы привыкнуть. –

+0

Не могли бы вы пояснить, что вы подразумеваете под разницей между статической и динамической ссылкой? – bhspencer

+0

Какое динамическое поведение вы ищете из ссылочной переменной? Кроме того, объект 'bike' не является статическим, это будет переменная экземпляра, если вы не имеете в виду, что он является« статическим »в том смысле, что он не может использовать другой тип объекта.Если вы можете объяснить больше, это может помочь. Наконец, если вместо 'Bicycle bike = new Bicycle()' вы использовали 'Object bike = new Bicycle() ', это было бы более общим. – mnd

ответ

0

Если вы хотите переменную, которая может содержать ссылки на несколько Bicycle случаях, вы можете использовать Collection такие как List:

List<Bicycle> bikes = new ArrayList<Bicycle>(); 

Затем, каждый раз, когда создается новый экземпляр велосипеда, вы добавляете его к Список:

Bicycle bike = new Bicycle(); 
bikes.add (bike); 
1

Так как может задающее быть динамическим или действовать, как его динамика?

Вот как эта ссылка ведет себя по умолчанию. В них нет ничего статического. Даже если вы используете поле static, оно не является статичным в том смысле, что C его поймет. Он не существует, пока класс не загружен, и он может существовать несколько раз, если класс загружается в разные загрузчики классов. Это может даже исчезнуть, если загрузчик классов разгружен.

Если ваше поле не static, оно является еще более динамичным, если это локальная переменная.

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