Clases y atributos en poo

21/02/2012

La Programación Orientada a Objetos (POO) es un paradigma de programación que se basa en el concepto de "objetos" para estructurar el código. Estos objetos encapsulan datos ( atributos ) y comportamiento (métodos). Las clases actúan como plantillas para crear estos objetos.

Temario

Qué es una Clase?

Una clase es una plantilla, un modelo o una descripción de un tipo de objeto. Define los atributos (datos) y los métodos (comportamiento) que los objetos de esa clase compartirán. Piensa en una clase como un plano para construir una casa; el plano en sí no es una casa, pero define cómo se construirá una.

Una clase en Java se declara utilizando la palabra clave class, seguida del nombre de la clase y entre llaves {}se definen sus miembros:

public class Perro { // Atributos String raza; String nombre; int edad; // Métodos void ladrar() { System.out.println("¡Guau!"); } void comer(String comida) { System.out.println("El perro está comiendo " + comida); }}

En este ejemplo, Perroes la clase. raza, nombrey edadson sus atributos (variables que almacenan información sobre el perro). ladrar()y comer()son sus métodos (funciones que describen el comportamiento del perro).

Qué es un Atributo?

Un atributo, también conocido como miembro de datos o variable de instancia, es una característica o propiedad de un objeto. Representa datos asociados a un objeto específico. En la clase Perro, raza, nombrey edadson atributos. Cada perro (objeto) tendrá sus propios valores para estos atributos.

Tipos de Atributos

Existen diferentes tipos de atributos :

  • Atributos de instancia: Cada objeto de la clase tiene su propia copia de estos atributos . Sus valores pueden variar entre objetos.
  • Atributos de clase (estáticos): Hay solo una copia de estos atributos , compartida por todos los objetos de la clase . Se declaran con la palabra clave static .
  • Atributos finales (final): Su valor se establece una vez y no se puede modificar después de la inicialización. Se declaran con la palabra clave final .

Qué es un Objeto?

Un objeto es una instancia de una clase. Es una entidad concreta que existe en memoria y tiene valores específicos para los atributos definidos en su clase. Siguiendo la analogía de la casa, un objeto sería una casa construida a partir del plano ( clase ).

Para crear un objeto en Java, se utiliza la palabra clave new:

Perro miPerro = new Perro();miPerro.nombre = "Fido";miPerro.raza = "Labrador";miPerro.edad = 3;

Aquí, miPerroes un objeto de la clase Perro. Le asignamos valores a sus atributos.

Diferencias entre Clases y Objetos

Característica Clase Objeto
Definición Plantilla o modelo Instancia concreta de una clase
Existencia Definición en código Existe en memoria
Valores de atributos No tiene valores específicos Tiene valores específicos para sus atributos
Memoria No ocupa memoria directamente Ocupa memoria

Constructores

Los constructores son métodos especiales dentro de una clase que se utilizan para inicializar los atributos de un objeto cuando se crea. Tienen el mismo nombre que la clase y no tienen un tipo de retorno. Un constructor puede tener parámetros para proporcionar valores iniciales a los atributos.

public class Perro { String raza; String nombre; int edad; // Constructor con parámetros public Perro(String raza, String nombre, int edad) { this.raza = raza; this.nombre = nombre; this.edad = edad; }}

Este constructor permite crear objetos Perrocon valores iniciales para sus atributos :

Perro otroPerro = new Perro("Pastor Alemán", "Max", 5);

Acceso a Atributos

El acceso a los atributos de un objeto se realiza mediante la notación de punto ( .):

System.out.println(miPerro.nombre); // Imprime "Fido"miPerro.edad = 4; // Modifica el atributo edad

Encapsulación

La encapsulación es un principio importante de la POO que implica ocultar los detalles internos de una clase y exponer solo una interfaz pública. Se suele lograr declarando los atributos como privados ( private) y proporcionando métodos públicos ( public) para acceder y modificar sus valores (métodos getter y setter).

public class Perro { private String raza; private String nombre; private int edad; // Getter para el atributo raza public String getRaza() { return raza; } // Setter para el atributo raza public void setRaza(String raza) { this.raza = raza; } // ... otros getters y setters ...}

Esto ayuda a proteger la integridad de los datos y a controlar cómo se modifican los atributos.

Herencia

La herencia permite crear nuevas clases (subclases) basadas en clases existentes (superclases). La subclase hereda los atributos y métodos de la superclase y puede agregar sus propios atributos y métodos o sobreescribir los existentes.

Polimorfismo

El polimorfismo permite tratar objetos de diferentes clases de manera uniforme. Esto se logra a través de interfaces o clases abstractas.

Consultas Habituales

¿Cuál es la diferencia entre un atributo de instancia y un atributo de clase?

Un atributo de instancia es único para cada objeto de la clase, mientras que un atributo de clase (estático) es compartido por todos los objetos de la clase.

¿Qué es un método getter y un método setter?

Los métodos getter y setter proporcionan una forma controlada de acceder y modificar los atributos de un objeto, permitiendo la encapsulación.

¿Cuándo se utiliza la palabra clave static?

La palabra clave staticse utiliza para declarar atributos y métodos de clase (compartidos por todos los objetos).

¿Qué es la encapsulación?

La encapsulación es un principio de POO que consiste en ocultar los detalles internos de una clase y exponer solo una interfaz pública.

La comprensión de las clases y los atributos es fundamental para la programación orientada a objetos. Dominar estos conceptos permite crear software modular, reutilizable y fácil de mantener.

Si quieres conocer otros artículos parecidos a Clases y atributos en poo puedes visitar la categoría Libros y Librerías.

Subir