Використання класів в програмах на мові Java

Про матеріал
Кожен об'єкт має властивості. Наприклад, властивості машини: модель, колір, розмір тощо. Кожен об'єкт має методи (тобто дії, які може робити об'єкт). Наприклад, методи машини: загальмувати, натиснути газ і т.д. Можна сказати, що Ваш друг - об'єкт класу "Людина", маленький собака або великий ротвелер - об'єкти класу "Собака", із загальними методами та властивостями, але різними індивідуальними параметрами.
Перегляд файлу

Тема: Використання класів в програмах на мові Java

  1. Мета роботи: Засвоїти приципи ООП, та правила створення класів в програмах на мові Java
  2. Загальні відомості:

2.1 Понття  ООП

Абревіатура ООП розшифровується як "Об'єктно-орієнтоване програмування".

В попередніх практияних роботах ми використовували Scanner для зчитування символів, які вводяться користувачем. Scanner оголошується настуупним чином:

 

Scanner scan = новий Scanner(System.in);

 

Створюючи новий об'єкт типу Scanner можна працювати, задаючи різні методи. Нам не важливо, яка робота проходить усередині – головне ми можемо використовувати цей метод знову та знову, друкуючі різну інформацію

Scanner можна використовувати неодноразово. Він може мати різні параметри та назви- scan, sanner, sc або sc1. То є різні об'єкти одного класу.

Кожен об'єкт має властивості. Наприклад, властивості машини: модель, колір, розмір тощо.

Кожен об'єкт має методи (тобто дії, які може робити об'єкт). Наприклад, методи машини: загальмувати, натиснути газ і т.д.

Можна сказати, що Ваш друг - об'єкт класу "Людина", маленький собака або великий ротвелер - об'єкти класу "Собака", із загальними методами та властивостями, але різними індивідуальними параметрами.

Окрім базових понять "класу" та "об'єкта" розглянемо основні принципи ООП - успадкування, інкапсуляція, поліморфізм.

Принцип 1. Спадкування

Можете думати про нього як про ще одного полегшителя роботи. Ви вже знаєте, що завдяки класам та об'єктам Ви можете не прописувати код щоразу заново, а просто створювати об'єкти класу. Спадкування дозволяє економити час під час створення нового класу. Уявіть, що у Вас є клас "Кішка". Вона має властивості - ім'я, колір і порода. У цього класу є методи - спати, їсти, грати, муркотіти. А тепер, уявимо, нам потрібно створити новий клас - "Кошеня". У нього теж є ім'я, колір та порода. Він теж вміє спати, їсти, грати, муркотіти. Але, крім того, він може, наприклад, " шукати маму " .

Завдяки успадкування, можна не прописувати всі методи та властивості класу заново. Можна просто вказати, що клас "Кошеня" успадковує клас "Кіт", і додати відсутні методи і параметри.

 

Принцип 2. Інкапсуляція

 

"Інкапсуляція" можна розшифрувати як "укладання в капсулу". Якщо простіше - це "забезпечення безпеки" у Java.

Справа в тому, що в кожній програмі є параметри, до яких не можна надавати доступ всім. Наприклад, хіба буде цікаво грати в гру, якщо користувач зможе вільно змінювати свої очки сам? Інкапсуляція дозволяє регулювати рівні доступу до програми.

 

Принцип 3. Поліморфізм

 

Це - "полегшувач роботи ", або "навіщо запам'ятовувати багато методів, якщо можна використовувати тільки один". Сенс поліморфізму в тому, що Ви можете давати одну й ту саму назву для методів, які мають однаковий зміст, але приймають різні типи даних. Хоча це може здатися дивним, але в інших мовах - де немає поліморфізму - потрібно іноді запам'ятовувати назви 5 методів замість одного - тільки через те, що вони працюють з різними типами даних.

 

2.2 Поняття класу

 

Клас - це "шаблон для об'єкта", який створюєтеться у Java. Поняття класу, як і поняття об'єкта є основою ООП.

