Гаоу впо «дагестанский государственный институт народного хозяйства»

ГАОУ ВПО «ДАГЕСТАНСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ НАРОДНОГО ХОЗЯЙСТВА»

гаоу впо «дагестанский государственный институт народного хозяйства» - student2.ru

ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

Кафедра «Информационные технологии и информационная безопасность»

Специальность 08.08.01 «Прикладная информатика (в экономике)»

ДОПУСТИТЬ К ЗАЩИТЕ

Зав. кафедрой.

____________ Раджабов К.Я.

«___»___________2015г.

Выпускная квалификационная работа

(Дипломная работа)

на тему:

«Программирование классов Java»

Научный руководитель:

к.ф.-м.н., доцент кафедры

Прикладной математики и

информационных технологий

Якубов А.З.

Выполнил:

Студент 5 курса 3 группы (ОЗО)

Халирбагинов М.М.

МАХАЧКАЛА – 2015

Содержание

Введение…………………………………………………………………………3

Глава 1. Программирование на основе классов в Java…………………...5

1.1. Понятие и виды классов Java……………………………………………...5

1.2. Внутренние и вложенные классы……………………………………… 14

1.3. Классы Java для работы с потоками……………………………………..24

1.4. Программирование на основе классов Java…………………………… .33

Глава 2. Создание и использование классов в Java………………………38

2.1. Создание классов в Java…………………………………………………..38

2.2. Методы использования классов Java…………………………………….45

Глава 3. Разработка системы Деканат на Java……………………………59

3.1 Система Деканат…………………………………………………………..59

3.2. Создание Gui с помощью пакета Swing……………………………….…67

Заключение……………………………………………………………………72

Список литературы………………………………………………………..…74

Введение

Актуальность исследования. Как известно, классы Java включает в себя несколько особенностей – простой, интерпретируемый, распределенный, надежный, безопасный, машино не зависимый, объектно-ориентированный, высокопроизводительный, многопоточный, динамичный, не зависящий от архитектуры компьютера

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

Для достижения поставленной цели, следует выполнить следую-щие задачи:

* Изучить основные методы использование классов Java;

* Изучить особенности классов, и рассмотреть ее цели;

* Изучить и описать основные виды классов и показать на примере их использования.

Структура - Дипломная работа состоит из введения, трех глав, заключения и списка использованной литературы.

В отличие от многих других языков, Java позволяет записывать идентификаторы на русском языке (названия переменных, функций, классов). Это удобно для русскоязычных программистов-любителей и для небольших локальных программ. Но если проект не для внутреннего употребления, то лучше, из соображений совместимости и переносимости, писать идентификаторы латинскими буквами.

