Объекты и классы Java
Как объектно-ориентированный язык программирования, Java поддерживает следующие основные концепции:
1, Класс:
- Шаблон, который определяет объекты, включая атрибуты и методы.
- Пример:
public class Car { ... }
2. Объект:
- Экземпляр класса, обладающий состоянием и поведением.
- Пример:
Car myCar = new Car();
3. Наследование:
- Класс может наследовать атрибуты и методы другого класса.
- Пример:
public class Dog extends Animal { ... }
4. Инкапсуляция:
- Сделайте состояние объекта (поля) приватным, а доступ к нему осуществляйте через публичные методы.
- Пример:
private String name; public String getName() { return name; }
5. Полиморфизм:
- Объекты могут появляться в нескольких формах, что в основном реализуется через перегрузку методов и переопределение методов.
- Пример:
- Перегрузка методов:
public int add(int a, int b) { ... }иpublic double add(double a, double b) { ... } - Переопределение методов:
@Override public void makeSound() { System.out.println("Meow"); }
- Перегрузка методов:
6. Абстракция:
- Используйте абстрактные классы и интерфейсы для определения методов, которые должны быть реализованы, без предоставления конкретных реализаций.
- Пример:
- Абстрактный класс:
public abstract class Shape { abstract void draw(); } - Интерфейс:
public interface Animal { void eat(); }
- Абстрактный класс:
7. Интерфейс:
- Определяет методы, которые класс должен реализовать, поддерживая множественное наследование.
- Пример:
public interface Drivable { void drive(); }
8. Метод:
- Определяет поведение класса; функции, содержащиеся в классе.
- Пример:
public void displayInfo() { System.out.println("Info"); }
9. Перегрузка методов:
- Один и тот же класс может иметь несколько методов с одинаковым именем, но разными параметрами.
- Пример:
public class MathUtils { public int add(int a, int b) { return a + b; } public double add(double a, double b) { return a + b; } }
В этом разделе мы сосредоточимся на понятиях объектов и классов.
- Объект: объект — это экземпляр класса (объект — это не про поиск девушки), и у него есть состояние и поведение.
- Класс: класс — это шаблон, который описывает поведение и состояние типа объектов.
На рисунке нижемальчик、девочка— этокласс, и каждый конкретный человек являетсяобъект:

На рисунке нижеавтомобиль— этокласс, и каждый конкретный автомобиль — этоавтомобильобъекткласса, и объект содержит цвет, марку, название автомобиля и т. д.

Объекты в Java
Теперь давайте глубже разберёмся, что такое объект. Посмотрите на реальный мир вокруг вас; вы найдёте множество объектов вокруг, таких как машины, собаки, люди и так далее. Все эти объекты имеют собственное состояние и поведение.
Возьмём собаку в качестве примера: её состояние включает имя, породу и цвет, а поведение включает лай, виляние хвостом и бег.
Сравнивая объекты реального мира с программными объектами, они очень похожи.
Программные объекты также имеют состояние и поведение. Состояние программного объекта — это его атрибуты, а поведение отражается через методы.
В разработке программного обеспечения методы управляют изменениями внутреннего состояния объектов, а взаимный вызов объектов также осуществляется через методы.
Классы в Java
Класс можно рассматривать как шаблон для создания объектов Java.

