Здравствуйте!
Урок 8.4 (Объекты в Java).
1. На одной странице (файле) можно создавать только один класс?
2. В чём фишка данного объекта? Вроде всё, что тут ест можно было сделать без создания массива типа Класса. Вроде можно было создать массив типа int. Никак не пойму в чём суть объекта.
3. Как инициализировать элементы массива Solution[] data ? В данном примере мы инициализируем четыре переменные, но элементы массива не трогаем.
3. Если переменные static, то лучше делать так: Solution.x Вместо data[i].x ??
Но реально работает правильно в обоих вариантах, так ?? Когда я создавать переменные не в том же файле, то работали оба варианта Solution.x и data[i].x и когда переменные были static и не static. В том же файле (классе) Static работал только с обоими вариантами, а не static только с вариантом Solution.x. Так и должно быть?
class Solution
{
int x;
int y;
int color;
String a = "Hello!";
public static void main(String[] args)
{
Solution[] data = new Solution[10];
for (int i = 0; i < data.length; i++) {
data[i] = new Solution();
data[i].x = i + 3; // Если переменные static, то лучше делать так: Solution.x Вместо data[i].x ??
data[i].y = i + 8; // Но реально работает правильно в обоих вариантах, так ??
data[i].color = i + 12;
System.out.println("Цвет точки x=" + data[i].x + ", y=" + data[i].y + " " + data[i].color + " " + data[i].a);
}
}
}
Спасибо большое!
Boris
23 уровень
Урок 8.4 (Объекты в Java).
Обсуждается
data[0].xиdata[1].x- это две разные разницы. 2. На одной странице в одном файле ты можешь создавать сколько угодно классов. Разносить их по разным файлам нужно лишь для структурирования архитектуры / проекта / приложения / для удобства. 3. Ты создаёшь массив data из десяти элементов, каждый из которых - объект класса Solution (Solution[] data = new Solution[10];). 4. В цикле ты инициализируешь этот массив, объявляя (создавая) его элементы (data[i] = new Solution();) и инициализируешь сами объекты - элементы массива, задавая полям этих новых объектов начальные значения (data[i].x = i + 3;). Кроме поля String a, который инициализируется автоматически дефолтным значением "Hello!". 5. Если переменные БЫЛИ БЫ статические, то Solution.x, data[0].x и data[1].x были бы одним и тем же. К статической переменной можно обратиться через класс (Solution.x), а можно через любой объект класса (data[0].x и data[1].x). 6. Если переменные НЕ статические, то обращение к Solution.x - по моему разумению - вызовет ошибку.