Классы. Применение классов в программах на Java. Определение класса и объекта класса. Примеры
Содержание
- 1. Для чего в программах используются классы?
- 2. Определение класса. Общая форма объявления класса. Ключевое слово class
- 3. Что такое объект класса? Общая форма объявления объекта класса. Оператор new
- 4. Какое отличие между понятиями «класс» и «объект класса»?
- 5. Простейшие примеры объявления и использования классов, которые содержат данные и методы их обработки
- 6. Какой тип доступа (private, public) имеют члены класса по умолчанию?
- 7. Что такое классы-«обертки» или классы «упаковки»? Какое назначение классов-«оберток»? Пример
- Связанные темы
Поиск на других ресурсах:
1. Для чего в программах используются классы?
В языке программирования Java разработка всех программ базируется на объектно-ориентированном подходе. Можно сказать, что Java – этот строго объектно-ориентированный язык программирования. В основе объектно-ориентированного программирования лежат понятия «класс» и «объект». Программист, который разрабатывает программу на основе объектно-ориентированного подхода, должен уметь выделять в проблемной области (задаче) логически-завершенные единицы. Каждая логически завершенная единица должна быть реализована как некоторый класс. В целом, при программировании задач с использованием объектно-ориентированной парадигмы, программист должен уметь:
- структурировать задачу на завершенные логические единицы, которые могут быть реализованы отдельными классами;
- при решении задачи (проблемы) выделять логические единицы, которые имеют между собою отличия и могут быть реализованы как отдельные классы;
- правильно определять и строить взаимосвязи между разными классами в программе;
- замечать многократно используемый программный код, который может повторяться в разных частях программы, а также правильно выделять его;
- строить иерархию между классами по принципу «от простого к сложного»;
- понимать особенности реализации разнообразных возможностей (инкапсуляция, наследственность, полиморфизм), которые дает использование классов с целью эффективной разработки программ.
⇑
2. Определение класса. Общая форма объявления класса. Ключевое слово class
С точки зрения программирования, класс – это набор данных и методов класса. Методы оперируют этими данными класса (выполняют работу над данными класса). С помощью множества методов класса формируется логически-завершенный программный код, который оперирует данными класса.
При использовании классов, в программах выделяются две составляющих:
- объявление класса как отдельного составного типа данных;
- реализация объекта (переменной) этого класса.
Объявление класса – это объявление нового составного типа данных. Этот тип данных содержит методы обработки этих данных.
Объявление класса начинается с ключевого слова class. В простейшем случае общая форма объявления класса:
class ClassName { type variable1; type variable2; ... type variableN; type method1(parameters1) { // ... } type method2(parameters2) { // ... } ... type methodN(parametersN) { // ... } };
где
- type – некоторый тип данных. Это может быть примитивный (базовый) тип данных или составной (сложный) тип данных, например некоторый класс;
- variable1, variable2, …, variableN – переменные экземпляра класса;
- method1, method2, …, methodN – методы класса;
- parameters1, parameters2, parametersN – параметры, которые соответственно получают методы класса method1, method2, methodN.
⇑
3. Что такое объект класса? Общая форма объявления объекта класса. Оператор new
Объект класса – это объявление переменной. Тип переменной – это есть тип с именем класса. При объявлении объекта класса создается экземпляр класса. Понятие «объект класса» и «экземпляр класса» можно считать синонимами.
Общий вид объявления объекта класса в языке Java:
ClassName ObjName = new ClassName();
где
- ClassName – имя класса
- ObjName – имя объекта (переменной) класса.
Возможен и другой вариант объявления объекта класса:
ClassName ObjName;
ObjName = new ClassName();
После вышеприведенных объявлений, переменная ObjName содержит адрес памяти конкретного объекта типа ClassName.
В языке Java создание объекта класса происходит в 2 этапа:
- сначала объявляется переменная (объект) типа класс. Эта переменная еще не определяет объект. Она есть переменной, которая может ссылаться на объект;
- создается конкретная физическая копия объекта, которая присваивается этой переменной типа класс (выделяется память). Это осуществляется с помощью оператора new.
⇑
4. Какое отличие между понятиями «класс» и «объект класса»?
Класс – это только информация о новом составном (сложном) типе данных. Фактически, класс описывает формат данных. Объявление класса носит декларативный характер. Имя класса есть уникальным во всей программе.
Объект класса – это конкретный экземпляр класса, в котором данные класса имеют некоторые заполненные значения. В отличие от объявления (декларирования) класса, для объекта класса выделяется память. Объектов одного и того же класса может быть несколько.
⇑
5. Простейшие примеры объявления и использования классов, которые содержат данные и методы их обработки
Пример 1. Класс Circle, реализующий геометрическую фигуру окружность. В классе объявляются:
- три скрытые (private) переменные (члены данных) класса с именами x, y, r. Эти переменные определяют координату центра окружности и ее радиус;
- четыре метода SetXYR(), GetX(), GetY(), GetR(). Эти методы являются общедоступными (public). По умолчанию, методы и переменные в классах на языке Java есть общедоступными, если перед ними нет ключевого слова private. Поэтому эти четыре метода есть видимыми за пределами класса.
public class Circle { private int x, y; // координаты центра окружности private int r; // радиус окружности // метод класса, который устанавливает новые значения x,y,r void SetXYR(int nx, int ny, int nr) { x = nx; y = ny; r = nr; } // методы класса, которые возвращают значение int GetX() { return x; } int GetY() { return y; } int GetR() { return r; } }
Использование класса в другом методе
// объявить переменную типа Circle Circle c1 = new Circle(); // c1 - объект класса Circle, выделение памяти c1.SetXYR(3, 5, 2); // вызвать метод, который устанавливает новые x, y, r // проверка int d; d = c1.GetX(); // d = 3, вызов метода GetX() класса d = c1.GetR(); // d = 2
В вышеприведенном коде объявляется объект (экземпляр) класса с именем c1. Память для объекта c1 выделяется с помощью оператора new. Операция выделения памяти оператором new есть обязательной (в отличие от языка C++).
Далее вызываются общедоступные (public) методы класса Circle.
Пример 2. Класс MyName, реализующий фамилию, имя и отчество.
В классе объявляется:
- 3 переменные-экземпляры класса с именами name, surname, patr;
- 7 методов класса с именами GetName(), GetSurname(), GetPatr(), SetName(), SetSurname(), SetPatr(), SetMyName().
// объявление класса MyName class MyName { // переменные-экземпляры класса MyName String name; // Фамилия String surname; // имя String patr; // отчество // методы класса String GetName() { return name; } String GetSurname() { return surname; } String GetPatr() { return ; } void SetName(String nName) { name = nName; } void SetSurname(String nSurname) { surname = nSurname; } void SetPatr(String nPatr) { patr = nPatr; } void SetMyName(String nName, String nSurname, String nPatr) { name = nName; surname = nSurname; patr = nPatr; } }
Использование класса MyName в другом методе или программном коде
... // использование класса MyName в некотором методе // создание объекта (экземпляра) класса с именем nm1 MyName nm1 = new MyName(); // создание объекта (экземпляра) класса с именем nm2 MyName nm2; nm2 = new MyName(); String s; // вызов методов класса из объекта nm1 nm1.SetName("Johnson"); nm1.SetSurname("John"); nm1.SetPatr(""); s = nm1.GetSurname(); // s = "John" // вызов методов класса из объекта nm2 класса nm2.SetMyName("David", "Albright", ""); s = nm2.GetName(); // s = "David" nm2.name = "Michael"; // так тоже можно s = nm2.GetName(); // s = "Michael" ...
⇑
6. Какой тип доступа (private, public) имеют члены класса по умолчанию?
По умолчанию, члены класса имеют тип доступа public. Они являются общедоступными.
⇑
7. Что такое классы-«обертки» или классы «упаковки»? Какое назначение классов-«оберток»? Пример
Классы-обертки предназначены для представления примитивных типов в виде объектов. То есть, они осуществляют преобразование примитивного типа в тип-ссылку. Для каждого примитивного типа существует свой собственный класс (тип) упаковки или обертки.
Далее приводится перечень соответствий примитивного типа и типа (класса) упаковки:
boolean => Boolean char => Character byte => Byte short => Short int => Integer long => Long float => Float double => Double void => Void
Например. Ниже приведены примеры преобразования разных примитивных типов в типы-упаковки и наоборот
// преобразование типов int <=> Integer int d = 25; Integer D = new Integer(d); // D = 25 D = new Integer(38); d = D.intValue(); // d = 38 // преобразование типов float <=> Float float f = 3.85f; Float F = new Float(f); // F = 3.85 F = new Float(7.77f); f = F.floatValue(); // f = 7.77 // преобразование типов char <=> Character char c = 'A'; Character C = new Character(c); // C = 'A' C = new Character('Z'); c = C.charValue(); // c = 'Z'
⇑
Связанные темы
- Применение классов в программах на Java. Определение класса и объекта класса. Примеры
- Перегрузка методов в классах. Перегрузка конструкторов