Classes e objetos em Java

Classes e objetos em Java

Em Java, classes e objetos formam a base da Programação Orientada a Objetos (OOP). Eles ajudam a modelar entidades do mundo real e a organizar o código de forma estruturada.

  • Uma classe é um modelo usado para criar objetos que compartilham propriedades e comportamentos comuns.
  • Um objeto é uma instância de uma classe. Representa uma entidade específica criada a partir do modelo de classe.

Por exemplo Dog é uma classe Tommy é um objeto dessa classe.

Classe_Objeto_exemploClasses e objetos (aqui Dog é a classe e Bobby é o objeto)

Classe Java

Uma classe é um modelo que define dados e comportamento de objetos. Ele agrupa campos e métodos relacionados em uma única unidade. A memória para seus membros é alocada somente quando um objeto é criado.

  • Atua como modelo para criar objetos com estrutura compartilhada.
  • Não ocupa memória para campos até a instanciação.
  • Pode conter campos, métodos, construtores, classes e interfaces aninhadas.
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  );      }   }   

Saída
10 Alice  

Objetos Java

Um objeto é uma instância de uma classe criada para acessar seus dados e operações. Cada objeto mantém seu próprio estado.

  • Estado : Valores armazenados em campos.
  • Comportamento : Ações definidas através de métodos.
  • Identidade : Distingue um objeto de outro.

Os objetos refletem itens do mundo real, como produto do cliente ou círculo. Objetos não primitivos são armazenados na pilha enquanto suas referências permanecem na pilha.

Objetos em JavaObjetos Java (exemplo de cães)

Instanciação de objetos

A criação de um objeto é conhecida como instanciação. Todas as instâncias de uma classe compartilham estrutura e comportamento enquanto armazenam diferentes valores de estado.

Declarando objetos em JavaDeclaração de objeto Java

Declaração:

Cachorro tufado;

Isso apenas declara uma referência. O objeto não é criado e a referência é nula.

Inicialização:

tuffy = novo Cachorro('Tuffy' 'Papillon' 5 'Branco');

Classes e objetos em Java-3-768Inicialização

O novo operador aloca memória e invoca o construtor.

Exemplo: Definindo e Usando uma Classe

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  );      }   }   

Saída
Name is: tuffy Breed age and color are: papillon 5 white  

Observação: Cada classe possui pelo menos um construtor. Se nenhum for definido, Java fornece um construtor padrão sem argumentos que chama o construtor pai.

Inicialize o objeto usando método/função

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  ();      }   }   

Saída
Software name is: Visual Studio Software price is: 0.0  

Maneiras de criar objetos em Java

Java oferece suporte a quatro abordagens padrão.

1. Usando nova palavra-chave

Maneira mais direta de criar um objeto.

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

2. Usando reflexão

Usado para carregamento dinâmico de classes, conforme visto em frameworks como Spring.

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  ();      }      }   }   

Saída
Student@1dbd16a6  

3. Usando o método clone()

clone() cria uma cópia de um objeto existente. A classe deve implementar Cloneable.

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  ();      }      }   }   

Saída
GeeksForGeeks  

4. Usando desserialização

A desserialização é uma técnica de leitura de um objeto do estado salvo em um arquivo. O objeto é recriado a partir de um fluxo de bytes armazenado.

Consulte Serialização/desserialização em Java .

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  ();     }      }   }   

Saída
Student: Alice  

Uma única referência pode apontar para objetos diferentes em momentos diferentes.

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

Na herança é comum usar uma referência pai para objetos filhos.

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

Objetos não referenciados tornam-se elegíveis para coleta de lixo.

Objetos Anônimos

Objetos anônimos são criados sem referência e usados ​​imediatamente para operações únicas.

  • Nenhuma variável de referência: não é possível reutilizar o objeto.
  • Criado e usado economiza memória instantaneamente para tarefas de curta duração.
  • Comum no tratamento de eventos (por exemplo, cliques em botões).
Java
   new     Dog  (  'Max'       'Labrador'       3       'Black'  ).  getName  ();   

Comum no tratamento de eventos de UI.

Criar questionário