Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Лабораторная работа №2. ООП в Java. Понятие класса

Цель лабораторной работы

Цель данной лабораторной работы - изучить основные концепцииобъектно-ориентированного программирования, ввести понятиекласса и научиться создавать собственные классы.

Для начала разберем, что такое модификаторы доступа в Java. В Java существуют следующие модификаторы доступа:

· private: данные класса доступны только внутри класса;

· protected: данные класса доступны внутри пакета и в наследниках;

· public: данные класса доступны всем.

В качестве примера рассмотрим программу, описывающую окружность. Создадим класс Circle. Каждая окружность имеет несколько параметров:

· Координаты по оси x;

· Координаты по оси y;

· Радиусr;

· Цвет colour.

 

Объявимнашипеременные:

private double x;

private double y;

private double r;

private String colour;

Как мы уже знаем, тип данных doubleприменяется для числовых значений, а String для текстовых.

Одним из стандартных подходов при проектировании классов на языке Java является управление доступом к атрибутам класса через пару методов get и set. Метод get позволяет получить значение поля, set — установить новое значение. Общий принцип именования этих методов (называемых, также, геттером и сеттером). Для того, чтобы вызвать эти методы, щелкаем правой кнопкой мыши (или путем сочетания клавиш Alt+Insert) и из выпадающего меню выбираем «Generate», а затем щелкаем по «Getter» или «Setter», в зависимости от того, что нам необходимо.

public double getX() {

return x;

}

 

public void setX(double x) {

this.x = x;

 }

 

public double getY() {

return y;

}

 

public void setY(double y) {

this.y = y;

}

 

public double getR() {

return r;

}

 

public void setR(double r) {

this.r = r;

}

 

public String getColour() {

returncolour;

}

 

public void setColour(String colour) {

this.colour = colour;

}

Обратите внимание, что в теле метода автоматически прописались два вида строчек: return (для getter) и this. (для setter). Return пишется для возврата значений переменной (чтения), this. пишется в качестве ссылки на данные переменной.

Затем также, как мы вызывали методы getter и setter, вызываем метод Constructor.Constructor — это специальный метод, который вызывается при создании нового объекта. Не всегда удобно инициализировать все переменные класса при создании его экземпляра. Иногда проще, чтобы какие-то значения были бы созданы по умолчанию при создании объекта. По сути Constructor нужен для автоматической инициализации переменных.

publicCircle(doublex, doubley, doubler, Stringcolour) {

this.x = x;

this.y = y;

this.r = r;

this.colour = colour;

}

Далее мы также вызываем еще один метод – toString().Метод toString в Java используется для предоставления ясной и достаточной информации об объекте (Object) в удобном для человека виде.

@Override

public String toString() {

return "Circle{" +

           "x=" + x +

           ", y=" + y +

           ", r=" + r +

           ", colour='" + colour + '\'' +

'}';

}

Последним этапом формирования класса Circle будет создание метода getLength(). В теле данного метода мы объявляем переменную c, которая обозначает длину нашей окружности. Длина окружности описывается формулой: с = 2*PI*r. В Java нельзя просто так написать PI, поэтому следует обратиться к библиотеке Math. В конце тела метода необходимо возвратить значение c. Получается такая запись:

public double getLength(){

double c;

c = 2*Math.PI*r;

return c;

}

}

Последняя фигурная скобка не является лишней – она закрывает тело нашего класса Circle.

Следующим этапом написания нашей программы будет создание в этом же пакете, в котором мы работали, класса Tester. Затем добавляем необходимые библиотеки: lang и Scanner (в дальнейшем мы будем использовать ввод с клавиатуры):

import java.lang.*;

import java.util.Scanner;

Далее прописываем аббревиатуру «psvm» для создания статического метода main(String[]). Следующим шагом будет объявление переменной r. Второй раз мы объявляем переменную с таким же именем, но в другом классе, чтобы ввести значение r с клавиатуры и посмотреть, как меняется значение c:

public class Tester {

public static void main(String[] args) {

doubler;

Затем мы создаем экземпляр (k1) класса Circle:

Circle k1 = new Circle(x:3.1, y:4.1, r:5.1, colour:“red”);

Далее прописываем стандартную процедуру “Ввод”:

System.out.println("Длина окружности = " + k1.getLength() + "см\n");

После ввода этой строчки на консоли выведется длина окружности c, при радиусе к, который мы ввели для экземпляра класса (r:5.1).

Включаем ввод с клавиатуры и пишем процедуру «Вывод», в которой будет содержаться информация о том, что нам необходимо ввести, и пишем переменную, которую нам необходимо будет ввести. Делается это так: r = source.nextDouble();. В итоге получается следующее:

Scanner source = new Scanner(System.in);

System.out.println("Введитерадиус ");

r = source.nextDouble();

Пишемk1.setR(r);. Это необходимо для того, чтобы при работе программа обращалась уже к новому значению r, а не к тому, которое мы ввели для экземпляра класса. Завершением класса «Tester» будет написание процедуры “Вывод”.

k1.setR(r);

System.out.println("\nДлина окружности = " + k1.getLength() + "см");

}

}

 

Рис. 13

 

Ниже приведен пример работы программы:

Рис. 14

 



<== предыдущая лекция | следующая лекция ==>
Потоки ввода/вывода и строки в Java, класс String | Итоги выполнения лабораторной работы
Поделиться с друзьями:


Дата добавления: 2018-10-18; Мы поможем в написании ваших работ!; просмотров: 726 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Студент может не знать в двух случаях: не знал, или забыл. © Неизвестно
==> читать все изречения...

2806 - | 2369 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.013 с.