Вопросы по книге

144
31 декабря 2020, 20:50

В книге по Java написано:

  1. У меня может быть много методов.

    Ответ: Класс, объект.

    Класс я понимаю, у класса может быть много методов ибо они там находятся, а как у объекта? У объекта потому что это экземпляр класса и методы косвенно к нему тоже относятся? Ну мол если у класса есть, то и у объекта потому что это экземпляр класса?

  2. Я могу вести себя по-разному.

    Ответ: Класс, объект.

    Не очень понимаю как класс может себя вести по разному. Объект вызывает разные методы и в этом и заключается его: вести себя по разному?

  3. Я обитаю в куче.

    Ответ: объект.

    Вот здесь если можно распишите по подробнее пожалуйста. Не очень понимаю почему объект, раз объект то почему тогда не классы?


Заранее благодарю за помощь!

Answer 1
  1. Да. Раз у класса много методов, то и у его экземпляра тоже.

  2. Неоднозначно. Классы, в целом, не могут себя вести никак, и состояния нет у них. А вот у объектов есть.

  3. Не до конца верно. Метаданные классов, к примеру, тоже в куче обитают. Про объекты https://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf. Все экземпляры класса в хипе:

    The Java Virtual Machine has a heap that is shared among all Java Virtual Machinethreads. The heap is the run-time data area from which memory for all classinstances and arrays is allocated.

Answer 2
  1. Вы все правильно поняли. У класса продекларированы методы, а объект является представителем класса, то есть имеет те же методы (public разумеется)
  2. Есть такое понятие, как полиморфизм. Думаю речь идет о том, что у одного класса может быть несколько реализаций. Пример

    public class Demo {
        public static void main(String[] args) {
            Animal animal1 = new Dog();
            Animal animal2 = new Cat();
            animal1.sound();
            animal2.sound();
        }
    }
    class Animal {
        void sound() {
            System.out.println("я животное");
        }
    }
    class Dog extends Animal {
        void sound() {
            System.out.println("Гав");
        }
    }
    class Cat extends Animal {
        void sound() {
            System.out.println("Мяу");
        }
    }
    
  3. Это игра слов. Все объекты находятся в области памяти JVM, которая называется heap (русск. "куча")

READ ALSO
Сравнение массива и ArrayList (примеры)

Сравнение массива и ArrayList (примеры)

Добавление элемента в конец массива

144
SpringBootApplication не работает в полной версии tomcat

SpringBootApplication не работает в полной версии tomcat

выполняю первый guide с сайта Spring: "Building a RESTful Web Service" с https://springio/guides/gs/rest-service/#scratch

107
Передать команду в jsp форме JAVA

Передать команду в jsp форме JAVA

Из заполненой jsp формы, данные передаются на сервер и формируется строка запроса:site/cmd?name=John&surname=Doe&passport=AB123456&phone=098-765-4321&account=1234567890

139
Spring Boot AJAX

Spring Boot AJAX

Делаю небольшой проект на Spring BootПередаю в контроллер дату, сервис считает кол-во дней между ними и отдает json

114