logo

Obiekty i klasy w Javie

  1. Obiekt w Javie
  2. Zajęcia w Javie
  3. Zmienna instancji w Javie
  4. Metoda w Javie
  5. Przykład obiektu i klasy przechowującej dokumentację ucznia
  6. Obiekt anonimowy

Na tej stronie dowiemy się o obiektach i klasach Java. W technice programowania obiektowego projektujemy program wykorzystując obiekty i klasy.

Obiekt w Javie jest bytem zarówno fizycznym, jak i logicznym, podczas gdy klasa w Javie jest tylko bytem logicznym.

Co to jest obiekt w Javie

obiekt w Javie

Byt, który ma stan i zachowanie, nazywany jest obiektem, np. krzesłem, rowerem, markerem, długopisem, stołem, samochodem itp. Może być fizyczny lub logiczny (namacalny i niematerialny). Przykładem obiektu niematerialnego jest system bankowy.

Obiekt ma trzy cechy:

    Państwo:reprezentuje dane (wartość) obiektu.Zachowanie:reprezentuje zachowanie (funkcjonalność) obiektu, takie jak wpłata, wypłata itp.Tożsamość:Tożsamość obiektu jest zazwyczaj realizowana poprzez unikalny identyfikator. Wartość identyfikatora nie jest widoczna dla użytkownika zewnętrznego. Jednakże jest używany wewnętrznie przez maszynę JVM do jednoznacznej identyfikacji każdego obiektu.
Charakterystyka obiektu w Javie

Na przykład Pióro jest przedmiotem. Nazywa się Reynolds; kolor jest biały, co jest określane jako jego stan. Służy do pisania, więc pisanie jest jego zachowaniem.

Obiekt jest instancją klasy. Klasa to szablon lub plan, na podstawie którego tworzone są obiekty. Zatem obiekt jest instancją (wynikiem) klasy.

Definicje obiektów:

  • Obiekt jest istota ze świata rzeczywistego .
  • Obiekt jest podmiot wykonawczy .
  • Obiekt jest jednostka posiadająca stan i zachowanie .
  • Obiekt jest instancja klasy .

Co to jest klasa w Javie

Klasa to grupa obiektów mających wspólne właściwości. Jest to szablon lub plan, na podstawie którego tworzone są obiekty. Jest to byt logiczny. To nie może być fizyczne.

Klasa w Javie może zawierać:

    Pola Metody Konstruktorzy Bloki Zagnieżdżona klasa i interfejs
Zajęcia w Javie

Składnia deklarowania klasy:

 class { field; method; } 

Zmienna instancji w Javie

Zmienna utworzona wewnątrz klasy, ale poza metodą, nazywana jest zmienną instancji. Zmienna instancji nie pobiera pamięci w czasie kompilacji. Pobiera pamięć w czasie wykonywania, gdy tworzony jest obiekt lub instancja. Dlatego nazywa się ją zmienną instancji.


Metoda w Javie

W Javie metoda przypomina funkcję służącą do ujawniania zachowania obiektu.

Zaleta metody

  • Możliwość ponownego użycia kodu
  • Optymalizacja kodu

nowe słowo kluczowe w Javie

Słowo kluczowe new służy do alokacji pamięci w czasie wykonywania. Wszystkie obiekty otrzymują pamięć w obszarze pamięci sterty.


Przykład obiektu i klasy: main w klasie

W tym przykładzie utworzyliśmy klasę Student, która ma dwa elementy danych: identyfikator i nazwę. Tworzymy obiekt klasy Student za pomocą nowego słowa kluczowego i drukujemy wartość obiektu.

Tutaj tworzymy metodę main() wewnątrz klasy.

Plik: Student.java

 //Java Program to illustrate how to define a class and fields //Defining a Student class. class Student{ //defining fields int id;//field or data member or instance variable String name; //creating main method inside the Student class public static void main(String args[]){ //Creating an object or instance Student s1=new Student();//creating an object of Student //Printing values of the object System.out.println(s1.id);//accessing member through reference variable System.out.println(s1.name); } } 
Przetestuj teraz

Wyjście:

 0 null 

Przykład obiektu i klasy: main poza klasą

W czasie rzeczywistym tworzymy klasy i używamy ich z innych zajęć. Jest to lepsze podejście niż poprzednie. Zobaczmy prosty przykład, w którym mamy metodę main() w innej klasie.

Numer „eulera” w Javie”

Możemy mieć wiele klas w różnych plikach Java lub w jednym pliku Java. Jeśli zdefiniujesz wiele klas w jednym pliku źródłowym Java, dobrym pomysłem jest zapisanie nazwy pliku z nazwą klasy, która zawiera metodę main().

Plik: TestStudent1.java

 //Java Program to demonstrate having the main method in //another class //Creating Student class. class Student{ int id; String name; } //Creating another class TestStudent1 which contains the main method class TestStudent1{ public static void main(String args[]){ Student s1=new Student(); System.out.println(s1.id); System.out.println(s1.name); } } 
