Java. Урок 18. Классы и объекты

Уроки для начинающих   23 Январь 2013  Автор статьи:  

В данном уроке мы наконец — то перейдем к объектно — ориентированному программированию. И начнем изучение столь обширной темы с классов. Как вы могли уже заметить, весь код, который мы пишем находится в том или ином классе. Функции, которые находятся в классах принято называть методами этого класса. Описание любого класса начинается с ключевого слова class, после него указывается имя класса. Для имен классов принято использовать camel — style, где первая буква заглавная, например Test. Переменные, которые объявлены внутри класса, а не внутри функций называют полями. Поля и методы называют членами класса. Поля и методы принято писать в camel — style с маленькой буквы.
Напишем класс User, который будет содержать три поля: FirstName, LastName и Age. Кроме этого добавим метод Say, который будет возвращать некую строку:

1
2
3
4
5
6
7
8
public class User {
    int age;//поле
    String firstName;//поле
    String lastName;//поле
    String say() {//метод
            return "I am "+firstName+" "+lastName;
    }
}

В каждой программе может быть использовано и создано сколько угодно классов. Обычно каждый новый класс помещают в отдельный файл *.java, где * — имя класса. Процесс создания нового класса был рассмотрен нами в предыдущих уроках. Кроме этого, любая программа должна содержать хотя бы один класс, в котором будет описан метод main, так как выполнение любой программы начинается с него.
При написании программ в объектно-ориентированном стиле принято давать читаемые имена классам и его членам. Таким образом использовать поля с названиями a, b, c крайне не желательно. Не бойтесь делать имена длинными, ведь при использовании их в коде среда будет помогать вам их дописывать и вам не придется тратить время на это.
Члены класса должны описывать некоторый объект, в нашем случае это пользователь. Понятное дело, что в жизни пользователя можно описать тысячами различных свойств, но нужно выбрать те, которые нужны именно для вашей задачи.
После того, как вы описали методы и поля класса можно создавать переменные его типа:

1
User currentUser;

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

1
User currentUser = new User();//создание объекта класса

Более подробно о ссылочном типе мы поговорим в следующих уроках, а пока вернемся к нашему классу.
Для того, чтобы обратиться к полям или методам класса используют точку:

1
2
3
currentUser.age = 18;
String name = currentUser.firstName +" "+ currentUser.lastName;
currentUser.say();

Как и любая переменная базового типа переменная типа класса хранит некоторую уникальную информацию, которую можно изменять и читать.
Экземпляр класса называется объектом. Таким образом переменная currentUser хранит объект типа User, который содержит уникальные данные о текущем пользователи, т.е хранит тройку FirstName, LastName и Age.

  • Александр

    подскажите, а где всё-таки практические занятия к урокам?

    • http://cybern.ru/ lordrp

      А они временно удрали=) http://95.31.32.69/ Пока еще тестовый режим.

      • Артур

        Ничего себе временно 8 месяцев назад =(((

        • http://cybern.ru/ lordrp

          Мы постараемся исправить данную ситуацию, для этого я сюда и вернулся после продолжительного отдыха.=)

  • Allexia

    String name = firstName+» «+lastName;
    Это разве верно?? Простите если чего не понимаю, прошу снисхождения и ответа. По мне правильно было бы:
    String name = currentUser.firstName+» «+currentUser.lastName;

    • http://cybern.ru/ lordrp

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

  • Антон

    Я вообще не понял Ваш урок. Примеры составлены отвратительно — указывайте пожалуйста ВЕСЬ код, а не 1 строчку. Не понятно, где его писать и как исполняется.

  • Елизавета

    Мне нравятся Ваши уроки! В этом деле я новичок, до этого программированием занималась только в школе и на первых курсах универа. Пока материал дается легко, все понятно. Пользуюсь только другой средой — NetBeans. Минус, конечно, это отсутствие задач по урокам.

Научиться программировать

  • на Delphi

  • на Java

  • на C++