java class vs object how use class
В този урок ще обсъдим подробно една от концепциите на OOPS. Ще разгледаме всичко за Java Class и Object заедно с примери:
Знаем, че обектно-ориентираното програмиране набляга на данните и по този начин се върти около обекти, наречени обекти. Класовете действат като чертежи на тези обекти.
Нека видим как да създадем клас и неговите компоненти. Също така ще се научим да създаваме и инициализираме обекти в Java с помощта на примери за програмиране по-късно в този урок.
=> Посетете тук за ексклузивната серия уроци за обучение по Java.
Какво ще научите:
Класове и обекти в Java
В Java всички функции, атрибути, методи и т.н. са свързани с класове и обекти. Не можем да напишем програма Java само с основната функция, без да декларираме клас по начина, по който можем да го направим в C ++.
Например, ако искаме да напишем програма на превозно средство, превозното средство е обект в реално време. Но превозните средства могат да бъдат от различни видове. Това означава, че превозното средство има атрибут тип, който може да приема различни стойности като автомобил, камион, скутер, велосипед и т.н.
Така че начинът, по който изразяваме обекта превозно средство в Java, е да създадем клас „Vehicle“ и след това да дефинираме различните му атрибути. Тогава можем да декларираме различни обекти от клас Vehicle като кола, велосипед и т.н.
Вътре в класа можем да определим свойствата на Vehicle като атрибути на класа (членове на данни) и методи като startVehicle (), stopVehicle () и т.н.
По този начин, за да изразим дори най-малкия обект в Java, трябва първо да идентифицираме обекта и след това да дефинираме неговия план или клас.
Така че нека първо да научим всичко за класове и обекти и след това да преминем към другите концепции на OOP в Java.
Клас в Java
За да разработим програма в Java, ние използваме обекти и класове. Докато класът в Java е само логическа единица, обектът в Java е едновременно физически и логически обект.
Какво е обект в Java?
Обектът е обект, който има състояние и проявява поведение. Например, всяко същество от реалния живот като химикалка, лаптоп, мобилен телефон, маса, стол, кола и т.н. е обект. Всички тези обекти са или физически (материални), или логически (нематериални).
Нематериалните обекти са предимно авиокомпания, банкова система и др. Това са логически единици, които имат определено състояние и поведение.
Всеки обект има следните основни характеристики:
- Идентичност: Уникален идентификатор дефинира идентичността на обекта. Този идентификатор не се вижда от нормалния потребител, но вътрешно JVM използва този идентификатор, за да идентифицира уникално обекта.
- Щат: Той дефинира настоящите данни в обекта или стойността на обекта.
- Поведение: Тази функция представлява функционалността (поведението) на обект. Например, обектът Vehicle, който обсъдихме по-горе, има поведението като старт, стоп и т.н.
Ще преразгледаме дефиницията на обекта, когато дефинираме класа.
И така, какво е клас?
Знаем, че основният компонент на обектно-ориентираното програмиране е обект. Ако искаме да изградим конкретен тип обект, се нуждаем от план. Този план ще ни предостави набор от инструкции, които ще ни помогнат да изградим обект.
Например, да кажем, че искаме да построим къща. Къщата тук е обект. За да построим къща, ни е необходим първоначален план за къщата. Не можем да се занимаваме директно с изграждането на къщата, както ни харесва.
Това е мястото, където класът влиза в картината. Така че, за да изградим обект или обект от реалния живот, първо ще имаме план, който определя съдържанието и поведението на даден обект. Това е известно като клас в обектно-ориентираното програмиране.
Така че клас може да се определи като „ план или шаблон и той определя състоянието и поведението на обекта ”.
Също така можем да разглеждаме класа като група обекти. Тази група има някои свойства, които са общи за всички обекти.
Нека да видим как да създадем клас в Java.
Как да създам клас в Java
Общият синтаксис на класа на дефиницията на клас в Java е:
class extends implements interface_name> { //fields; //constructors //methods; //blocks }
Горната обща декларация за клас е представена в диаграмата по-долу с примерна декларация за клас:
Имайте предвид, че суперкласът и интерфейсът в декларацията на класа не са задължителни. Можем да изберем да имаме самостоятелен клас, без да го разширяваме от друг суперклас или да прилагаме какъвто и да е интерфейс.
Горната обща дефиниция също показа компонентите, които могат да присъстват в дефиницията на класа.
Компоненти от клас
Компонентите на класа са представени по-долу.
Както е показано на горната диаграма, класът Java съдържа следните компоненти:
- Полета
- Методи
- Конструктори
- Блокове
- Вложен клас и интерфейс
След това ще обсъдим първите три компонента. Тези компоненти са необходими във всеки клас. Вложените класове и интерфейси са съвсем различна тема и ще бъдат обсъдени в следващите ни уроци.
Преди да започнем дискусия за компонентите на класа, нека първо дефинираме клас Customer_Account
как да пиша тестови случаи
class Customer_Account { static String bank_name; //class variable long customer_accountNo; //instance variable String customer_name; //instance variable //constructor Customer_Account (long accountnum, String accName){ customer_accountNo = accountnum; customer_name = accName; } //method void printInfo(){ System.out.println ('Customer Account Details:'); System.out.println ('Customer Account Number: ' + customer_accountNo); System.out.println (' Customer Name: '+customer_name); } }
Полета
Полетата са променливи или данни от класа. Полетата се извикват и като променливи-членове в Java. Използваме термините поле и променлива взаимозаменяемо.
Обикновено полетата на даден клас са два вида:
# 1) Променливи на класа: Променливите на класа се декларират с думата „static“, така че да са статични променливи. Това означава, че този тип променлива има само по едно копие на клас, независимо колко екземпляра или обекта присъстват за този клас.
# 2) Променливи на инстанцията: Това са обратното на променливите на класа. Членовете на данните се наричат променливи на екземпляра, тъй като тези променливи имат отделна памет, разпределена за тях за всеки екземпляр на клас по време на изпълнение.
В горната дефиниция на клас показахме променливи както за клас, така и за инстанция. Променливата “bank_name”, декларирана със статичен модификатор, е променливата на класа. Другите две променливи „customer_accNo“ и „client_name“ са променливи на екземпляра.
Строител
Конструкторите са специални методи, които обикновено се използват за инициализиране на екземпляр на клас. Конструкторите нямат тип връщане, те имат същото име като класа и могат да съдържат или не параметри.
В горната дефиниция на клас имаме един конструктор.
Customer_Account (long accountnum, String accName)
Ще научим повече за конструкторите в следващите ни уроци.
Метод
Метод в клас Java е функцията, която определя поведението на обекта и неговите членове.
Методът на класа се създава по същия начин, по който създаваме редовни методи в програма. Вътре в метода на класа можем да използваме всички конструкции и функции, предоставени от Java.
В нашата примерна дефиниция на клас имаме метод “printInfo”, който показва различните членове на данните от класа.
Методът на Java клас обикновено има следния прототип:
method_name(parameter list…){ //code blocks }
Методите на класа са достъпни от екземпляра на класа с помощта на точковия оператор. Така че, ако създадем екземпляр в съответствие с горния клас “Customer_Account”, тогава можем да осъществим достъп до printInfo, като използваме кодовия ред по-долу.
acc.printInfo();
Ако access_modifier е статичен, тогава нямаме нужда от екземпляр за достъп до метода. Можем да използваме името на класа директно за достъп до метода като,
Custome_Account.printInfo ();
Пример за Java клас
Нека реализираме прост пример за демонстриране на клас и обект в Java.
//declare a class with three data members class Student{ int student_id; String student_name; Double student_marks; } class Main{ public static void main(String args()){ //create a Student object using new operator Student student_object = new Student(); //display data members of the class. System.out.println('Student Id:' + student_object.student_id); System.out.println('Student Name:' + student_object.student_name); System.out.println('Student Marks:' + student_object.student_marks); } }
Изход
Горната програма декларира студентски клас. Той има три променливи, т.е. student_id, student_name и student_marks.
След това дефинираме главния клас, в който декларираме обект от студентски клас с име student_object. След това, използвайки точков оператор, ние влизаме в променливите на екземпляра и отпечатваме техните стойности.
Горната програма е пример за основен метод извън класа.
В примера по-долу ще имаме основен метод в класа.
//declare a class with three data members class Student{ int student_id; String student_name; Double student_marks; public static void main(String args()){ //create a Student object using new operator Student student_object = new Student(); //display data members of the class. System.out.println('Student Id:' + student_object.student_id); System.out.println('Student Name:' + student_object.student_name); System.out.println('Student Marks:' + student_object.student_marks); } }
Изход
Горната програма е същата като предишната програма, с изключение на това, че основният метод е в класа Student.
Обект в Java
Сега имаме достатъчно знания за класовете в Java, можем да предефинираме обекта от гледна точка на клас. Така че един обект е „ екземпляр на клас ”. По този начин ние създаваме променлива или екземпляр от тип class_name и тя се нарича обект.
Някои точки, които трябва да запомните за даден обект:
- Обектът се разглежда като основна единица на ООП заедно с класа.
- Обектът е единица за изпълнение.
- Обектът се нарича екземпляр на клас.
- Обектът има поведение и състояние.
- Обектът приема всички свойства и атрибути на класа, чийто екземпляр е. Но във всеки момент всеки обект има различни състояния или стойности на променливи.
- Обектът се използва за представяне на обект в реално време в софтуерни приложения.
- Един клас може да има произволен брой обекти.
- Обектите си взаимодействат помежду си чрез извикване на методи.
Как да инстанцирате обект
Декларацията на обекта също се нарича като инстанциране на обекти в Java. Декларирането на обект е същото като декларирането на променлива.
Например, класът Customer_Account, който декларирахме по-горе, може да се използва за деклариране на обект.
По този начин декларираме или създаваме екземпляр на обекта на Customer_Account, както следва:
Customer_Account account;
Горният оператор декларира или създава екземпляр на обект с име ‘акаунт’ от класа Customer_Account.
Имайте предвид, че когато създаваме екземпляр на обект от клас, класът трябва строго да бъде „конкретен клас“. Не можем да декларираме обект от абстрактен клас.
Горното изявление само декларира обект. Не можем да използваме тази променлива, за да извикаме методи на класа или да зададем стойности на променливите-членове. Това е така, защото не сме разпределили памет за декларирания обект.
Затова трябва правилно да създадем обект, за да го използваме по-нататък.
Действителното създаване на обект се извършва чрез инициализация на обекти. След като декларираме обект, трябва да го инициализираме. Тогава само ние можем да използваме този обект за достъп до членовите променливи и методи на класа.
Как да създам обект
Можем да създадем обект в Java, като използваме следните методи:
как да добавя към масив java -
# 1) Използване на нова ключова дума
Можем да инициализираме обект, като използваме нова ключова дума. Този метод е най-често използваният метод за създаване на нов обект.
Например,като имаме клас ABC, можем да създадем нов обект на клас, както следва:
ABC myObj = new ABC ();
В горното изявление myObj е новият обект, създаден с помощта на новия оператор. Обектът, създаден с помощта на този метод, има началните стойности на всички членове на данните. Конструкцията ABC () след новата ключова дума е конструктор по подразбиране за класа ABC.
Също така можем да дефинираме конструктори с параметри и да извикаме този конструктор с новата ключова дума, така че да създадем обект с желаните стойности на членовете на данните.
# 2) Използване на метод Class.forName ()
Java предоставя клас с име „Клас”, който съхранява цялата информация за класове и обекти в системата. Можем да използваме метода forName () на класа ‘Class’, за да създадем обект. Трябва да предадем напълно квалифицирано име на клас като аргумент на метода forName.
Тогава можем да извикаме метода newInstance (), който ще върне екземпляра на класа.
внедряване на хеш функция c ++
Следните кодови редове показват това.
ABC myObj = Class.forName (“com.myPackage.ABC”).newInstance();
Горното изявление ще създаде нов обект myObj от клас ABC.
# 3) Чрез метод clone ()
Класът обект в Java предоставя метод clone (), който връща клонинга или копието на обекта, предаден като аргумент на метода clone ().
Например,
ABC myobj1 = new ABC (); ABC testObj = (ABC) myobj1.clone ();
# 4) Чрез десериализация
Java предоставя техника, наречена десериализация, при която четем обект от запазен файл. Ще учим десериализация в отделен урок.
Как да инициализираме обект
В този раздел ще обсъдим методите за инициализиране на обект в Java. Инициализацията се отнася до присвояване на стойности на членове на данни от класа. По-долу са дадени някои от методите, които се използват за инициализиране на обекти в Java.
# 1) Инициализирайте обект чрез референция
Създаденият референтен обект се използва за съхраняване на стойности в обекта. Това се прави просто с помощта на оператор за присвояване.
Инициализацията на обект чрез използване на референция е показана в програмата по-долу.
//declare a class with three data members class Student{ int student_id; String student_name; Double student_marks; } class Main{ public static void main(String args()){ //create a Student object using new operator Student student_object = new Student(); //initialization of class members using reference student_object.student_id = 101; student_object.student_name = 'Elena'; student_object.student_marks = 89.93; //display data members of the class. System.out.println('Student Id:' + student_object.student_id); System.out.println('Student Name:' + student_object.student_name); System.out.println('Student Marks:' + student_object.student_marks); } }
Изход
Горната програма декларира студентски клас с тричленни променливи. След това в основния метод създаваме обект от клас Student с помощта на новата ключова дума. След това присвояваме данни на всяко от полетата-членове на обекта, както е показано в програмата.
# 2) Инициализиране на обект чрез метод
В този пример ние създаваме двата обекта от класа Student и инициализираме стойността към тези обекти чрез извикване на метода insertRecord. Методът insertRecord е член-член на класа Student.
//declare a class with three data members class Student{ int student_id; String student_name; Double student_marks; //method to initialize class data members void initialize_object(int id, String name, double marks) { student_id = id; student_name = name; student_marks = marks; } } class Main{ public static void main(String args()){ //create a Student object using new operator Student student_object = new Student(); //initialization of class members through method student_object.initialize_object(27, 'Stefan', 78.86); //display data members of the class. System.out.println('Student Id:' + student_object.student_id); System.out.println('Student Name:' + student_object.student_name); System.out.println('Student Marks:' + student_object.student_marks); } }
Изход
# 3) Инициализиране на обект чрез конструктор
Можем също да инициализираме обект с помощта на конструктор.
Програмата за демонстриране на използването на конструктор е дадена по-долу.
//declare a class with three data members class Student{ int student_id; String student_name; Double student_marks; //constructor for initialization Student(int id, String name, double marks) { student_id = id; student_name = name; student_marks = marks; } } class Main{ public static void main(String args()){ //create a Student object using new operator and initialize it with constructor Student student_object = new Student(27, 'Stefan', 78.86); //display data members of the class. System.out.println('Student Id:' + student_object.student_id); System.out.println('Student Name:' + student_object.student_name); System.out.println('Student Marks:' + student_object.student_marks); } }
Изход
В тази програма класът Student има параметризиран конструктор, който взема параметрите и ги присвоява на променливите-членове.
Обект от клас Vs в Java
Клас | Обект |
---|---|
Полето на член на класа няма никакви стойности. | Всеки обект има копие на полетата-членове и свързаните с тях стойности. |
Класът е шаблон или план за създаване на обект. | Обектът е екземпляр на клас. |
Класът не разпределя никаква памет, когато е създаден. | При създаването на обекта се разпределя памет. |
Класът е логичен обект. | Обектът е физическо лице. |
Класът се декларира с ключова дума за клас. | Обектът се създава с помощта на нови, forName () .newInstance (), clone () методи. |
Класът е група от еднакви обекти. Напр. Клас Животни (). | Обектът е специфичен обект. Напр. Животни куче = нови Животни (); |
Класът може да бъде деклариран само веднъж. | Класът може да има произволен брой екземпляри или обекти. |
често задавани въпроси
В # 1) Каква е разликата между клас и обект?
Отговор: Класът е шаблон, използван за създаване на обекти. Обектът е екземпляр на клас. Докато класът е логически обект, обектът е физически обект. Всеки обект има състояние, в което всички променливи-членове имат специфични стойности. Класът няма състояние.
В # 2) Какво съдържа класът Java?
Отговор: Клас Java, който действа като шаблон или план за създаване на обекти, определя свойства или полета и поведение или методи.
В # 3) Защо използваме класове в Java?
Отговор: Използвайки класове и обекти, можем да моделираме реалните приложения в Java и по този начин да ги решаваме ефективно. Обектите със състояние и поведение представляват реални обекти и класовете действат като техни чертежи. Следователно, като използваме класове като градивни елементи, можем да моделираме всяко сложно приложение.
В # 4) Обяснете класа и обекта с пример от реалния живот.
Отговор: Ако приемем автомобила като обект, тогава автомобилът може да има атрибути като марка, цвят, двигател, пробег и т.н. Може да има и някои методи като start (), stop (), applybrakes (). По този начин можем да моделираме автомобил в софтуерен обект. Сега колата може да има различни марки като Maruti, fiat и т.н.
Така че, за да представим всички тези модели автомобили, можем да имаме шаблон на клас, който ще съдържа всички общи атрибути и методи, дефинирани, за да можем да създадем екземпляр на този клас и да получим желания обект на автомобил.
По този начин автомобил от реален живот може лесно да бъде превърнат в обект в Java.
Заключение
В този урок научихме подробностите за класовете и обектите в Java. Ние разгледахме определението за клас и обект. Урокът има подробна дискусия относно дефинирането на класа, компонентите на класа, както и примерите за използване на класа в програма.
Също така научихме подробностите за обектите в Java, включително тяхното деклариране, създаване, инициализация и др. С подходящи примери за програмиране.
Проучихме основните разлики между класа и обектите. В следващите ни уроци ще обсъдим видовете класове и конструкторите в класа, след което ще преминем към други теми.
=> Внимавайте тук за простия сериал за обучение на Java.
Препоръчително четене
- Основи на Java: Синтаксис на Java, клас Java и основни концепции на Java
- Java Integer и Java BigInteger клас с примери
- Какво е Java Vector | Урок за Java Vector Class с примери
- OOP Java: Въведение в обектно-ориентираното програмиране в Java
- Java Array Class Tutorial - java.util.Arrays Class с примери
- Урок за клас Java Scanner с примери
- Масив от обекти в Java: Как да създавате, инициализирате и използвате
- Видове класове в Java: абстрактни, конкретни, окончателни, статични