Небольшой разбор первого задания

При прочтении просьба не забывать, что я всего лишь кот :3

Небольшой разбор первого задания Java, Задача, Решение, Длиннопост

Объявляем класс:


class Cat {
}

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


private String name, colour;
private double weight, length, height, strength;

Конструктор по умолчанию, присваивающий стандартные значения переменным класса:


public Cat () {
name = "NoName";
colour = "Black";
weight = 6.5;
length = 1.0;
height = 0.4;
strength = 0.5 * weight * length * height;
}

Конструктор, через который мы сможем в программе присвоить свои значения переменным класса:


public Cat (String name, String colour, double weight, double length, double height)
{
this.name = name;
this.colour = colour;
this.weight = weight;
this.length = length;
this.height = height;
strength = 0.5*weight * length * height;
}

Так как имена передаваемых параметров в конструкторе совпадают с переменными класса, используется конструкция this.переменная = переменная.


Вводится функция класса, позволяющая получить имя кота. Это необходимо, так как переменные класса имеют модификатор private и доступа к ним извне нет.


public String getName () {
return name;
}

И проверка класса на работоспособность:


public static void main(String[] args)

{
Cat cat1 = new Cat();
System.out.println(cat1.getName());
Cat cat2 = new Cat("Salem", "Black", 6.5, 1.0, 0.4);
System.out.println(cat2.getName());
}

Так как классы имеют сложную структуру необходимо использовать ключевое слово new для того, чтобы для него была выделена память программой.


#comment_67980312


Программа выводит следующее:


NoName
Salem

Вручите мне мой приз, пожалуйста.)

Небольшой разбор первого задания Java, Задача, Решение, Длиннопост

Задачки для изучающих Java

43 поста1.8K подписчик

Добавить пост

Правила сообщества

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

Больше позитива, ведь программирование - это весело)

Автор поста оценил этот комментарий

>>можно изменять извне только с помощью специального интерфейса.

этот интерфейс называется связкой геттеров и сеттеров, их явно не хватает в этой программе.

рефлекшеном можно еще вытащить, кстати.


>>System.out.println(cat1.getName());

лучше переопределить метод toString()


Вообще, вместо такого огромного конструктора удобнее использовать паттерн Builder для создания объекта.

раскрыть ветку