in

Clases y objetos en Java

gfg 200x200 min

Las clases y los objetos son conceptos básicos de la programación orientada a objetos que giran en torno a las entidades de la vida real.

Clase

Una clase es un modelo o prototipo definido por el usuario a partir del cual se crean los objetos. Representa el conjunto de propiedades o métodos que son comunes a todos los objetos de un tipo. En general, las declaraciones de clase pueden incluir estos componentes, en orden:

  1. Modificadores: Una clase puede ser pública o tener acceso predeterminado (consulte esto para obtener más detalles).
  2. palabra clave de clase: La palabra clave class se utiliza para crear una clase.
  3. Nombre de la clase: El nombre debe comenzar con una letra inicial (en mayúscula por convención).
  4. Superclase (si existe): El nombre del padre de la clase (superclase), si lo hay, precedido por la palabra clave extiende. Una clase solo puede extender (subclase) a un padre.
  5. Interfaces (si las hay): Una lista separada por comas de interfaces implementadas por la clase, si las hay, precedidas por la palabra clave implements. Una clase puede implementar más de una interfaz.
  6. Cuerpo: El cuerpo de la clase rodeado de llaves, {}.

Los constructores se utilizan para inicializar nuevos objetos. Los campos son variables que proporcionan el estado de la clase y sus objetos, y los métodos se utilizan para implementar el comportamiento de la clase y sus objetos.
Hay varios tipos de clases que se utilizan en aplicaciones en tiempo real, como clases anidadas, clases anónimas, expresiones lambda.

Objeto

Es una unidad básica de programación orientada a objetos y representa las entidades de la vida real. Un programa típico de Java crea muchos objetos que, como sabe, interactúan invocando métodos. Un objeto consta de:

  1. Estado: Está representado por atributos de un objeto. También refleja las propiedades de un objeto.
  2. Comportamiento: Está representado por métodos de un objeto. También refleja la respuesta de un objeto con otros objetos.
  3. Identidad: Da un nombre único a un objeto y permite que un objeto interactúe con otros objetos.

Ejemplo de objeto: perro

Diagrama en blanco - Página 1 (5)

Los objetos corresponden a cosas que se encuentran en el mundo real. Por ejemplo, un programa de gráficos puede tener objetos como «círculo», «cuadrado», «menú». Un sistema de compras en línea puede tener objetos como «carrito de compras», «cliente» y «producto».

Declarar objetos (también llamado instanciar una clase)

Cuando se crea un objeto de una clase, se dice que la clase es instanciado. Todas las instancias comparten los atributos y el comportamiento de la clase. Pero los valores de esos atributos, es decir, el estado, son únicos para cada objeto. Una sola clase puede tener cualquier número de instancias.

Ejemplo:

Diagrama en blanco - Página 1 (3)

Como declaramos variables como (type name;). Esto notifica al compilador que usaremos name para referirnos a datos cuyo tipo es type. Con una variable primitiva, esta declaración también reserva la cantidad adecuada de memoria para la variable. Entonces, para la variable de referencia, el tipo debe ser estrictamente un nombre de clase concreto. En general, nosotros hipocresía crear objetos de una clase abstracta o una interfaz.

Dog tuffy;

Si declaramos una variable de referencia (tuffy) así, su valor será indeterminado (nulo) hasta que se cree y se le asigne un objeto. La simple declaración de una variable de referencia no crea un objeto.

Inicializando un objeto

El nuevo operador crea una instancia de una clase asignando memoria para un nuevo objeto y devolviendo una referencia a esa memoria. El nuevo operador también invoca al constructor de clases.

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("Hi my name is "+ this.getName()+

               ".nMy breed,age and color are " +

               this.getBreed()+"," + this.getAge()+

               ","+ this.getColor());

    }

    public static void main(String[] args)

    {

        Dog tuffy = new Dog("tuffy","papillon", 5, "white");

        System.out.println(tuffy.toString());

    }

}

Producción:

Hi my name is tuffy.
My breed,age and color are papillon,5,white
  • Esta clase contiene un solo constructor. Podemos reconocer un constructor porque su declaración usa el mismo nombre que la clase y no tiene ningún tipo de retorno. El compilador de Java diferencia los constructores según el número y el tipo de argumentos. El constructor en el Perro la clase toma cuatro argumentos. La siguiente declaración proporciona «tuffy», «papillon», 5, «blanco» como valores para esos argumentos:
