Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.
En el mundo real todos los objetos tienen una serie de características y comportamientos. En Programación Orientada a Objetos, ocurre exáctamente igual.
Fueron introducidas en ES6 (EcmaScript 2015). Hacen que JavaScript parezca un lenguaje con programación orientada a objetos, pero sólo es azúcar sintáctico sobre la técnica de creación de prototipos existente. Continúa con la creación de prototipos en segundo plano.
Clases
Plantilla o molde a partir de la cual se construye un objeto. Una clase contiene:
- atributos: propiedades de los objetos (edad, marca, altura, peso…)
- métodos: acciones que pueden realizar los objetos (corrar, saltar, traducir, pensar…)
class Gato{
nombre;
edad;
jugar(){
...
}
dormir(){
...
}
}
Relación entre clases y objetos
Se podría decir que un objeto (o instancia de una clase) es una clase con valores concretos.
Métodos y propiedades de un objeto
Características de un objeto
En programación orientada a objetos, a las características de un objeto las llamamos propiedades, atributos o variables miembro. Por ejemplo, una caja tiene un ancho, un alto, un largo, un peso, un precio, un color, un material…
Estas propiedades o atributos de un objeto sirven para almacenar información del mismo.
Comportamientos de un objeto
En programación orientada a objetos, a los comportamientos de un objeto los llamamos métodos. Los métodos permiten realizar acciones. En el caso de la caja, podría tener los métodos abrir, cerrar… (no se me ocurren más cosas que pueda hacer con una caja y no sean absurdas ٩(^‿^)۶)
Codificación
class Persona {
edad = 40;
sacarConversacion() {
return 'Hola, tengo ' + this.edad;
}
}
const p = new Persona();
console.log(p.edad);
console.log(p.sacarConversacion());
Llamar a un método de una clase desde otro método de la misma clase
class Persona {
llamarAlOtroMetodo() {
this.otroMetodo()
}
otroMetodo() {
console.log('hola que tal');
}
}
const p = new Persona();
p.otroMetodo();
Constructores
El constructor de una clase es el código que se ejecuta cuando la instanciamos (hacemos new).
class Persona {
nombre = "";
edad = "";
constructor(nombre, edad) {
this.nombre = nombre;
this.edad = edad;
}
hablar() {
return 'hola' + this.nombre;
}
}
const p = new Persona("Juan", 20);
console.log(p.hablar());
Herencia
Cuando una clase hereda de otra, hereda todos sus métodos y propiedades.
class Padre {
deuda = 300;
mostrarDeuda() {
console.log("Mi deuda es: " + this.deuda);
}
}
class Hijo extends Padre { }
const h = new Hijo();
console.log(h.deuda);
h.mostrarDeuda();
Constructores y herencia
super() es una función especial que llama al constructor de la clase padre.
class Padre {
constructor() {
console.log("Soy un padre asombroso");
}
}
class Hijo extends Padre {
constructor() {
super();
console.log("Tampoco es para tanto");
}
}
new Hijo();