Рубрики
Без рубрики

Учебник по Java – 7 Класс и объект

Введение Объектно-ориентированное программирование (ООП) – это парадигма программирования, основанная на… С тегами java, учебник, для начинающих.

Учебник по 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”