Класе и објекти у Јави

Класе и објекти у Јави

У Јави класе и објекти чине основу објектно оријентисаног програмирања (ООП). Они помажу моделирању стварних ентитета и организовању кода на структуриран начин.

  • Класа је нацрт који се користи за креирање објеката који деле заједничка својства и понашање.
  • Објекат је инстанца класе. Представља специфичан ентитет креиран из шаблона класе.

На пример, Пас је класа Томи је објекат те класе.

Цласс_Објецт_екамплеКласе и објекти (овде је пас класа, а Боби је објекат)

Јава Цласс

Класа је нацрт који дефинише податке и понашање објеката. Групише сродне области и методе у једну целину. Меморија за његове чланове се додељује само када је објекат креиран.

  • Делује као шаблон за креирање објеката са дељеном структуром.
  • Не заузима меморију за поља до инстанцирања.
  • Може да садржи поља методе конструкторе угнежђене класе и интерфејсе.
Java
   class   Student     {      int     id  ;      String     n  ;      public     Student  (  int     id       String     n  )     {      this  .  id     =     id  ;      this  .  n     =     n  ;      }   }   public     class   Main     {      public     static     void     main  (  String  []     args  )     {      Student     s1     =     new     Student  (  10       'Alice'  );      System  .  out  .  println  (  s1  .  id  );      System  .  out  .  println  (  s1  .  n  );      }   }   

Излаз
10 Alice  

Јава објекти

Објекат је инстанца класе креирана за приступ њеним подацима и операцијама. Сваки објекат има своје стање.

  • Држава : Вредности ускладиштене у пољима.
  • Понашање : Акције дефинисане кроз методе.
  • Идентитет : Разликује један објекат од другог.

Објекти одражавају ствари из стварног света као што су производ или круг. Непримитивни објекти се чувају на хрпи док њихове референце остају на стеку.

Објекти у ЈавиЈава објекти (пример паса)

Инстанција објекта

Креирање објекта је познато као инстанција. Све инстанце класе деле структуру и понашање док чувају различите вредности стања.

Декларисање објеката у ЈавиДекларација Јава објекта

Декларација:

Дог туффи;

Ово само декларише референцу. Објекат није креиран и референца држи нулл.

Иницијализација:

туффи = нев Дог('Туффи' 'Папиллон' 5 'Вхите');

Класе-и-објекти-у-јава-3-768Иницијализација

Оператор нев додељује меморију и позива конструктор.

Пример: Дефинисање и коришћење класе

Java
   public     class   Dog     {      String     name  ;      String     breed  ;      int     age  ;      String     color  ;      public     Dog  (  String     name       String     breed       int     age       String     color  )     {      this  .  name     =     name  ;      this  .  breed     =     breed  ;      this  .  age     =     age  ;      this  .  color     =     color  ;      }      public     String     getName  ()     {     return     name  ;     }      public     String     getBreed  ()     {     return     breed  ;     }      public     int     getAge  ()     {     return     age  ;     }      public     String     getColor  ()     {     return     color  ;     }      @Override      public     String     toString  ()     {      return     'Name is: '     +     name      +     'nBreed age and color are: '      +     breed     +     ' '     +     age     +     ' '     +     color  ;      }      public     static     void     main  (  String  []     args  )     {      Dog     tuffy     =     new     Dog  (  'tuffy'       'papillon'       5       'white'  );      System  .  out  .  println  (  tuffy  );      }   }   

Излаз
Name is: tuffy Breed age and color are: papillon 5 white  

Напомена: Свака класа има бар један конструктор. Ако ниједан није дефинисан, Јава обезбеђује подразумевани конструктор без аргумената који позива родитељски конструктор.

Иницијализујте објекат користећи метод/функцију

Java
   public     class   Geeks     {      static     String     name  ;      static     float     price  ;      static     void     set  (  String     n       float     p  )     {      name     =     n  ;      price     =     p  ;      }      static     void     get  ()     {      System  .  out  .  println  (  'Software name is: '     +     name  );      System  .  out  .  println  (  'Software price is: '     +     price  );      }      public     static     void     main  (  String  []     args  )     {      Geeks  .  set  (  'Visual Studio'       0.0f  );      Geeks  .  get  ();      }   }   

