Clases y objetos en Java

Clases y objetos en Java

En Java, las clases y los objetos forman la base de la programación orientada a objetos (POO). Ayudan a modelar entidades del mundo real y organizar el código de forma estructurada.

  • Una clase es un modelo que se utiliza para crear objetos que comparten propiedades y comportamientos comunes.
  • Un objeto es una instancia de una clase. Representa una entidad específica creada a partir de la plantilla de clase.

Por ejemplo, Perro es una clase. Tommy es un objeto de esa clase.

Clase_Objeto_ejemploClases y Objetos (Aquí Perro es la Clase y Bobby es el Objeto)

Clase Java

Una clase es un modelo que define datos y comportamiento de objetos. Agrupa campos y métodos relacionados en una sola unidad. La memoria para sus miembros se asigna sólo cuando se crea un objeto.

  • Actúa como plantilla para crear objetos con estructura compartida.
  • No ocupa memoria para los campos hasta la creación de instancias.
  • Puede contener campos, métodos, constructores, clases e interfaces anidadas.
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  );      }   }   

Producción
10 Alice  

Objetos Java

Un objeto es una instancia de una clase creada para acceder a sus datos y operaciones. Cada objeto tiene su propio estado.

  • Estado : Valores almacenados en campos.
  • Comportamiento : Acciones definidas a través de métodos.
  • Identidad : Distingue un objeto de otro.

Los objetos reflejan elementos del mundo real, como el producto o el círculo del cliente. Los objetos no primitivos se almacenan en el montón mientras sus referencias permanecen en la pila.

Objetos en JavaObjetos Java (ejemplo de perros)

Creación de instancias de objetos

La creación de un objeto se conoce como creación de instancias. Todas las instancias de una clase comparten estructura y comportamiento mientras almacenan diferentes valores de estado.

Declarar objetos en JavaDeclaración de objeto Java

Declaración:

Toba de perro;

Esto sólo declara una referencia. El objeto no se crea y la referencia es nula.

Inicialización:

tuffy = nuevo Perro('Tuffy' 'Papillon' 5 'Blanco');

Clases-y-objetos-en-java-3-768Inicialización

El nuevo operador asigna memoria e invoca al constructor.

Ejemplo: definición y uso de una clase

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

Producción
Name is: tuffy Breed age and color are: papillon 5 white  

Nota: Cada clase tiene al menos un constructor. Si no hay ninguno definido, Java proporciona un constructor predeterminado sin argumentos que llama al constructor principal.

Inicializar objeto utilizando método/función

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

Producción
Software name is: Visual Studio Software price is: 0.0  

Formas de crear objetos en Java

Java admite cuatro enfoques estándar.

1. Usando una nueva palabra clave

La forma más directa de crear un objeto.

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

2. Usando la reflexión

Se utiliza para la carga dinámica de clases como se ve en marcos 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  ();      }      }   }   

Producción
Student@1dbd16a6  

3. Usando el método clonar()

clone() crea una copia de un objeto existente. La clase debe 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  ();      }      }   }   

Producción
GeeksForGeeks  

4. Usando la deserialización

La deserialización es una técnica para leer un objeto desde el estado guardado en un archivo. El objeto se recrea a partir de un flujo de bytes almacenado.

Referirse a Serialización/desserialización en 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  ();     }      }   }   

Producción
Student: Alice  

Una sola referencia puede apuntar a diferentes objetos en diferentes momentos.

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

En herencia, es común utilizar una referencia principal para objetos secundarios.

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

Los objetos sin referencia se vuelven elegibles para la recolección de basura.

Objetos anónimos

Los objetos anónimos se crean sin referencia y se utilizan inmediatamente para operaciones únicas.

  • Sin variable de referencia: no se puede reutilizar el objeto.
  • Creado y utilizado ahorra memoria instantáneamente para tareas de corta duración.
  • Común en el manejo de eventos (por ejemplo, clics en botones).
Java
   new     Dog  (  'Max'       'Labrador'       3       'Black'  ).  getName  ();   

Común en el manejo de eventos de la interfaz de usuario.

Crear cuestionario