Dog tuffy = new Dog("tuffy","papillon",5, "white");
  • El resultado de ejecutar esta declaración se puede ilustrar como:

Intitulado

Nota : Todas las clases tienen al menos uno constructor. Si una clase no declara explícitamente ninguno, el compilador de Java proporciona automáticamente un constructor sin argumentos, también llamado constructor predeterminado. Este constructor predeterminado llama al constructor sin argumentos del padre de la clase (ya que contiene solo una declaración, es decir, super ();), o el Objeto constructor de clase si la clase no tiene otro padre (ya que la clase Object es padre de todas las clases, ya sea directa o indirectamente).

Formas de crear un objeto de una clase

Hay cuatro formas de crear objetos en Java. Estrictamente hablando, solo hay una forma (usando nuevo palabra clave), y el resto utiliza internamente nuevo palabra clave.

  • Usando nueva palabra clave: Es la forma más común y general de crear objetos en java. Ejemplo:
// creating object of class Test
Test t = new Test();
  • Usando el método Class.forName (String className): Hay una clase predefinida en el paquete java.lang con el nombre Class. El método forName (String className) devuelve el objeto Class asociado con la clase con el nombre de cadena dado. Tenemos que dar el nombre completo para una clase. Al llamar al nuevo método Instance () en este objeto Class, se devuelve una nueva instancia de la clase con el nombre de cadena dado.
// creating object of public class Test
// consider class Test present in com.p1 package
Test obj = (Test)Class.forName("com.p1.Test").newInstance();
  • Usando el método clone (): El método clone () está presente en la clase Object. Crea y devuelve una copia del objeto.
        
// creating object of class Test
Test t1 = new Test();

// creating clone of above object
Test t2 = (Test)t1.clone();
            
FileInputStream file = new FileInputStream(filename);
ObjectInputStream in = new ObjectInputStream(file);
Object obj = in.readObject();

Crear varios objetos de un solo tipo (una buena práctica)

  • En tiempo real, necesitamos diferentes objetos de una clase en diferentes métodos. Crear una serie de referencias para almacenarlas no es una buena práctica y, por lo tanto, declaramos una variable de referencia estática y la usamos siempre que sea necesario. En este caso, el desperdicio de memoria es menor. Los objetos a los que ya no se hace referencia serán destruidos por Garbage Collector de java. Ejemplo:
          
Test test = new Test();
test = new Test();
  • En el sistema de herencia, usamos la variable de referencia de la clase principal para almacenar un objeto de subclase. En este caso, podemos cambiar a diferentes objetos de subclase usando la misma variable referenciada. Ejemplo:
class Animal {}

class Dog extends Animal {}
class Cat extends Animal {}

public class Test
{
    // using Dog object
    Animal obj = new Dog();

    // using Cat object
    obj = new Cat();
}       

Objetos anónimos

Los objetos anónimos son los objetos que se instancian pero no se almacenan en una variable de referencia.

  • Se utilizan para llamadas de método inmediatas.
  • Se destruirán después de llamar al método.
  • Se utilizan ampliamente en diferentes bibliotecas. Por ejemplo, en las bibliotecas AWT, se utilizan para realizar alguna acción al capturar un evento (por ejemplo, presionar una tecla).
  • En el siguiente ejemplo, cuando se presiona una tecla (referida por btn), simplemente estamos creando un objeto anónimo de la clase EventHandler para simplemente llamar al método handle.
btn.setOnAction(new EventHandler()
{
    public void handle(ActionEvent event)
    {
        System.out.println("Hello World!");
    }
});

Este artículo es una contribución de Gaurav Miglani. Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o envíe su artículo por correo electrónico a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema discutido anteriormente.

¡Atención lector! No dejes de aprender ahora. Hazte con todo lo importante Fundación Java y conceptos de colecciones con el Curso de Fundamentos de Java y Colecciones de Java a un precio asequible para los estudiantes y prepárese para la industria. Para completar su preparación desde el aprendizaje de un idioma hasta DS Algo y muchos más, consulte Curso completo de preparación para entrevistas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

apple touch icon@2

¿Cómo puedo crear una matriz bidimensional en JavaScript?

Cielo vs Infierno – Diferencia y Comparación