Класс есть ключевое понятие в объектно-ориентированном программировании, на чем и основывается Java. Класс описывает содержание и поведение некой совокупности данных и действий над этими данными. Объявление класса производится с помощью ключевого слова class. Пример: class < имя_класса > {// содержимое класса}.

К примеру, если мы моделируем прямоугольную комнату классом Комната, то данными могут быть длина, ширина и высота, двери, электророзетки, мебель. Заметим, что на уровне класса мы ещё не знаем, о которой комнате идет речь, но точно знаем, что это не ящик (который тоже имеет длину, высоту и ширину), а именно комната. Действиями могут быть вычисление объема, помещение и изъятие мебели, открытие дверей. Чтобы вычислить объем комнаты или наклеить обои, нам не нужны ее размеры, о своих размерах каждая конкретная комната знает сама.

Глава 1. Программирование на основе классов в Java.

Рис.1.1.1. Модификаторы доступа.

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

· package-private или default (по умолчанию) члены класса видны внутри пакета

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

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

Глава 2. Создание и использование классов в Java.

Рис 2.1.1.

В итоге, у нас создался новый класс (рис 2.1.2).

гаоу впо «дагестанский государственный институт народного хозяйства» - student2.ru

Рис 2.1.2.

Структура класса в java

Класс в java оформляется с помощью следующей конструкции:

public class Cat {

}

Рассмотрим ее составляющие:

public – модификатор доступа к классу, в данном случае он нам говорит, что этот класс будет доступен не только данному классу, но и другим. В java существуют и другие модификаторы.

class – ключевое слово, говорящее о том, что это класс.

Cat – имя класса. Имена классов принято писать с заглавной буквы.

{ } – фигурные скобки, между которыми разместится тело нашего класса.

Классы Java состоят из атребутов и методов, присвою некоторые из них классу Cat.

Атрибуты класса Сat

Атрибутами кота могут быть: имя, вес, окраска. Атрибуты это переменные, которые объявляются следующим образом:

private int weight; // вес кота

private String name; // имя кота

private String color; //окрас кота

private – здесь опять же указывает на права доступа. К переменной, в данном случае, можно обращаться только из ее класса, чтобы классы извне не могли ее изменить .

int, String – это типы данных. В данном случае вес будет задан при помощи целого числа – int, a имя и цвет при помощи символьной строки String.

После объявления каждого атрибута должна ставиться точка с запятой ;

При помощи // в коде программы оформляются комментарии, которые являются правилом хорошего тона.

Методы класса Сat

Пусть наш кот умеет, есть, спать и разговаривать. Опишем это поведение с помощью методов.

//кот ест

public void eat(){

System.out.print("Eating...\n");

}

public void eat() – сигнатура метода, его определение. В данном случае она нам говорит о том, что:

метод eat() доступен для других классов – public;

метод eat() не возвращает никаких данных – void.

eat – имя метода. Имена методов, в отличие от имен классов, принято писать с маленькой буквы. На конце каждого метода после имени всегда идут круглые скобки ( ), пустые или содержащие параметры (об этом позднее).

После сигнатуры метода идут фигурные скобки { }. В них содержится тело метода. Тело нашего метода содержит просто вывод сообщения о том, что кот кушает —"Eating...\n". За вывод текстового сообщения отвечает метод System.out.print("Eating...\n").

\n — символ перевода строки, чтобы при выводе наших сообщений все они не писались в одну строку.

Аналогично предыдущему методу опишем спящего кота:

//кот спит

public void sleep(){

System.out.print("Sleeping zz-z-z-z...\n");

}

И немного иначе опишем метод – кот говорит:

//кот говорит

public String speak(String words){

String phrase = words + "...mauu...\n";

return phrase;

}

В отличие от предыдущих методов этот метод возвращает значение и имеет входные параметры. Давайте подробнее рассмотрим сигнатуру метода public String speak(String words):

public - метод speak() доступен для других классов;

String — тип значения, которое возвращает метод. В предыдущих случаях ключевое словоvoid указывало на то, что метод ничего не возвращает. В данном случае String указывает на то, что метод возвращает значение типа строка.

В процессе своей работы метод выполняет определенные действия над данными. Иногда необходимо, чтобы результат этих действий был передан для дальнейшей обработки другим классам, в этом случае метод передает (возвращает) этот результат. Эти возвращаемые данные относятся к какому-либо типу. В нашем примере это тип символьной строки, String.

Возвращающие методы должны содержать в своем теле ключевое слово return, которое указывает на то, что именно возвращает данный метод. В нашем случае это переменнаяphrase.

speak - имя метода.

(String words) — входные параметры. Входные параметры — это какие-либо данные, которые передаются из других классов и, которые метод должен обработать. Наш метод получает в качестве входных данных строку в виде переменной words, к этой строке дописывает «...mauu...» и возвращает то, что получилось.

В итоге класс Cat выглядит следующим образом:

public class Cat {

private int weight; // вес кота

private String name; // имя кота

private String color; //окрас кота

//кот ест

public void eat(){

System.out.print("Eating...\n");

}

//кот спит

public void sleep(){

System.out.print("Sleeping zz-z-z-z...\n");

}

//кот говорит

public String speak(String words){

String phrase = words + "...mauu...\n";

return phrase;

}

}

Обращение к классу в Java

Далее рассмотрим обращение к классу Cat. И то, как его использовать в работе.

Удалим строку System.out.println("Hello World"); , чтобы у нас осталось только следующее (рис 5.3).:

public class HelloWorld {

/**

* @param args

*/

public static void main(String[] args) {

}

}

Прежде чем вызывать созданные нами методы в классе Cat и заставить нашего кота есть,спать и говорить, сперва нужно создать экземпляр класса (инстанцию).

Cat ourcat = new Cat();

Данная строчка нам говорит о том, что в памяти создан экземпляр объекта Cat, а переменная ourcat типа Cat (такого же, как и наш объект) указывает на то место в памяти, где был этот объект создан.

гаоу впо «дагестанский государственный институт народного хозяйства» - student2.ru

Рис. 2.1.3

В качестве результата внизу в консоли мы получаем следующие строки.

Eating...

Sleeping zz-z-z-z...

Play with me...mauu...

гаоу впо «дагестанский государственный институт народного хозяйства» - student2.ru

Рис. 2.1.4.

В этой главе я показал, как создаются классы в Java. Как объявлять атрибуты и методы класса. Методы могут возвращать или не возвращать значения, иметь или не иметь входных параметров.

Методы в классах Java.

Метод определяется, как действительная реализация некоторой операции с объектом.

Например:

access_specifier modifier datatype method_name (parameter_list)

{

// тело метода

}

Метод всегда вызывается относительно одного из объектов соответствующего класса. Внутри метода нет необходимости повторно определять текущий объект.

Пример использования метода:

class Temp { static int num = 10; public static void show() { System.out.println(num); } public static void main(String [] arg) { Temp t1 = new Temp(); t1.show(); Temp t2 = new Temp(); t2.num = 20; t2.show(); } }
гаоу впо «дагестанский государственный институт народного хозяйства» - student2.ru

Методы возвращают значения в вызывающую программу с помощью оператора return. Многие методы требуют передачи им параметров.

Параметры позволяют обобщить применение метода. void – невозвращаемый значение тип метода.

Передача по значению

n Передача по значению означает, что, когда мы вызываем метод, передаем копию значения каждого фактического параметра методу.

n Можем изменить эту копию в методе, но это никак не отразиться на фактическом параметре.

int x=5;

doStuff(x);

void doStuff (int y) {

использование у

}

Ссылка this

n Ключевое слово this связано с объектом.

n Оно используется, чтобы указать текущий объект.

int x;

PassTest (int x) {

this.x=x;

}

Модификаторы доступа

n Модификаторы управления доступом определяют правила доступа к полям или методам.

n По умолчанию переменные, методы и классы имеют тип protected.

public общий доступ, для любых объектов и извне
private частный доступ, только из методов данного класса
private protected защищенный доступ, только из методов данного класса и его производных классов
protected защищенный доступ, из методов данного класса и его производных классов, а также из классов, определенных в том же пакете (каталоге)

Преимущества методов:

n Методы обеспечивают доступ к данным класса. Нельзя обращаться непосредственно к данным объекта, к ним можно обратиться только через методы.

n Программа может быть разделена логически.

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

n Программы становятся легко отлаживаемые.

Типы методов:

Перегруженные методы – это методы, которые находятся в том же самом классе и имеют то же самое имя, но различные списки параметров.

public void add (int a, int b){

int c=a+b;

System.out.println(c);

}

public void add (float a, float b){

float c=a-b;

System.out.println(c);

}

Переопределенные методы – это методы, которые находятся в суперклассе так же как и в подклассе.

Замещение и перегрузка методов

Характеристики замещаемых методов:

Определяются как в суперклассе, так и в подклассе. Переопределяются в подклассе.

Характеристики перегружаемых методов:

Определены в одном и том же классе, имеют одно и то же имя, имеют различные списки параметров

Объектная инициализация

n В начале создания объекта JVM распределяет достаточное место в динамической области памяти, чтобы разместить переменные образца объекта.

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

Перегрузка конструктора

n Перегрузка конструктора обеспечивает способ создания объектов с или без начальных параметров, в зависимости от необходимости.

public class PassTest {

PassTest (){

….

}

PassTest (int x) {

….

}

PassTest test1= new Passtest();

PassTest test2=new Passtest (10);

Наследование

n Не менее важной характеристикой объектно-ориентированного языка программирования является наследование.

n Суть наследования состоит в создании производного класса, который имеет возможности базового класса плюс свои собственные возможности.

n Говорят, что производный класс расширяет (extends) базовый класс.

n Любой производный класс может расширять только один базовый класс.

Набор атрибутов класса наследуется всеми подклассами, определёнными, как производные от этого класса.

Класс, который получен наследованием от другого класса, называется подклассом (subclass).

Класс, от которого получен наследованием другой класс, называется суперклассом (superclass).

Подкласс (Subclass) является специализацией суперкласса (superclass) и может получать доступ ко всем экземплярам переменных и методов, определённых в суперклассе.

Чтобы выполнить наследование класса, необходимо использовать ключевое слово extends в определении подкласса.

class Programmer extends Employee { }

Класс Object

n Класс Object не является ничьим наследником, от него начинается иерархия любых классов Java.

n Метод equals() сравнивает содержимое объектов в их текущем состоянии, фактически он реализован в классе Object как тождество: объект равен только самому себе.

n Второй метод класса Object, который следует переопределять в подклассах, — метод toString (). Это метод без параметров, который пытается содержимое объекта преобразовать в строку символов и возвращает объект класса String.

Ключевое слово super

n В производном классе функции базового класса могут быть переопределены. При использовании переопределенных функций в производных классах может возникнуть необходимость явно вызвать функцию базового класса. Для этого используется выражение:

super.имяФункции(параметры);

n Ключевое слово super предназначено для вызова конструктора суперкласса.

n Ключевое слово super может быть также использовано для обращения к методам или экземплярам переменных суперкласса.

Пакеты все классы Java распределяются по пакетам.

Пакет- это совокупность классов, интерфейсов и других пакетов. Каждый пакет образует одно пространство имен (namespace). Это означает, что все имена классов, интерфейсов и подпакетов в пакете должны быть уникальны. Имена в разных пакетах могут совпадать, но это будут разные программные единицы. Чтобы создать пакет надо просто в первой строке Java-файла с исходным кодом записать строку package имя: package mypack;

Включение пакета

n Синтаксис команды включения пакета: import package_name.*;

n Символ * используется, чтобы импортировать все классы текущего пакета.

n Чтобы включить определенный класс/интерфейс, найденный в пакете используют: import package_name.class_name;

Объявление методов

Методы - это подпрограммы, присоединенные к конкретным определениям классов. Они описываются внутри определения класса на том же уровне, что и переменные объектов. При объявлении метода задаются тип возвращаемого им результата и список параметров. Общая форма объявления метода такова:

тип имя_метода (список формальных параметров) {

тело метода:

}

Тип результата, который должен возвращать метод может быть любым, в том числе и типом void - в тех случаях, когда возвращать результат не требуется. Список формальных параметров - это последовательность пар тип-идентификатор, разделенных запятыми. Если у метода параметры отсутствуют, то после имени метода должны стоять пустые круглые скобки.

class Point { int х, у;

void init(int a, int b) {

х = а;

У = b;

} }

Вызов метода

В Java отсутствует возможность передачи параметров по ссылке на примитивный тип. В Java все параметры примитивных типов передаются по значению, а это означает, что у метода нет доступа к исходной переменной, использованной в качестве параметра. Заметим, что все объекты передаются по ссылке, можно изменять содержимое того объекта, на который ссылается данная переменная.

Конструкторы

Инициализировать все переменные класса всякий раз, когда создается его очередной представитель — довольно утомительное дело даже в том случае, когда в классе имеются функции, подобные методу init. Для этого в Java предусмотрены специальные методы, называемые конструкторами. Конструктор — это метод класса, который инициализирует новый объект после его создания. Имя конструктора всегда совпадает с именем класса, в котором он расположен (также, как и в C++). У конструкторов нет типа возвращаемого результата - никакого, даже void. Заменим метод init из предыдущего примера конструктором.

Совмещение методов

Язык Java позволяет создавать несколько методов с одинаковыми именами, но с разными списками параметров. Такая техника называется совмещением методов (method overloading). В качестве примера приведена версия класса Point, в которой совмещение методов использовано для определения альтернативного конструктора, который инициализирует координаты х и у значениями по умолчанию (-1).

Замещение методов

Новый подкласс Point3D класса Point наследует реализацию метода distance своего суперкласса (пример PointDist.java). Проблема заключается в том, что в классе Point уже определена версия метода distance(mt х, int у), которая возвращает обычное расстояние между точками на плоскости. Мы должны заместить (override) это определение метода новым, пригодным для случая трехмерного пространства. В следующем примере проиллюстрировано и совмещение (overloading), и замещение (overriding) метода distance.

Inside B's calime method

Final

Все методы и переменные объектов могут быть замещены по умолчанию. Если же вы хотите объявить, что подклассы не имеют права замещать какие-либо переменные и методы вашего класса, вам нужно объявить их как final (в Delphi / C++ не писать слово virtual).

Static

Иногда требуется создать метод, который можно было бы использовать вне контекста какого-либо объекта его класса. Так же, как в случае main, все, что требуется для создания такого метода — указать при его объявлении модификатор типа static. Статические методы могут непосредственно обращаться только к другим статическим методам, в них ни в каком виде не допускается использование ссылок this и super. Переменные также могут иметь тип static, они подобны глобальным переменным, то есть доступны из любого места кода. Внутри статических методов недопустимы ссылки на переменные представителей. Ниже приведен пример класса, у которого есть статические переменные, статический метод и статический блок инициализации.

class Static {

static int a = 3;

static int b;

static void method(int x) {

System.out.println("x = " + x);

System.out.println("a = " + a);

System.out.println("b = " + b);

}

static {

System.out.println("static block initialized");

b = a * 4;

}

public static void main(String args[]) {

method(42);

} }

B = 12

В следующем примере было применено класс со статическим методом и несколькими статическими переменными. Второй класс может вызывать статический метод по имени и ссылаться на статические переменные непосредственно через имя класса. Бывают ситуации, когда нужно определить класс, в котором задана структура какой-либо абстракции, но полная реализация всех методов отсутствует. В таких случаях вы можете с помощью модификатора типа abstract объявить, что некоторые из методов обязательно должны быть замещены в подклассах. Любой класс, содержащий методы abstract, также должен быть объявлен, как abstract. Поскольку у таких классов отсутствует полная реализация, их представителей нельзя создавать с помощью оператора new. Кроме того, нельзя объявлять абстрактными конструкторы и статические методы. Любой подкласс абстрактного класса либо обязан предоставить реализацию всех абстрактных методов своего суперкласса, либо сам должен быть объявлен абстрактным.

abstract class A {

abstract void callme();

void metoo() {

System.out.println("Inside A's metoo method");

} }

class B extends A {

void callme() {

System.out.println("Inside B's callme method");

} }

class Abstract {

public static void main(String args[]) {

A a = new B():

a.callme():

a.metoo():

} }

В нашем примере для вызова, реализованного в подклассе класса. А метода callme и реализованного в классе. А метода metoo используется динамическое назначение методов.

Система Деканат.

Данный проект создавался с использованием платформы – Eclipse. Данная программа написана с использованием объектно-ориентированным подходом, которая описывает объект и его основные характеристики и действия. Иерархия классов этой программы включаем в себя шесть классов один из них который абстрактный. Это программа - деканат, разрабатывалась с целью работы со студентами, предусматривающую выдачу необходимой информации для студентов и преподавателей. А конкретнее она выделяет из списка студентов, которые получили средний бал выше 3.5 . А преподавателей программа выделяет только тех, у кого есть степень доцента и преподает экономику.

В первую очередь был создан базовый класс, Magomed, который определяет пол студента, имя и его возраст. Код:

public abstract class Magomed {

private String name;

private int age;

;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge(){

return age;

}

public void setAge(int age) {

this.age = age;

}

public boolean isMale() {

return isMale;

}

public void setMale(boolean isMale) {

this.isMale = isMale;

}

public Magomed(String name, int age, boolean isMale) {

this.name = name;

this.age = age;

this.isMale = isMale;

}

}

Следующий класс- Student, который определяет группу студента, средний бал. Код:

public class Student extends Magomed {

// группа

private String group;

// средний бал

private double rating;

public String getGroup() {

return group;

}

public void setGroup(String group) {

this.group = group;

}

public double getRating() {

return rating;

}

public void setRating(double rating) {

this.rating = rating;

}

public Student(String name, int age, boolean isMale, String group, double rating) {

super(name, age, isMale);

this.group = group;

this.rating = rating;

}

@Override

public String toString() {

return "Студент " + getName() + " учится в групе " + getGroup()

+ " и имеет средний бал " + getRating();

}

}

Далее был создан класс- Teacher. Он в своем случае определяет звание преподавателя и предмет, который он преподает. Код:


public class Teacher extends Magomed {

// звание

private String title;

// предмет который он читает

private String subject;

public String getTitle() {

return title;

}

public void setTitle(String title) {

this.title = title;

}

public String getSubject() {

return subject;

}

public void setSubject(String subject) {

this.subject = subject;

}

public Teacher(String name, int age, boolean isMale, String title, String subject) {

super(name, age, isMale);

this.title = title;

this.subject = subject;

}

@Override

public String toString() {

return "Учитель " + getName() + " имеет ученую степень " + getTitle() + " и преподает " + getSubject();

}

}

Следующий класс- класс Dean, который определяет факультет декана. Код:

public class Dean extends Magomed {

// факультет декана

private String faculty;

public String getFaculty() {

return faculty;

}

public void setFaculty(String faculty) {

this.faculty = faculty;

}

public Dean(String name, int age, boolean isMale, String faculty) {

super(name, age, isMale);

this.faculty = faculty;

}

@Override

public String toString() {

return "Декан " + getName() + " на факультете " + getFaculty();

}

}

Следующий класс, класс IT5kurs3group. В этот класс было введено список обучающих студентов и список преподавателей этой группы. Из этого списка в консоли должны выводиться список студентов, набравший проходной балл для выдачи оценки автоматом, это делается с помощью System.out.println. Таким же способом выделяется преподаватели с ученым степеням, доцент.

Код:

import java.util.*;

public class IT5kurs3group {

public static void main(String[] args) {

Student st1 = new Student("Абзимов Казим", 20, true, "ФК-071", 4.5);

Student st2 = new Student("Джачаев Имамуидин", 20, true, "ФК-071", 4.2);

Student st3 = new Student("Шарапутдинов Батыр", 20, false, "ПМ-081", 3.3);

Student st4 = new Student("Гитихчиев Шамиль", 21, false, "ПМ-081", 3.5);

Student st5 = new Student("Казиев Раджаб", 20, true, "ФК-071", 3.6);

Student st6 = new Student("Кахаев Имран", 20, true, "ФК-071", 4.5);

Student st7 = new Student("Дима Билан", 20, true, "ФК-071", 4.5);

Teacher t1 = new Teacher("Марья Ивановна", 49, false, "доцент", "економика");

Teacher t2 = new Teacher("Александр Павлович", 29, true, "аспирант", "електрооборудование");

Teacher t3 = new Teacher("Светлана Ивановна", 32, false, "професор", "економика");

Teacher t4 = new Teacher("Зарема Ахмедовна", 69, true, "професор", "безопасность сети интернет");

List<Student> students = Arrays.asList(st1, st2, st3, st4, st5, st6, st7);

List<Teacher> teachers = Arrays.asList(t1, t2, t3, t4);

UneverDGUIH manager = new UneverDGUIH();

System.out.println("Список студентов группы ФК-071 ");

List<Student> FK = manager.getStudentsFromTheSameGroup(students, "ФК-071");

for (Student student : FK)

System.out.println(student);

System.out.println("Список доцентов ");

List<Teacher> docents = manager.getDocents(teachers);

for (Teacher teacher : docents)

System.out.println(teacher);

}

}

Последний класс был создан с названием UneverDGUIH. Который, является классом для информации о людях из университета. С кодом:

import java.util.ArrayList;

import java.util.List;

public class UneverDGUIH {

public List<Student> getStudentsFromTheSameGroup(List<Student> students, String group) {

List<Student> result = new ArrayList<>();

for (Student student : students) {

if (student.getGroup().equals(group))

result.add(student);

}

return result;

}

public List<Teacher> getDocents(List<Teacher> teachers) {

List<Teacher> result = new ArrayList<>();

for (Teacher teacher : teachers)

if (teacher.getTitle().equals("docent") || teacher.getTitle().equals("доцент"))

result.add(teacher);

return result;

}

// rating from and to inclusive

public List<Student> getStudentsInRange(List<Student> students, double from, double to) {

List<Student> result = new ArrayList<>();

for (Student student : students) {

if (student.getRating() >= from && student.getRating() <= to)

result.add(student);

}

return result;

}

}

Результат получился(Рис 3.1.):

гаоу впо «дагестанский государственный институт народного хозяйства» - student2.ru

Рис 3.1.Результат проекта - Деканат.

Заключение.

В дипломной работе было рассказано о том, что классы является строго типизированным компонентом в языке Java, то есть тип всех переменных и выражений определяется уже компилятором. Это позволяет существенно повысить надежность и качество кода, а также делает необходимым понимание программистами объектной модели. Все типы в Java делятся на две группы — фиксированные простые, или примитивные, типы (8 типов) и многочисленная группа объектных типов (классов). Класс — разновидность абстрактного типа данных в объектно-ориентированном программировании (ООП), характеризуемый способом своего построения. Другие абстрактные типы данных — метаклассы, интерфейсы, структуры, перечисления, — характеризуются какими-то своими, другими особенностями. Наряду с понятием «объекта» класс является ключевым понятием в ООП (хотя существуют и бесклассовые объектно-ориентированные языки). Суть отличия классов от других абстрактных типов данных состоит в том, что при задании типа данных класс определяет одновременно и интерфейс, и реализацию для всех своих экземпляров, а вызов метода-конструктора обязателен. Точный смысл этой фразы будет раскрыт ниже.

На практике объектно-ориентированное программирование сводится к созданию некоторого количества классов, включая интерфейс и реализацию, и последующему их использованию. Графическое представление некоторого количества классов и связей между ними называется диаграммой классов. Объектно-ориентированный подход за время своего развития накопил множество рекомендаций (паттернов) по созданию классов и иерархий классов.

Идея классов пришла из работ по базам знаний, имеющих отношение к исследованиям по искусственному интеллекту. Используемые человеком классификации в зоологии, ботанике, химии, деталях машин, несут в себе основную идею, что любую вещь всегда можно представить частным случаем некоторого более общего понятия. Конкретное яблоко — это в целом некоторое яблоко, вообще яблоко, а любое вообще яблоко — фрукт. Именно поэтому примеры классов в учебных пособиях по объектно-ориентированному программированию так часто упоминают яблоки и груши.

Примитивные типы действительно являются хранилищами данных своего типа. Ссылочные переменные хранят ссылку на некоторый объект совместимого типа. Они также могут принимать значение null, не указывая ни на какой объект. JVM подсчитывает количество ссылок на каждый объект и активизирует механизм автоматической сборки мусора для удаления неиспользуемых объектов.
Были рассмотрены переменные. Они характеризуются тремя основными параметрами — имя, тип и значение. Любая переменная должна быть объявлена и при этом может быть инициализирована. Возможно использование модификатора final. Примитивные типы состоят из пяти целочисленных, включая символьный тип, двух дробных и одного булевского. Целочисленные литералы имеют ограничения, связанные с типами данных. Были рассмотрены все операторы над примитивными типами, тип возвращаемого значения и тонкости их использования.
Затем изучались объекты, способы их создания и операторы, выполняющие над ними различные действия, в частности принцип работы оператора ¦nstanceof. Далее были рассмотрены самые главные классы в Java -object, Class, String.

Список литературы.

1. Джон Родли Создание Java-апплетов .- The Coriolis Group,Inc.,2013, 300 c.

2. Издательство НИПФ "ДиаСофт Лтд.",2013. 256 c.

3. Майкл Эферган Java: справочник .- QUE Corporation, 2013, Издательство 4. 320 c.

4. "Питер Ком", 2014.

5. П. Киммел Borland C++5. – СПб.: BHV- Санкт-Петербург, 2014. 199 c.

6. АрнольдК., Гослинг Дж. Язык программирования Java, 2013, 250 c.

7. ХорстманнК.С., Корнелл Г. « Java 2. Том 1. Основы», 7-е изд. 2014, 190 c.

8. Хэлсоп Б., Бадник Л. HTML. –Санкт-Петербург, 2012. –300 с.

9. Мир ПК // Инетернет для всех. –2012. -№3. -С.58 - 68.

10. Чип // Java – миф или реальность. –2013. -№2. –С. 27-34

11. Мафтик С.М. Механизмы защиты в сетях ЭВМ. - М.: Мир, 2013. – 256 с.

12. Капор М. Ява для всех. - Санкт-Петербург, 2011. –200 с.

13. Мильвидский А. М. Введение в Java. –2012. –250 с.

14. Начинающим Java программистам [Электронный ресурс]. - Режим доступа: http://habrahabr.ru/. ru/seo_news/internet_reklama_dvigatel/.

ГАОУ ВПО «ДАГЕСТАНСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ НАРОДНОГО ХОЗЯЙСТВА»

гаоу впо «дагестанский государственный институт народного хозяйства» - student2.ru

ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

Наши рекомендации