Розглянемо наступний код

 

class Test {

public static void main(String args[]){

int k;

k = 10;

System.out.println(k);

}

}

 

Код починається з рядка "class Test". Дійсно, методи, які Ви прописували раніше в процесі навчання, не можуть існувати поза якимось класом.

 

2.2.1 Класи - "всередині" та "зовні"

Відповідно до "інкапсуляція", то розумієте, щ інтерфейс - те, що бачить кінцевий користувач, і те, як механізм влаштований всередині - різні речі. Так само і класи в Java мають зовнішній "інтерфейс" та внутрішню "начинку". Для створення класу необхідно вміти працювати і з тим, і з іншим.

Зовні. Як створити "об'єкт класу"

Якщо, як було зазначено, клас - це " трафарет " , тоді те, що ми намалювали з цього трафарету - це " об'єкт класу " .

Розглянемо приклад:

 

import java.util.Scanner; // імпорт сканера

 

class Test {

public static void main(String args[]){

System.out.print("Введіть будь-яке ціле число від 1 до 10: ");

Scanner scan = новий Scanner(System.in);

int number = scan.nextInt();

System.out.println ("Ви ввели число" + number);

}

}

Розглянемо: Scanner scan = новий Scanner(System.in);

Даний запис відповідає схемі створення об'єкта класу наведену вище. А в дужках, як говорилося, вказується параметр, необхідний для створення об'єкта - у даному випадку, потік введення System.in.

 

Розглянемо приклад, в якому необхідно створити базу даних користувачів. Для цього:

Спроектувати  клас User, який матиме поля — ім'я (String) вік (short) і зріст (int).

Створити необхідну кількість конструкторів, щоб ім'я, вік і зріст можна було вказувати в будь-якому порядку.

 

Код програми:

 

class User {  //Клас користувачів

 

    String name; //Ім’я

    short age;  //Вік

    int height;  //Зріст

 

    // Конструктори в яких змінена черга того, як вказуються ім'я, вік і зріст

   public User(String name,short age,int height){    // ім'я, вік і зріст----1

        this.name = name;

        this.age = age;

        this.height = height;

    }

    public User(String name,int height,short age){ ім'я  зріст вік  -----2

        this.name = name;

        this.height = height;

        this.age = age;

    }

 

    public User(short age,int height,String name){// вік  зріст ім'я  ----3

        this.age = age;

        this.height = height;

        this.name = name;

    }

    public User(short age,String name,int height){ вік  ім'я  зріст -----4

        this.name = name;

        this.age = age;

        this.height = height;

    }

 

    public User(int height, String name, short age){// зріст ім'я  вік  ----5

        this.name = name;

        this.age = age;

        this.height = height;

    }

 

    public User(int height, short age, String name){ зріст вік  ім'я  ----6

        this.name = name;

        this.age = age;

        this.height = height;

    }

}

 

public class Main {

 

 public static void main(String[] args) {

User tany = new User(150, "Tany", (short) 15);//конструктор 5

User dima = new User("Дима", (short) 23 , 180); //конструктор 1

User toxa = new User( (short) 30 , 185 , "Тоха" );//конструктор 3

 

        System.out.println("Имя_ " + tany.name + "," +"Возраст_ " + tany.age + "," +"Рост_ " + tany.height);

        System.out.println("Имя_ " + dima.name + "," +"Возраст_ " + dima.age + "," +"Рост_ " + dima.height);

        System.out.println("Имя_ " + toxa.name + "," +"Возраст_ " + toxa.age + "," +"Рост_ " + toxa.height);

 

 }

 

}

 

Результат виконання:

  1. Завдання

Ввести програму в середовищі Eclips. Перевірити її на працездатність.

 

docx
Додано
10 листопада 2023
Переглядів
218
Оцінка розробки
Відгуки відсутні
Безкоштовний сертифікат
про публікацію авторської розробки
Щоб отримати, додайте розробку

Додати розробку