Учебник по Java (Серия из 11 частей)
Вступление
Объектно-ориентированное программирование (ООП) – это парадигма программирования, основанная на реальных сущностях и их поведении. Сущности могут быть реальными сущностями, такими как автомобиль, студент, или абстрактными сущностями, такими как курс, пройденный в колледже или университете.
Реализация объектно-ориентированного программирования может быть выполнена с помощью класса, представляющего реальную сущность, которая включает характеристику сущности, определенную как поле, и поведение сущности, определенное как метод или функция в классе.
Создайте класс и объект
Класс представляет собой схему объекта. Это основной синтаксис для создания класса в Java.
modifier class class_name {
// define some fields..
// define some methods..
}
В этом примере создается класс с именем Студент .
// create a class called Student
public class Student {
String name;
String course;
// create a method
public void learn() {
System.out.println("Student name: " + name);
System.out.println("Learning " + course);
}
}
Лучше всего создать класс в отдельном файле.
Основываясь на приведенном выше коде, класс называется Студент создается с полями, называемыми имя и конечно . Поведение представлено в виде метода с именем learn() , к которому можно получить доступ, если создан объект из класса Student .
Соглашение об именовании класса на Java использует первый верхний регистр (например, Студент , Электромобиль )
В этом коде создается объект из Ученика класса.
public class MyApp {
public static void main(String[] args) {
// instantiate an object from student class
Student student = new Student();
// assign a value into the fields
student.name = "Joe";
student.course = "Algorithm and Data Structures";
// call the method
student.learn();
}
}
Выход
Student name: Joe Learning Algorithm and Data Structures
Основываясь на приведенном выше коде, объект создается с использованием ключевого слова new , за которым следует конструктор по умолчанию без параметра. конструктор ( Студент() ) используется для создания объекта из определенного класса, в данном случае класса Студент . Затем метод learn() может быть вызван из объекта student .
Конструктор
Конструктор – это специальная функция, которая используется для создания объекта из класса. В предыдущем коде использовался конструктор по умолчанию. Чтобы определить пользовательский конструктор, используйте этот базовый синтаксис.
public ClassName(params) {
// assign the class fields from params
}
В этом примере создается конструктор внутри класса Student .
// create a class called Student
public class Student {
String name;
String course;
// create a constructor
public Student(String name, String course) {
this.name = name;
this.course = course;
}
// create a method
public void learn() {
System.out.println("Student name: " + name);
System.out.println("Learning " + course);
}
}
Основываясь на приведенном выше коде, ключевое слово this относится к собственному классу it. Например, this.name относится к полю имя , определенному в Ученике классе.
Если конструктор определен в классе, конструктор по умолчанию недоступен. Чтобы убедиться, что конструктор по умолчанию доступен, добавьте конструктор по умолчанию внутри класса.
// create a class called Student
public class Student {
String name;
String course;
// create a constructor
public Student(String name, String course) {
this.name = name;
this.course = course;
}
// create a default constructor
public Student() {
}
// create a method
public void learn() {
System.out.println("Student name: " + name);
System.out.println("Learning " + course);
}
}
В этом примере объект из Student класса создается с помощью пользовательского конструктора.
public class MyApp {
public static void main(String[] args) {
// instantiate an object with custom constructor
Student student = new Student("Joe","Algorithm and Data Structures");
// call the method
student.learn();
}
}
Выход
Student name: Joe Learning Algorithm and Data Structures
Основываясь на приведенном выше коде, имя и курс поля назначаются с помощью конструктора, который уже определен внутри Ученика класса.
Инкапсуляция
Инкапсуляция – это механизм защиты значения поля от прямого доступа. Инкапсуляция полезна, чтобы избежать несоответствия в значении поля. По сути, модификатор private добавляется для реализации инкапсуляции в поле внутри класса.
// create a class called Student
public class Student {
// implement encapsulation in fields
private String name;
private String course;
// create a constructor
public Student(String name, String course) {
this.name = name;
this.course = course;
}
// create a default constructor
public Student() {
}
// create a method
public void learn() {
System.out.println("Learning " + course);
}
}
Чтобы изменить или получить значение из полей внутри класса, используйте установщик для изменения значения поля и получатель для извлечения значения поля.
// create a class called Student
public class Student {
// implement encapsulation in fields
private String name;
private String course;
// create a constructor
public Student(String name, String course) {
this.name = name;
this.course = course;
}
// create a default constructor
public Student() {
}
// create a method
public void learn() {
System.out.println("Learning " + course);
}
// using getter
public String getName() {
return name;
}
// using setter
public void setName(String name) {
this.name = name;
}
public String getCourse() {
return course;
}
public void setCourse(String course) {
this.course = course;
}
}
Это пример кода после добавления механизма инкапсуляции в Ученик класс.
public class MyApp {
public static void main(String[] args) {
// instantiate an object with custom constructor
Student student = new Student("Joe","Algorithm and Data Structures");
// change the student's name
student.setName("John");
// get the student's name and course
System.out.println("Student's name: " + student.getName());
System.out.println("Student's course: " + student.getCourse());
// call the method
student.learn();
}
}
Выход
Student's name: John Student's course: Algorithm and Data Structures Learning Algorithm and Data Structures
Основываясь на приведенном выше коде, set Name() используется для изменения значения имени. Методы получения, включая getName() и get Course() , используются для получения значения из name и курс поля. Метод learn() также доступен, если создан объект из класса Student .
Дополнительное ключевое слово и метод toString()
Ключевое слово instanceof можно использовать для проверки типа класса из созданного объекта. В этом примере объект с именем студент проверяется, чтобы убедиться, что студент создан или создан из Студент класса.
public class MyApp {
public static void main(String[] args) {
// instantiate an object from Student class
Student student = new Student("John","Operating System");
// check if the student object is instantiated from Student class
if (student instanceof Student) {
// print out the class name
System.out.println(student.getClass().getName());
}
}
}
Выход
com.nadirbasalamah.Student
Основываясь на приведенном выше коде, объект student проверяется с помощью ключевого слова instanceof . Если это правда, то выводится имя класса из объекта студент .
Метод toString() может быть реализован внутри определенного класса. Этот метод в основном преобразует созданный объект в информацию об объекте в строковом типе. Этот метод полезен для просмотра значения поля из созданного объекта и для целей отладки.
Это пример использования метода toString() в классе Студент .
// create a class called Student
public class Student {
private String name;
private String course;
// create a constructor
public Student(String name, String course) {
this.name = name;
this.course = course;
}
// create a default constructor
public Student() {
}
public void learn() {
System.out.println("Learning " + course);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCourse() {
return course;
}
public void setCourse(String course) {
this.course = course;
}
// using toString() method
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", course='" + course + '\'' +
'}';
}
}
Основной класс.
public class MyApp {
public static void main(String[] args) {
// create an object from Student class
Student student = new Student("Joe","Operating System");
// print out the object
System.out.println(student);
}
}
Выход
Student{name='Joe', course='Operating System'}
На основе приведенного выше кода извлекается информация об объекте из Student . Обратите внимание, что метод toString() не вызывается непосредственно в основном классе, потому что toString() вызывается автоматически, если созданный объект распечатан.
Перечисление
Тип перечисления также доступен в Java, Перечисление – это в основном тип данных, который позволяет хранить множество констант. Перечисление подходит для некоторых случаев использования, в которых требуются предопределенные константы. Это основной синтаксис создания перечисления.
modifier enum enum_name {
CONSTANT_NAME, ...
}
Модификаторами, разрешенными в перечислении, являются public и модификатор по умолчанию.
В этом примере перечисление называется Роль создана.
public enum Role {
STUDENT, LECTURER
}
Основываясь на приведенном выше коде, Роль имеет много констант, в том числе СТУДЕНТ и ЛЕКТОР .
В соглашении об именовании константы используется только заглавная буква.
Чтобы использовать значение из определенного перечисления, используйте этот синтаксис.
enum_name.CONSTANT_NAME
Это пример использования Роль перечисление в Ученик класс.
// create a class called Student
public class Student {
private String name;
private String course;
// create field with Role type
private Role role;
// create a constructor
public Student(String name, String course) {
this.name = name;
this.course = course;
// use the value from enum
this.role = Role.STUDENT;
}
// create a default constructor
public Student() {
}
public void learn() {
System.out.println("Learning " + course);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCourse() {
return course;
}
public void setCourse(String course) {
this.course = course;
}
public Role getRole() {
return role;
}
}
Основываясь на приведенном выше коде, поле роль назначается внутри конструктора с использованием значения из Роли перечисления с Ролью. СТУДЕНТ синтаксис.
Источники
Узнайте больше о классе и объекте на этой странице .
Узнайте больше о перечислении на этой странице .
Я надеюсь, что эта статья будет полезна для изучения языка программирования Java. Если у вас есть какие-либо мысли или комментарии, вы можете написать в разделе обсуждения ниже.
Учебник по Java (Серия из 11 частей)
Оригинал: “https://dev.to/nadirbasalamah/java-tutorial-7-class-and-object-lkl”