Introducción a la OOP
Parte de la sección Programación Orientada a Objetos del Journey de Java de Coddy — lección 2 de 87.
La Programación Orientada a Objetos (POO) es una forma de estructurar código utilizando objetos que contienen datos y comportamiento.
Una clase es una plantilla
public class Animal {
String name;
public Animal(String name) {
this.name = name;
}
public String makeSound() {
return this.name + " makes a sound!";
}
}Un objeto es una instancia creada a partir del plano
Animal dog = new Animal("Buddy");
System.out.println(dog.makeSound());Salida:
Buddy makes a sound!La POO le permite modelar cosas del mundo real como objetos. Cada objeto tiene datos (campos) y acciones (métodos). Los cuatro pilares de la POO son el Encapsulamiento, la Herencia, el Polimorfismo y la Abstracción.
Desafío
FácilCrea una clase Animal que demuestre los conceptos básicos de la POO:
- Un campo
name(String) - Un constructor que establezca el nombre
- Un método
makeSound()que devuelva"<name> makes a sound!"
Hoja de referencia
La Programación Orientada a Objetos (POO) estructura el código utilizando objetos que contienen datos y comportamiento.
Una clase es un plano para crear objetos:
public class Animal {
String name;
public Animal(String name) {
this.name = name;
}
public String makeSound() {
return this.name + " makes a sound!";
}
}Un objeto es una instancia creada a partir de una clase:
Animal dog = new Animal("Buddy");
System.out.println(dog.makeSound());Los objetos tienen datos (campos) y acciones (métodos). Los cuatro pilares de la POO son el Encapsulamiento, la Herencia, el Polimorfismo y la Abstracción.
Pruébalo tú mismo
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
Animal animal = new Animal(name);
System.out.println("Animal name: " + animal.name);
System.out.println(animal.makeSound());
}
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Programación Orientada a Objetos
1Fundamentos de OOP
Archivos externosIntroducción a la OOPClases vs. ObjetosLa palabra clave thisMétodosCampos (Atributos)Método constructorSobrecarga de constructoresResumen - Calculadora simple4Herencia
Herencia básica (extends)La palabra clave superSobrescritura de métodos (@Override)Encadenamiento de constructoresLa clase ObjectHerencia simple y multinivelPor qué no hay herencia múltiple de clasesResumen - Jerarquía de empleados7Métodos especiales y la clase Object
Método toString()equals() y hashCode()Método clone()compareTo() y ComparableInterfaz ComparatorResumen - Ordenamiento personalizado2Modificadores de acceso y encapsulamiento
Visión general de los niveles de accesoMétodos Getter y SetterOcultamiento de informaciónLa palabra clave finalResumen - Gestor de cuentas bancarias5Polimorfismo
Fundamentos de sobrecarga de métodosSobrescritura de métodos (tiempo de ejecución)Upcasting y DowncastingEl operador instanceofClases y métodos abstractosResumen - Calculadora de figuras8Conceptos avanzados de POO
Composición vs. HerenciaAgregación vs. ComposiciónClases internas, anidadas y anónimasEnums y métodos de EnumRecords (Java 16+)Clases selladas (Java 17+)11Patrones de diseño - Parte 1
Introducción a los patrones de diseñoPatrón SingletonPatrón FactoryPatrón BuilderPatrón ObserverPatrón Strategy3Propiedades de clase y miembros estáticos
Variables de instancia vs. estáticasMétodos estáticosBloques estáticosConstantes (static final)Repaso - Contador y utilidad6Interfaces y Clases Abstractas
Introducción a las InterfacesImplementación de InterfacesImplementación de Múltiples InterfacesMétodos Default y Static en InterfacesClases Abstractas vs InterfacesInterfaces FuncionalesResumen - Sistema de Pagos9Genéricos
Introducción a los genéricosClases genéricasMétodos genéricosParámetros de tipo delimitadosComodines (?, extends, super)Resumen - Contenedor genérico12Patrones de diseño Parte 2
Patrón CommandPatrón AdapterPatrón DecoratorPatrón Template MethodPatrón StatePatrón CompositePatrón Iterator