diff --git a/008_java_oo/intellij_idea/java_primeros_pasos/src/EjercicioMatriz.java b/008_java_oo/intellij_idea/java_primeros_pasos/src/EjercicioMatriz.java
index 607b2d2..a82141a 100644
--- a/008_java_oo/intellij_idea/java_primeros_pasos/src/EjercicioMatriz.java
+++ b/008_java_oo/intellij_idea/java_primeros_pasos/src/EjercicioMatriz.java
@@ -1,7 +1,7 @@
public class EjercicioMatriz {
public static void main(String[] args) {
- for (int col = 0; col <= 10; col++){
- for (int fila = 0; fila < col; fila++){
+ for (int fila = 0; fila <= 10; fila++){
+ for (int columna = 0; columna < fila; columna++){
System.out.print("* ");
}
System.out.println();
diff --git a/008_java_oo/intellij_idea/java_primeros_pasos/src/TestDescuento.java b/008_java_oo/intellij_idea/java_primeros_pasos/src/TestDescuento.java
index c0cc9ef..06640c9 100644
--- a/008_java_oo/intellij_idea/java_primeros_pasos/src/TestDescuento.java
+++ b/008_java_oo/intellij_idea/java_primeros_pasos/src/TestDescuento.java
@@ -2,8 +2,10 @@ public class TestDescuento {
public static void main(String[] args) {
- double valorCompra = 250.0;
int dscto;
+ double valorDescuento, valorCompra, totalCompra;
+ valorCompra = 250.0;
+
if (valorCompra >= 100.0 && valorCompra <= 199.99){
dscto = 10;
} else if (valorCompra >= 200.0 && valorCompra <= 299.99) {
@@ -13,10 +15,11 @@ public class TestDescuento {
} else {
dscto = 0;
}
- double valorDescuento = valorCompra * (dscto / 100.00 );
- double totalCompra = valorCompra - valorDescuento;
+
+ valorDescuento = valorCompra * (dscto / 100.00 );
+ totalCompra = valorCompra - valorDescuento;
System.out.println("Total compra : $"+valorCompra+"\n"+
- "Descuento : "+dscto+"%\n"+
- " Total Final : $"+totalCompra);
+ "Descuento : "+dscto+"%\n"+
+ " Total Final : $"+totalCompra);
}
}
diff --git a/008_java_oo/intellij_idea/proyecto_bytebank/src/Cliente.java b/008_java_oo/intellij_idea/proyecto_bytebank/src/Cliente.java
new file mode 100644
index 0000000..9314526
--- /dev/null
+++ b/008_java_oo/intellij_idea/proyecto_bytebank/src/Cliente.java
@@ -0,0 +1,29 @@
+public class Cliente {
+ private String nombre;
+ private String documento;
+ private String telefono;
+
+ public String getNombre() {
+ return nombre;
+ }
+
+ public void setNombre(String nombre) {
+ this.nombre = nombre;
+ }
+
+ public String getDocumento() {
+ return documento;
+ }
+
+ public void setDocumento(String documento) {
+ this.documento = documento;
+ }
+
+ public String getTelefono() {
+ return telefono;
+ }
+
+ public void setTelefono(String telefono) {
+ this.telefono = telefono;
+ }
+}
diff --git a/008_java_oo/intellij_idea/proyecto_bytebank/src/CrearCuenta.java b/008_java_oo/intellij_idea/proyecto_bytebank/src/CrearCuenta.java
new file mode 100644
index 0000000..f682626
--- /dev/null
+++ b/008_java_oo/intellij_idea/proyecto_bytebank/src/CrearCuenta.java
@@ -0,0 +1,14 @@
+public class CrearCuenta {
+ public static void main(String[] args) {
+ Cuenta primeraCuenta = new Cuenta(1);
+ primeraCuenta.depositar(1000);
+ //primeraCuenta.pais = "Zambia"; No compila, no existe el atributo
+ System.out.println(primeraCuenta.getSaldo());
+
+ Cuenta segundaCuenta = new Cuenta(1);
+ //segundaCuenta.saldo = 500;
+ System.out.println(segundaCuenta.getSaldo());
+ //System.out.println(segundaCuenta.titular); null
+ //System.out.println(segundaCuenta.agencia); 0
+ }
+}
diff --git a/008_java_oo/intellij_idea/proyecto_bytebank/src/Cuenta.java b/008_java_oo/intellij_idea/proyecto_bytebank/src/Cuenta.java
new file mode 100644
index 0000000..9008353
--- /dev/null
+++ b/008_java_oo/intellij_idea/proyecto_bytebank/src/Cuenta.java
@@ -0,0 +1,67 @@
+// Entidad Cuenta
+public class Cuenta {
+ private double saldo;
+ private int agencia;
+ private int numero;
+ private Cliente titular = new Cliente();
+ private static int contador = 0;
+ public Cuenta(int agencia) {
+ if (agencia <= 0) {
+ System.out.println("No se permiten valores negativos");
+ this.agencia = 1;
+ } else {
+ this.agencia = agencia;
+ }
+ contador++;
+ System.out.println("Cuentas creadas: "+contador);
+ }
+ public void depositar(double valorDeposito){
+ this.saldo += valorDeposito;
+ }
+
+ public boolean retirar(double valorRetiro) {
+ if (this.saldo >= valorRetiro) {
+ this.saldo -= valorRetiro;
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public boolean transferir(double montoTransferencia, Cuenta cuenta){
+ if (montoTransferencia <= this.saldo) {
+ this.saldo -= montoTransferencia;
+ cuenta.depositar(montoTransferencia);
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public double getSaldo() {
+ return this.saldo;
+ }
+
+ public int getAgencia(){
+ return this.agencia;
+ }
+
+ public void setNumero(int numero){
+ this.numero = numero;
+ }
+
+ public int getNumero(){
+ return this.numero;
+ }
+
+ public void setTitular(Cliente titular){
+ this.titular = titular;
+ }
+ public Cliente getTitular(){
+ return titular;
+ }
+
+ public static int getContador(){
+ return Cuenta.contador;
+ }
+}
diff --git a/008_java_oo/intellij_idea/proyecto_bytebank/src/PruebaAcceso.java b/008_java_oo/intellij_idea/proyecto_bytebank/src/PruebaAcceso.java
new file mode 100644
index 0000000..7370e61
--- /dev/null
+++ b/008_java_oo/intellij_idea/proyecto_bytebank/src/PruebaAcceso.java
@@ -0,0 +1,10 @@
+public class PruebaAcceso {
+ public static void main(String[] args) {
+ Cuenta cuenta = new Cuenta(1);
+ cuenta.retirar(300);
+ System.out.println(cuenta.getSaldo());
+ cuenta.depositar(300);
+ System.out.println(cuenta.getSaldo());
+ System.out.println(cuenta.getAgencia());
+ }
+}
diff --git a/008_java_oo/intellij_idea/proyecto_bytebank/src/PruebaConstructor.java b/008_java_oo/intellij_idea/proyecto_bytebank/src/PruebaConstructor.java
new file mode 100644
index 0000000..d0e4f21
--- /dev/null
+++ b/008_java_oo/intellij_idea/proyecto_bytebank/src/PruebaConstructor.java
@@ -0,0 +1,10 @@
+public class PruebaConstructor {
+ public static void main(String[] args) {
+ Cuenta cuenta = new Cuenta(555);
+ //cuenta.setAgencia(-15);
+ System.out.println(cuenta.getAgencia());
+ Cuenta cuenta2 = new Cuenta(333);
+ Cuenta cuenta3 = new Cuenta(444);
+ System.out.println(Cuenta.getContador());
+ }
+}
\ No newline at end of file
diff --git a/008_java_oo/intellij_idea/proyecto_bytebank/src/PruebaEncapsulamiento.java b/008_java_oo/intellij_idea/proyecto_bytebank/src/PruebaEncapsulamiento.java
new file mode 100644
index 0000000..a200cef
--- /dev/null
+++ b/008_java_oo/intellij_idea/proyecto_bytebank/src/PruebaEncapsulamiento.java
@@ -0,0 +1,15 @@
+public class PruebaEncapsulamiento {
+ public static void main(String[] args) {
+ Cuenta cuenta = new Cuenta(1);
+ Cliente cliente = new Cliente();
+ cliente.setNombre("Zerafín");
+ cliente.setDocumento("abcDEFghiJKL");
+ cuenta.setTitular(cliente);
+
+ System.out.println(cliente.getNombre());
+ System.out.println(cuenta.getTitular().getNombre());
+
+ Cliente titular = cuenta.getTitular();
+ System.out.println(titular.getNombre());
+ }
+}
diff --git a/008_java_oo/intellij_idea/proyecto_bytebank/src/PruebaMetodos.java b/008_java_oo/intellij_idea/proyecto_bytebank/src/PruebaMetodos.java
new file mode 100644
index 0000000..1c5f8d1
--- /dev/null
+++ b/008_java_oo/intellij_idea/proyecto_bytebank/src/PruebaMetodos.java
@@ -0,0 +1,16 @@
+public class PruebaMetodos {
+ public static void main(String[] args) {
+ Cuenta cuenta1 = new Cuenta(1);
+ cuenta1.depositar(300);
+ System.out.println(cuenta1.retirar(200));
+ System.out.println(cuenta1.getSaldo());
+
+ Cuenta cuenta2 = new Cuenta(1);
+ cuenta2.depositar(2000);
+
+ boolean puedeTransferir = cuenta2.transferir(400, cuenta1);
+ if (puedeTransferir) {
+ System.out.println("Transferencia exitosa");
+ }
+ }
+}
diff --git a/008_java_oo/intellij_idea/proyecto_bytebank/src/TestReferencia.java b/008_java_oo/intellij_idea/proyecto_bytebank/src/TestReferencia.java
new file mode 100644
index 0000000..8f9ae39
--- /dev/null
+++ b/008_java_oo/intellij_idea/proyecto_bytebank/src/TestReferencia.java
@@ -0,0 +1,28 @@
+public class TestReferencia {
+ public static void main(String[] args) {
+ Cuenta primeraCuenta = new Cuenta(1);
+ primeraCuenta.depositar(200);
+
+ //Cuenta segundaCuenta = new Cuenta();
+ // System.out.println(primeraCuenta); // Cuenta@23fc625e
+ // System.out.println(segundaCuenta); // Cuenta@3f99bd52
+
+ Cuenta segundaCuenta = primeraCuenta;
+ segundaCuenta.depositar(100);
+ System.out.println("Saldo primera cuenta: " + primeraCuenta.getSaldo());
+ System.out.println("Saldo segunda cuenta: " + segundaCuenta.getSaldo());
+
+ segundaCuenta.depositar(400);
+ System.out.println("Saldo primera cuenta: " + primeraCuenta.getSaldo());
+
+ // Obtener referencia del objeto
+ System.out.println(primeraCuenta); // Cuenta@23fc625e
+ System.out.println(segundaCuenta); // Cuenta@23fc625e
+
+ if (primeraCuenta == segundaCuenta) {
+ System.out.println("Son el mismo objeto");
+ } else {
+ System.out.println("Son diferentes");
+ }
+ }
+}
diff --git a/008_java_oo/intellij_idea/proyecto_bytebank/src/TestReferencia2.java b/008_java_oo/intellij_idea/proyecto_bytebank/src/TestReferencia2.java
new file mode 100644
index 0000000..fe64887
--- /dev/null
+++ b/008_java_oo/intellij_idea/proyecto_bytebank/src/TestReferencia2.java
@@ -0,0 +1,17 @@
+public class TestReferencia2 {
+
+ public static void main(String[] args) {
+ Cliente diego = new Cliente();
+ diego.setNombre("Diego");
+ diego.setDocumento("123.123.123-1");
+
+ Cuenta cuentaDiego = new Cuenta(1);
+ cuentaDiego.setTitular(diego);
+ System.out.println(cuentaDiego.getTitular().getDocumento());
+
+ // referencia
+ System.out.println(cuentaDiego.getTitular()); // Cliente@2a84aee7
+ System.out.println(diego); // Cliente@2a84aee7
+ }
+
+}
diff --git a/008_java_oo/intellij_idea/proyecto_bytebank/src/TestReferencia3.java b/008_java_oo/intellij_idea/proyecto_bytebank/src/TestReferencia3.java
new file mode 100644
index 0000000..a8a32c2
--- /dev/null
+++ b/008_java_oo/intellij_idea/proyecto_bytebank/src/TestReferencia3.java
@@ -0,0 +1,8 @@
+public class TestReferencia3 {
+ public static void main(String[] args) {
+ Cuenta cuentaDeDiego = new Cuenta(1);
+ //cuentaDeDiego.titular = new Cliente();
+ cuentaDeDiego.getTitular().setNombre("Diego");
+ System.out.println(cuentaDeDiego.getTitular().getNombre());
+ }
+}
diff --git a/008_java_oo/orientacion_obj.md b/008_java_oo/orientacion_obj.md
index e69de29..426c9b6 100644
--- a/008_java_oo/orientacion_obj.md
+++ b/008_java_oo/orientacion_obj.md
@@ -0,0 +1,189 @@
+# Java Entendiendo la [Orientación a Objetos](https://app.aluracursos.com/course/java-parte2-introduccion-orientada-objetos)
+
+Diferencias con el paradigma **procedural**: se utilizó como práctica de
+programación antes de la introducción de lenguajes orientados a objetos.
+La necesidad de validar el numeroIdentidad en un formulario se utilizó como
+ejemplo para discutir los principales problemas que pueden aparecer en este paradigma.
+
+En particular, a medida que otros formularios y desarrolladores necesitan la misma
+validación de numeroIdentidad, no fue fácil ver que ya había procedimientos y
+funciones que hicieron este trabajo, ya que los datos y las funciones no tenían
+un vínculo tan fuerte. Esto podría dar lugar a otra nueva función o fragmento de
+código con una responsabilidad similar.
+
+Además, conocemos la **idea central** del paradigma **orientado a objetos**, que
+es **crear unidades de código que combinen los datos asociados con cierta
+información con las funcionalidades aplicadas a esos datos** (por ejemplo,
+numeroIdentidad + validación). Son los atributos y métodos.
+
+## Introduccion a Orientación a Objetos
+
+[proyecto_bytebank](./intellij_idea/proyecto_bytebank/src/)
+
+- Se practican los conceptos de **Objeto**, **Atributos**, **Instancias**. Y se
+ejemplifica un atributo de clase con valor predeterminado.
+[Cuenta.java](./intellij_idea/proyecto_bytebank/src/Cuenta.java) y
+[CrearCuenta.java](./intellij_idea/proyecto_bytebank/src/CrearCuenta.java)
+
+ ```java
+ // Entidad Cuenta
+ public class Cuenta {
+ double saldo;
+ //int agencia = 33;
+ int agencia;
+ int numero;
+ String titular;
+ }
+ ```
+
+ ```java
+ public class CrearCuenta {
+ public static void main(String[] args) {
+ Cuenta primeraCuenta = new Cuenta();
+ primeraCuenta.saldo = 1000;
+ //primeraCuenta.pais = "Zambia"; No compila, no existe el atributo
+ System.out.println(primeraCuenta.saldo);
+
+ Cuenta segundaCuenta = new Cuenta();
+ segundaCuenta.saldo = 500;
+ System.out.println(segundaCuenta.saldo);
+ //System.out.println(segundaCuenta.titular); null
+ //System.out.println(segundaCuenta.agencia); 0
+ }
+ }
+ ```
+
+- Se ejemplifica como un Objeto es una una referencia en memoria
+[testReferencia](./intellij_idea/proyecto_bytebank/src/TestReferencia.java)
+
+ ```java
+ public class TestReferencia {
+ public static void main(String[] args) {
+ Cuenta primeraCuenta = new Cuenta();
+ primeraCuenta.saldo = 200;
+
+ //Cuenta segundaCuenta = new Cuenta();
+ // System.out.println(primeraCuenta); // Cuenta@23fc625e
+ // System.out.println(segundaCuenta); // Cuenta@3f99bd52
+
+ Cuenta segundaCuenta = primeraCuenta;
+ segundaCuenta.saldo = 100;
+ System.out.println("Saldo primera cuenta: " + primeraCuenta.saldo);
+ System.out.println("Saldo segunda cuenta: " + segundaCuenta.saldo);
+
+ segundaCuenta.saldo += 400;
+ System.out.println("Saldo primera cuenta: " + primeraCuenta.saldo);
+
+ // Obtener referencia del objeto
+ System.out.println(primeraCuenta); // Cuenta@23fc625e
+ System.out.println(segundaCuenta); // Cuenta@23fc625e
+
+ if (primeraCuenta == segundaCuenta) {
+ System.out.println("Son el mismo objeto");
+ } else {
+ System.out.println("Son diferentes");
+ }
+ }
+ }
+ ```
+
+- Definicion de metodos con retorno y uso de *this* para atributos de clase
+
+ ```java
+ // Entidad Cuenta
+ public class Cuenta {
+
+ ...
+
+ public void depositar(double valorDeposito){
+ this.saldo += valorDeposito;
+ }
+
+ public boolean retirar(double valorRetiro) {
+ if (this.saldo >= valorRetiro) {
+ this.saldo -= valorRetiro;
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public boolean transferir(double montoTransferencia, Cuenta cuenta){
+ if (montoTransferencia <= this.saldo) {
+ this.saldo -= montoTransferencia;
+ cuenta.depositar(montoTransferencia);
+ return true;
+ } else {
+ return false;
+ }
+ }
+ }
+ ```
+
+ ```java
+ public class PruebaMetodos {
+ public static void main(String[] args) {
+ Cuenta cuenta1 = new Cuenta();
+ cuenta1.depositar(300);
+ System.out.println(cuenta1.retirar(200));
+ System.out.println(cuenta1.saldo);
+
+ Cuenta cuenta2 = new Cuenta();
+ cuenta2.depositar(2000);
+
+ boolean puedeTransferir = cuenta2.transferir(400, cuenta1);
+ if (puedeTransferir) {
+ System.out.println("Transferencia exitosa");
+ }
+ }
+ }
+ ```
+
+- Ejemplo de `NullPointerException` al intentar acceder a un atributo de clase
+de una instancia, cuyo valor es una Clase no instanciada.
+[TestReferencia3.java](./intellij_idea/proyecto_bytebank/src/TestReferencia3.java)
+
+- Encapsulamiento, modificadores de acceso
+[Cuenta.java](./intellij_idea/proyecto_bytebank/src/Cuenta.java) y
+[PruebaEncapsulamiento.java](./intellij_idea/proyecto_bytebank/src/PruebaEncapsulamiento.java).
+ Atributos privados, restringiendo el acceso a los atributos.
+
+ Encapsulación de código:
+ - **getters** Métodos de lectura de atributos
+ - **setters** Métodos para modificar atributos
+
+
+
+- Variables de clase **static**. No pertenecen a la instancia.
+ ```java
+ public class Cuenta {
+ ...
+ private static int contador = 0;
+
+
+ public static int getContador(){
+ return Cuenta.contador;
+ }
+ ```
+
+- **Constructor** [Cuenta.java](./intellij_idea/proyecto_bytebank/src/Cuenta.java)
+ Permite recibir argumentos e inicializar atributos desde la creación de un objeto.
+ Con esto, la inicialización de los atributos recibidos en el constructor se vuelve
+ obligatoria. Atributos de clase, atributos estáticos. Métodos de clase, métodos
+ estáticos. Ausencia de referencia del **this** dentro de los métodos estáticos.
+
+ ```java
+ public Cuenta(int agencia) {
+ if (agencia <= 0) {
+ System.out.println("No se permiten valores negativos");
+ this.agencia = 1;
+ } else {
+ this.agencia = agencia;
+ }
+ contador++;
+ System.out.println("Cuentas creadas: "+contador);
+ }
+ ```
+
+
+Lectura: Alura blog [¿Que es POO?](https://www.aluracursos.com/blog/poo-que-es-la-programacion-orientada-a-objetos)
diff --git a/008_java_oo/primeros_pasos.md b/008_java_oo/primeros_pasos.md
index e45e06a..86b9b31 100644
--- a/008_java_oo/primeros_pasos.md
+++ b/008_java_oo/primeros_pasos.md
@@ -191,9 +191,9 @@ flowchart LR
subgraph JDK
subgraph JRE
c(JVM)
- style c fill:#f9f,stroke:#333,stroke-width:2px
+ style c fill:#f9f,stroke:#000,stroke-width:2px
d(Librerías)
- style d fill:#f9f,stroke:#333,stroke-width:2px
+ style d fill:#f9f,stroke:#000,stroke-width:2px
end
a(Tools)
end
@@ -441,6 +441,8 @@ Funcionamiento del cast implícito y explícito en la sgte. tabla.
### Char y String
+String [format()](https://www.javatpoint.com/java-string-format)
+
[EjemploCaracteres.java](./intellij_idea/java_primeros_pasos/src/EjemploCaracteres.java)
```java
@@ -696,8 +698,8 @@ public class TablaMultiplicacion {
```java
public class EjercicioMatriz {
public static void main(String[] args) {
- for (int col = 0; col <= 10; col++){
- for (int fila = 0; fila < col; fila++){
+ for (int fila = 0; fila <= 10; fila++){
+ for (int columna = 0; columna < fila; columna++){
System.out.print("* ");
}
System.out.println();