Создайте простой класс, как показано на рисунке выше, чтобы понять определение класса в Java:
Класс может содержать следующие типы переменных:
- Локальные переменные: Переменные, определённые в методах, конструкторах или блоках операторов, называются локальными переменными. Объявление и инициализация переменной происходят в методе, и когда метод завершается, переменная автоматически уничтожается.
- Переменные-члены: Переменные-члены — это переменные, определённые в классе, но вне тел методов. Такие переменные создаются при создании объекта. К переменным-членам могут обращаться методы, конструкторы и блоки операторов конкретного класса.
- Переменные класса: Переменные класса также объявляются в классе, вне тел методов, но они должны быть объявлены как static.
Класс может иметь несколько методов. В примере выше eat(), run(), sleep() и name() — все они являются методами класса Dog.
Методы-конструкторы
У каждого класса есть конструктор. Если для класса конструктор не определён явно, компилятор Java предоставит для этого класса конструктор по умолчанию.
При создании объекта должен быть вызван как минимум один конструктор. Имя конструктора должно совпадать с именем класса, и класс может иметь несколько конструкторов.
Ниже приведён пример конструктора:
Создание объектов
Объекты создаются из классов. В Java для создания нового объекта используется ключевое слово new. Создание объекта включает следующие три шага:
- Объявление: Объявите объект, включая имя объекта и тип объекта.
- Создание экземпляра: Используйте ключевое слово new для создания объекта.
- Инициализация: Когда объект создаётся с помощью new, вызывается конструктор для инициализации объекта.
Ниже приведён пример создания объекта:
Скомпилируйте и запустите приведённую выше программу, и она выведет следующий результат:
小狗的名字是 : tommy
Доступ к переменным экземпляра и методам
Доступ к переменным-членам и методам-членам через созданный объект, как показано ниже:
Использование типа Object для объявления переменной позволяет на этапе компиляции обращаться только к методам и свойствам класса Object, но во время выполнения можно привести её к конкретному типу для преобразования типа, чтобы получить доступ к методам и свойствам этого конкретного типа.
Пример
В следующем примере показано, как получить доступ к переменным экземпляра и вызывать методы-члены:
Код файла Puppy.java:
Скомпилируйте и запустите вышеприведённую программу, получив следующий результат:
小狗的名字是 : tommy 小狗的年龄为 : 2 变量值 : 2
Правила объявления исходного файла
В заключительной части этого раздела мы изучим правила объявления исходных файлов. Когда в исходном файле определено несколько классов, а также присутствуют операторы import и package, следует обратить особое внимание на эти правила.
- Исходный файл может содержать только один public-класс
- Исходный файл может содержать несколько классов, не являющихся public
- Имя исходного файла должно совпадать с именем public-класса. Например, если public-класс в исходном файле называется Employee, то исходный файл должен называться Employee.java.
- Если класс определён в пакете, то оператор package должен быть первой строкой исходного файла.
- Если исходный файл содержит операторы import, они должны располагаться между оператором package и определением класса. Если оператора package нет, операторы import должны находиться в самом начале исходного файла.
- Операторы import и оператор package действуют для всех классов, определённых в исходном файле. В одном и том же исходном файле нельзя задавать разным классам разные объявления package.
Классы имеют несколько уровней доступа, а также делятся на разные типы: абстрактные классы, final-классы и так далее. Они будут рассмотрены в главе «Управление доступом».
Помимо перечисленных выше типов, в Java также есть некоторые специальные классы, например:Внутренние классы、Анонимные классы。
Пакеты Java
Пакеты в основном используются для классификации классов и интерфейсов. При разработке Java-программ вы можете написать сотни или тысячи классов, поэтому необходимо классифицировать классы и интерфейсы.
Инструкции import
В Java, если указано полное уточнённое имя, включающее имя пакета и имя класса, компилятор Java может легко найти исходный код или класс. Инструкция import используется для указания подходящего пути, чтобы компилятор мог найти определённый класс.
Например, следующая командная строка даст компилятору указание загрузить все классы по пути java_installation/java/io.
import java.io.*;
Простой пример
В этом примере мы создаём два класса:EmployeeиEmployeeTest。
Сначала откройте редактор кода, вставьте в него следующий код и сохраните файл какEmployee.java。
Класс Employee имеет четыре переменные-члены: name, age, designation и salary. Этот класс явно объявляет метод-конструктор, который имеет только один параметр.
Код файла Employee.java:
Все Java-программы начинают выполнение сmain-метода. Чтобы запустить эту программу, необходимо включить метод main и создать объект-экземпляр.
Ниже приведён класс EmployeeTest, который создаёт два экземпляра класса Employee и вызывает методы для установки значений переменных.
Сохраните следующий код в файле EmployeeTest.java.
Код файла EmployeeTest.java:
Скомпилируйте эти два файла и запустите класс EmployeeTest, и вы увидите следующий результат:
$ javac EmployeeTest.java Employee.java $ java EmployeeTest 名字:EXAMPLE1 年龄:26 职位:高级程序员 薪水:1000.0 名字:EXAMPLE2 年龄:21 职位:Example程序员 薪水:500.0Другие расширения