@xaocb

Когда создавать переменную?

public class Dog {
    String name;
    public static void main(String[] args) {
        Dog dog1 = new Dog();
        dog1.bark();
        dog1.name = "Bart";
        
        Dog[] myDogs = new Dog[3];
        myDogs[0] = new Dog();
        myDogs[1] = new Dog();
        myDogs[2] = dog1;
        
        myDogs[0].name = "Fred";
        myDogs[1].name = "Marge";
        
        System.out.print("last dog's name is ");
        System.out.println(myDogs[2].name);
        
        int x = 0;
        while (x < myDogs.length) {
            myDogs[x].bark();
            x = x+1;
        }
    }
    public void bark() {
        System.out.println(name + " says Ruff!");
    }
    
    public void eat() { }
    
    public void chaseCat() { }
}

В результате:

null says Ruff!
last dog's name is Bart
Fred says Ruff!
Marge says Ruff!
Bart says Ruff!

1 вопрос: в результате выдает вначале "null says Ruff!" потому что мы сперва вызвали метод dog1.barc(0); и только потом присвоили значение "Bart" ссылочной переменной dog1?

2 вопрос: Строковая переменная String name; создается внутри класса как и показано в примере, чтобы все объекты Dog обладали ей?
public class Dog {
String name;
public static void main(String[] args) {

3 вопрос: если я захочу в результат добавить еще и возраст (точно так же как и имя- через ссылки из массива: myDogs[0].age = x)- то в классе надо создать еще целочисленную переменную int age?
public class Dog {
String name;
int age;
public static void main(String[] args) {
  • Вопрос задан
  • 128 просмотров
Решения вопроса 1
xez
@xez Куратор тега Java
TL Junior Roo
1. Да
2. Да
3. Да.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
03 мая 2024, в 22:18
1000 руб./за проект
03 мая 2024, в 21:57
1000 руб./за проект
03 мая 2024, в 21:47
500 руб./за проект