Przetestuj teraz

Wyjście:

 0 null 

3 sposoby inicjalizacji obiektu

Istnieją 3 sposoby inicjowania obiektu w Javie.

  1. Według zmiennej referencyjnej
  2. Według metody
  3. Przez konstruktora

1) Przykład obiektu i klasy: Inicjalizacja poprzez referencję

Inicjowanie obiektu oznacza przechowywanie danych w obiekcie. Zobaczmy prosty przykład, w którym zamierzamy zainicjować obiekt poprzez zmienną referencyjną.

Plik: TestStudent2.java

 class Student{ int id; String name; } class TestStudent2{ public static void main(String args[]){ Student s1=new Student(); s1.id=101; s1.name='Sonoo'; System.out.println(s1.id+' '+s1.name);//printing members with a white space } } 
Przetestuj teraz

Wyjście:

 101 Sonoo 

Możemy także tworzyć wiele obiektów i przechowywać w nich informacje poprzez zmienną referencyjną.

Plik: TestStudent3.java

 class Student{ int id; String name; } class TestStudent3{ public static void main(String args[]){ //Creating objects Student s1=new Student(); Student s2=new Student(); //Initializing objects s1.id=101; s1.name='Sonoo'; s2.id=102; s2.name='Amit'; //Printing data System.out.println(s1.id+' '+s1.name); System.out.println(s2.id+' '+s2.name); } } 
Przetestuj teraz

Wyjście:

 101 Sonoo 102 Amit 

2) Przykład obiektu i klasy: Inicjalizacja metodą

W tym przykładzie tworzymy dwa obiekty klasy Student i inicjujemy wartość tych obiektów, wywołując metodę wstawRecord. Tutaj wyświetlamy stan (dane) obiektów wywołując metodę displayInformation().

Plik: TestStudent4.java

 class Student{ int rollno; String name; void insertRecord(int r, String n){ rollno=r; name=n; } void displayInformation(){System.out.println(rollno+' '+name);} } class TestStudent4{ public static void main(String args[]){ Student s1=new Student(); Student s2=new Student(); s1.insertRecord(111,'Karan'); s2.insertRecord(222,'Aryan'); s1.displayInformation(); s2.displayInformation(); } } 
Przetestuj teraz

Wyjście:

 111 Karan 222 Aryan 
Obiekt w Javie z wartościami

Jak widać na powyższym rysunku, obiekt pobiera pamięć ze sterty. Zmienna referencyjna odnosi się do obiektu przydzielonego w obszarze pamięci sterty. Tutaj s1 i s2 są zmiennymi referencyjnymi, które odnoszą się do obiektów alokowanych w pamięci.


3) Przykład obiektu i klasy: Inicjalizacja poprzez konstruktor

O konstruktorach w Javie dowiemy się później.


Przykład obiektu i klasy: Pracownik

Zobaczmy przykład, w którym prowadzimy ewidencję pracowników.

Plik: TestEmployee.java

 class Employee{ int id; String name; float salary; void insert(int i, String n, float s) { id=i; name=n; salary=s; } void display(){System.out.println(id+' '+name+' '+salary);} } public class TestEmployee { public static void main(String[] args) { Employee e1=new Employee(); Employee e2=new Employee(); Employee e3=new Employee(); e1.insert(101,'ajeet',45000); e2.insert(102,'irfan',25000); e3.insert(103,'nakul',55000); e1.display(); e2.display(); e3.display(); } } 
Przetestuj teraz

Wyjście:

 101 ajeet 45000.0 102 irfan 25000.0 103 nakul 55000.0 

Przykład obiektu i klasy: prostokąt

Podano inny przykład przechowujący rekordy klasy Rectangle.

Plik: TestRectangle1.java

 class Rectangle{ int length; int width; void insert(int l, int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width);} } class TestRectangle1{ public static void main(String args[]){ Rectangle r1=new Rectangle(); Rectangle r2=new Rectangle(); r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } } 
Przetestuj teraz

Wyjście:

pothineni baran
 55 45 

Jakie są różne sposoby tworzenia obiektu w Javie?

Istnieje wiele sposobów tworzenia obiektów w Javie. Oni są:

  • Według nowego słowa kluczowego
  • Za pomocą metody newInstance().
  • Metodą clone().
  • Przez deserializację
  • Metodą fabryczną itp.

Tych sposobów tworzenia obiektów nauczymy się później.

Różne sposoby tworzenia obiektu w Javie

Obiekt anonimowy

Anonimowy oznacza po prostu bezimienny. Obiekt, który nie ma odniesienia, nazywany jest obiektem anonimowym. Można go używać wyłącznie w momencie tworzenia obiektu.

Jeśli musisz użyć obiektu tylko raz, dobrym rozwiązaniem jest obiekt anonimowy. Na przykład:

 new Calculation();//anonymous object 

Wywołanie metody poprzez referencję:

 Calculation c=new Calculation(); c.fact(5); 

Wywołanie metody poprzez anonimowy obiekt

 new Calculation().fact(5); 

Zobaczmy pełny przykład anonimowego obiektu w Javie.

 class Calculation{ void fact(int n){ int fact=1; for(int i=1;i<=n;i++){ fact="fact*i;" } system.out.println('factorial is '+fact); public static void main(string args[]){ new calculation().fact(5); calling method with anonymous object < pre> <p>Output:</p> <pre> Factorial is 120 </pre> <a id="objectbyonetype"></a> <h3>Creating multiple objects by one type only</h3> <p>We can create multiple objects by one type only as we do in case of primitives.</p> <p>Initialization of primitive variables:</p> <pre> int a=10, b=20; </pre> <p>Initialization of refernce variables:</p> <pre> Rectangle r1=new Rectangle(), r2=new Rectangle();//creating two objects </pre> <p>Let&apos;s see the example:</p> <pre> //Java Program to illustrate the use of Rectangle class which //has length and width data members class Rectangle{ int length; int width; void insert(int l,int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width);} } class TestRectangle2{ public static void main(String args[]){ Rectangle r1=new Rectangle(),r2=new Rectangle();//creating two objects r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } } </pre> <span> Test it Now </span> <p>Output:</p> <pre> 55 45 </pre> <h3>Real World Example: Account</h3> <p>File: TestAccount.java</p> <pre> //Java Program to demonstrate the working of a banking-system //where we deposit and withdraw amount from our account. //Creating an Account class which has deposit() and withdraw() methods class Account{ int acc_no; String name; float amount; //Method to initialize object void insert(int a,String n,float amt){ acc_no=a; name=n; amount=amt; } //deposit method void deposit(float amt){ amount=amount+amt; System.out.println(amt+&apos; deposited&apos;); } //withdraw method void withdraw(float amt){ if(amount <amt){ system.out.println('insufficient balance'); }else{ amount="amount-amt;" system.out.println(amt+' withdrawn'); } method to check the balance of account void checkbalance(){system.out.println('balance is: '+amount);} display values an object display(){system.out.println(acc_no+' '+name+' creating a test class deposit and withdraw testaccount{ public static main(string[] args){ a1="new" account(); a1.insert(832345,'ankit',1000); a1.display(); a1.checkbalance(); a1.deposit(40000); a1.withdraw(15000); }} < pre> <span> Test it Now </span> <p>Output:</p> <pre> 832345 Ankit 1000.0 Balance is: 1000.0 40000.0 deposited Balance is: 41000.0 15000.0 withdrawn Balance is: 26000.0 </pre></amt){></pre></=n;i++){>

Tworzenie wielu obiektów tylko jednego typu

Możemy tworzyć wiele obiektów jednego typu tylko tak, jak to robimy w przypadku prymitywów.

Inicjalizacja zmiennych pierwotnych:

 int a=10, b=20; 

Inicjalizacja zmiennych referencyjnych:

 Rectangle r1=new Rectangle(), r2=new Rectangle();//creating two objects 

Zobaczmy przykład:

 //Java Program to illustrate the use of Rectangle class which //has length and width data members class Rectangle{ int length; int width; void insert(int l,int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width);} } class TestRectangle2{ public static void main(String args[]){ Rectangle r1=new Rectangle(),r2=new Rectangle();//creating two objects r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } } 
Przetestuj teraz

Wyjście:

 55 45 

Przykład ze świata rzeczywistego: konto

Plik: TestAccount.java

 //Java Program to demonstrate the working of a banking-system //where we deposit and withdraw amount from our account. //Creating an Account class which has deposit() and withdraw() methods class Account{ int acc_no; String name; float amount; //Method to initialize object void insert(int a,String n,float amt){ acc_no=a; name=n; amount=amt; } //deposit method void deposit(float amt){ amount=amount+amt; System.out.println(amt+&apos; deposited&apos;); } //withdraw method void withdraw(float amt){ if(amount <amt){ system.out.println(\'insufficient balance\'); }else{ amount="amount-amt;" system.out.println(amt+\' withdrawn\'); } method to check the balance of account void checkbalance(){system.out.println(\'balance is: \'+amount);} display values an object display(){system.out.println(acc_no+\' \'+name+\' creating a test class deposit and withdraw testaccount{ public static main(string[] args){ a1="new" account(); a1.insert(832345,\'ankit\',1000); a1.display(); a1.checkbalance(); a1.deposit(40000); a1.withdraw(15000); }} < pre> <span> Test it Now </span> <p>Output:</p> <pre> 832345 Ankit 1000.0 Balance is: 1000.0 40000.0 deposited Balance is: 41000.0 15000.0 withdrawn Balance is: 26000.0 </pre></amt){>