Uso del repositorio: Este repositorio sirve para mostrar mi aprendizaje en java , con notas y ejercicios .
Que es POO? Es una de las paradigmas de programación , este tiene el fin de facilitar programación usando clases y objetos ( y otros conceptos que veré luego)
Que es una clase ? Una clase nos funciona como plantilla que usaremos para facilitarnos la vida, Dentro de la clase se va definir las características de la identidad y sus atributos. Que es un objeto? Un objeto seria una representación de algo
Sintaxis de la clase
//[Modificador de acceso] [Class] [Nombre de la clase] {}
public class Main {
int x = 5;
}
Sintaxis del objeto
public class Main {
int x = 5;
public static void main(String[] args) {
//[Clase][nombre del objeto] = [new][]Nombre de la clase]
Main myObj = new Main();//Este es el objeto
System.out.println(myObj.x);
//out : 5
}
}
Se puede tener diferentes objetos? Claro , lo que cambia en la sintaxis es que el nombre del objeto debe ser diferente
public class Main {
int x = 5;
public static void main(String[] args) {
Main myObj1 = new Main(); // Object 1
Main myObj2 = new Main(); // Object 2
System.out.println(myObj1.x);
System.out.println(myObj2.x);
}
}
//out
//5
//5
Que es una atributo? La explicación mas sencilla es que son variables de la clase, así de sencillo
public class Main {
int x = 5;
int y = 3;
}
//Aqui esta clase tiene dos atributos x , y
Como llamamos los atributos? Pues muy sencillo , solamente llamaos las varibles usando el objeto
public class Main {
int x = 5;
//LLamar un atributo [Nombre del objeto].[nombre de la variable]
public static void main(String[] args) {
Main myObj = new Main();
System.out.println(myObj.x);
}
}
Modificacion de atribtutos'
public class Main {
int x = 10;
public static void main(String[] args) {
Main myObj = new Main();
myObj.x = 25; // x is now 25
System.out.println(myObj.x);
}
}
Que hacer si no quiero que se modifiquen?
Usamos final para que nos se modifique el acceso
public class Main {
final int x = 10;
public static void main(String[] args) {
Main myObj = new Main();
myObj.x = 25; // will generate an error: cannot assign a value to a final variable
System.out.println(myObj.x);
}
}
Que es un método? Los métodos son funciones que ejecutan códigos , sirven para separar apartados del programa y se efectúan con el objetos
Ejemplo
public class Main {
static void myMethod() {
System.out.println("Hello World!");
}
public static void main(String[] args) {
myMethod();
}
}
// Outputs "Hello World!"
Loa métodos Getter y Setter Son métodos que permiten el acceso a los atributos de una clase , que están encapsulados de manera privada Metodo Getter El metodo get("Obtener"): accede a la clase para retornarnos el valor por lo cual la estructura de este metodo debe contener el tipo de valor que vamos a retornar el con ese metodo Metodo Setter El metodo set("Establecer") nos sirve para asignar un valor a un atributo de nuestra la clase , esto se hace de manera directa con este metodo, como este metodo no retorna nada debe contener la palabra void en su estructura y siempre debe recibir un parametro de entrada
- Modificador de acceso prívate: Este modificador es el mas restrictivo , la unica manera de acceder a los datos es mediante con la clase asociada
- El modificador por defecto (default): Cuando no declaramos un modificador de acceso , java asigna el modificador default, este modificador permite accesar los datos de la propia clase, como las clases del mismo paquete
- Modificador de acceso protected: Los datos se acceden con la misma clase, clases del mismo paquete y clases heredados
- Modificador public: Este es el modificador con mas libertad , podemos acceder los datos donde sea
-
Modificador La misma clase Mismo paquete Subclase Otro paquete private Sí No No No default Sí Sí No No protected Sí Sí Sí/No No public Sí Sí Sí Sí Que es un constructor? Un constructor sirve para inicializar el objeto y establecer sus propiedades y valores predeterminados.
Sintaxis
// Create a Main class public class Main { int x; // Create a class attribute // Create a class constructor for the Main class public Main() { x = 5; // Set the initial value for the class attribute x } public static void main(String[] args) { Main myObj = new Main(); // Create an object of class Main (This will call the constructor) System.out.println(myObj.x); // Print the value of x } } // Outputs 5
Que es la herencia en POO? La herencia en poo es cuando "hederemos" Características de una clase a otra, de esta forma nos permite reutilizar atributos y métodos para otras clases
- Clase Base: La clase base es la que hereda sus atributos y metodos
- Clase Derivada: Esta es la clase que recibe métodos y atributos
Para poder hederar clases tenemos que usar la palabra extends
Sintaxis de la herencia
class Vehicle { protected String brand = "Ford"; // Vehicle attribute public void honk() { // Vehicle method System.out.println("Tuut, tuut!"); } } class Car extends Vehicle { private String modelName = "Mustang"; // Car attribute public static void main(String[] args) { // Create a myCar object Car myCar = new Car(); // Call the honk() method (from the Vehicle class) on the myCar object myCar.honk(); // Display the value of the brand attribute (from the Vehicle class) and the value of the modelName from the Car class System.out.println(myCar.brand + " " + myCar.modelName); } }
Que es el polimorfismo en POO? El polimorfismo es la capacidad de un objeto en ofrecer diferentes respuestas
Ejemplos de polimorfismo
class Animal { public void animalSound() { System.out.println("The animal makes a sound"); } } class Pig extends Animal { public void animalSound() { System.out.println("The pig says: wee wee"); } } class Dog extends Animal { public void animalSound() { System.out.println("The dog says: bow wow"); } } class Main { public static void main(String[] args) { Animal myAnimal = new Animal(); // Create a Animal object Animal myPig = new Pig(); // Create a Pig object Animal myDog = new Dog(); // Create a Dog object myAnimal.animalSound(); myPig.animalSound(); myDog.animalSound(); } }