Излаз
Software name is: Visual Studio Software price is: 0.0  

Начини креирања објеката у Јави

Јава подржава четири стандардна приступа.

1. Коришћење нове кључне речи

Најдиректнији начин за креирање објекта.

Java
   // creating object of class Test    Test     t     =     new     Test  ();   

2. Коришћење рефлексије

Користи се за динамичко учитавање класа као што се види у оквирима као што је Спринг.

Java
   class   Student     {      public     Student  ()     {}   }   public     class   Main     {      public     static     void     main  (  String  []     args  )     {      try     {      Class        c     =     Class  .  forName  (  'Student'  );      Student     s     =     (  Student  )     c  .  getDeclaredConstructor  ().  newInstance  ();      System  .  out  .  println  (  s  );      }     catch     (  Exception     e  )     {      e  .  printStackTrace  ();      }      }   }   

Излаз
Student@1dbd16a6  

3. Коришћење методе цлоне().

цлоне() креира копију постојећег објекта. Класа мора да имплементира Цлонеабле.

Java
   class   Geeks     implements     Cloneable     {      String     name     =     'GeeksForGeeks'  ;      @Override      protected     Object     clone  ()     throws     CloneNotSupportedException     {      return     super  .  clone  ();      }      public     static     void     main  (  String  []     args  )     {      try     {      Geeks     g1     =     new     Geeks  ();      Geeks     g2     =     (  Geeks  )     g1  .  clone  ();      System  .  out  .  println  (  g2  .  name  );      }     catch     (  Exception     e  )     {      e  .  printStackTrace  ();      }      }   }   

Излаз
GeeksForGeeks  

4. Коришћење десериализације

Десеријализација је техника читања објекта из сачуваног стања у датотеци. Објекат се поново креира из ускладиштеног тока бајтова.

Погледајте Серијализација/де-сериализација у Јави .

Java
   import     java.io.*  ;   class   Student     implements     Serializable     {      private     String     name  ;      public     Student  (  String     name  )     {     this  .  name     =     name  ;     }      public     String     toString  ()     {     return     'Student: '     +     name  ;     }   }   public     class   Main     {      public     static     void     main  (  String  []     args  )     {      try     (  ObjectOutputStream     out     =      new     ObjectOutputStream  (  new     FileOutputStream  (  'student.ser'  )))     {      out  .  writeObject  (  new     Student  (  'Alice'  ));      }     catch     (  IOException     e  )     {     e  .  printStackTrace  ();     }      try     (  ObjectInputStream     in     =      new     ObjectInputStream  (  new     FileInputStream  (  'student.ser'  )))     {      Student     s     =     (  Student  )     in  .  readObject  ();      System  .  out  .  println  (  s  );      }     catch     (  Exception     e  )     {     e  .  printStackTrace  ();     }      }   }   

Излаз
Student: Alice  

Једна референца може указивати на различите објекте у различито време.

Java
   Test     test     =     new     Test  ();   test     =     new     Test  ();   

У наслеђивању је уобичајено да се користи родитељска референца за подређене објекте.

Java
   Animal     obj     =     new     Dog  ();   obj     =     new     Cat  ();   

Нереференцирани објекти постају подобни за сакупљање смећа.

Анонимоус Објецтс

Анонимни објекти се креирају без референце и одмах се користе за једнократне операције.

  • Нема референтне променљиве: објекат није могуће поново користити.
  • Креиран и употребљен тренутно штеди меморију за краткотрајне задатке.
  • Уобичајено у руковању догађајима (нпр. кликови на дугме).
Java
   new     Dog  (  'Max'       'Labrador'       3       'Black'  ).  getName  ();   

Уобичајено у руковању УИ догађајима.

Креирај квиз

Топ Чланци

Категорија