├── Readme.md ├── gitignore.io ├── sesion_10 ├── .idea │ ├── .gitignore │ ├── libraries │ │ └── json.xml │ ├── misc.xml │ ├── modules.xml │ ├── runConfigurations.xml │ ├── uiDesigner.xml │ └── vcs.xml ├── datos.json ├── datos.xml ├── out │ └── production │ │ ├── sesion_10 │ │ ├── com │ │ │ └── intellij │ │ │ │ └── uiDesigner │ │ │ │ └── core │ │ │ │ ├── AbstractLayout.class │ │ │ │ ├── DimensionInfo.class │ │ │ │ ├── GridConstraints.class │ │ │ │ ├── GridLayoutManager.class │ │ │ │ ├── HorizontalInfo.class │ │ │ │ ├── LayoutState.class │ │ │ │ ├── Spacer.class │ │ │ │ ├── SupportCode$TextWithMnemonic.class │ │ │ │ ├── SupportCode.class │ │ │ │ ├── Util.class │ │ │ │ └── VerticalInfo.class │ │ ├── ejemploJSON │ │ │ └── Main.class │ │ ├── ejemploXML │ │ │ └── Main.class │ │ ├── eventos │ │ │ ├── Emisor.class │ │ │ ├── Main.class │ │ │ ├── Mensajero.class │ │ │ ├── Receptor.class │ │ │ └── ReceptorMusical.class │ │ └── swingTax │ │ │ ├── swingTax$1.class │ │ │ └── swingTax.class │ │ └── swingTax │ │ └── com │ │ └── intellij │ │ └── uiDesigner │ │ └── core │ │ ├── AbstractLayout.class │ │ ├── DimensionInfo.class │ │ ├── GridConstraints.class │ │ ├── GridLayoutManager.class │ │ ├── HorizontalInfo.class │ │ ├── LayoutState.class │ │ ├── Spacer.class │ │ ├── SupportCode$TextWithMnemonic.class │ │ ├── SupportCode.class │ │ ├── Util.class │ │ └── VerticalInfo.class ├── sesion_10.iml └── src │ ├── ejemploJSON │ └── Main.java │ ├── ejemploXML │ └── Main.java │ ├── eventos │ └── Main.java │ └── swingTax │ ├── swingTax.form │ └── swingTax.java ├── sesiones_1_2_3 └── ob-sesion1 │ ├── .idea │ ├── .gitignore │ ├── misc.xml │ ├── modules.xml │ ├── runConfigurations.xml │ └── uiDesigner.xml │ ├── README.md │ ├── ob-sesion1.iml │ ├── out │ └── production │ │ └── ob-sesion1 │ │ └── com │ │ └── example │ │ ├── AdiosMundo.class │ │ ├── HolaMundo.class │ │ ├── estructurascontrol │ │ ├── condicionales │ │ │ ├── If.class │ │ │ ├── IfElse.class │ │ │ ├── IfElseIf.class │ │ │ └── Switch.class │ │ └── repeticion │ │ │ ├── For.class │ │ │ ├── ForEach.class │ │ │ └── While.class │ │ ├── funciones │ │ ├── Funciones.class │ │ ├── Funciones2.class │ │ └── Sobrecarga.class │ │ └── tiposdatos │ │ ├── Operadores.class │ │ └── Tipos.class │ └── src │ └── com │ └── example │ ├── AdiosMundo.java │ ├── HolaMundo.java │ ├── estructurascontrol │ ├── condicionales │ │ ├── If.java │ │ ├── IfElse.java │ │ ├── IfElseIf.java │ │ └── Switch.java │ └── repeticion │ │ ├── ConcatenarTextos.java │ │ ├── For.java │ │ ├── ForEach.java │ │ └── While.java │ ├── funciones │ ├── Funciones.java │ ├── Funciones2.java │ └── Sobrecarga.java │ └── tiposdatos │ ├── Operadores.java │ └── Tipos.java ├── sesiones_4_5_6 ├── ob-poo │ ├── .idea │ │ ├── .gitignore │ │ ├── misc.xml │ │ ├── modules.xml │ │ ├── runConfigurations.xml │ │ └── uiDesigner.xml │ ├── README.md │ ├── ob-poo.iml │ ├── out │ │ └── production │ │ │ └── ob-poo │ │ │ └── poo │ │ │ ├── clases │ │ │ ├── Main.class │ │ │ ├── Motor.class │ │ │ └── Vehiculo.class │ │ │ ├── herencia │ │ │ ├── Camion.class │ │ │ ├── Coche.class │ │ │ └── Motocicleta.class │ │ │ └── interfaces │ │ │ ├── Empleado.class │ │ │ ├── EmpleadoCRUD.class │ │ │ └── Main.class │ └── src │ │ └── poo │ │ ├── clases │ │ ├── Main.java │ │ ├── Motor.java │ │ └── Vehiculo.java │ │ ├── coninterfaces │ │ ├── EmpleadoCRUD.java │ │ ├── EmpleadoCRUDExcel.java │ │ ├── EmpleadoCRUDMySQL.java │ │ ├── EmpleadoReader.java │ │ └── Main.java │ │ ├── herencia │ │ ├── Camion.java │ │ ├── Coche.java │ │ └── Motocicleta.java │ │ └── sininterfaces │ │ ├── Empleado.java │ │ ├── EmpleadoCRUDV1.java │ │ ├── EmpleadoCRUDV2.java │ │ └── Main.java └── ob-refactor │ ├── .idea │ ├── .gitignore │ ├── misc.xml │ ├── modules.xml │ └── runConfigurations.xml │ ├── ob-refactor.iml │ └── src │ ├── consolidatedconditional │ ├── bad │ │ └── Main.java │ └── good │ │ └── Main.java │ ├── consolidateduplicate │ ├── bad │ │ └── Main.java │ └── good │ │ └── Main.java │ ├── extractclass │ ├── bad │ │ └── Person.java │ └── good │ │ ├── Address.java │ │ └── Person.java │ ├── extractmethod │ ├── bad │ │ └── Main.java │ └── good │ │ └── Main.java │ ├── extractvariable │ ├── bad │ │ ├── Main.java │ │ └── Order.java │ └── good │ │ └── Main.java │ ├── magicnumbers │ ├── bad │ │ └── Main.java │ └── good │ │ └── Main.java │ ├── removeassign │ ├── bad │ │ ├── Main.java │ │ └── Order.java │ └── good │ │ └── Main.java │ └── replacemethod │ ├── bad │ └── Product.java │ └── good │ ├── Product.java │ └── ProductPriceCalculator.java └── sesiones_7_8_9 ├── .idea ├── .gitignore ├── .name ├── misc.xml ├── modules.xml └── runConfigurations.xml ├── Java Básico.iml ├── out └── production │ └── Java Básico │ ├── Main.class │ ├── Sesion7.class │ ├── Sesion8.class │ └── Sesion9.class └── src ├── Main.java ├── Sesion7.java ├── Sesion8.java └── Sesion9.java /Readme.md: -------------------------------------------------------------------------------- 1 | Estos son los ejemplos del curso básico de Java 2 | -------------------------------------------------------------------------------- /gitignore.io: -------------------------------------------------------------------------------- 1 | */bin/* 2 | bin/ 3 | 4 | *.class 5 | 6 | # Package Files # 7 | *.jar 8 | *.war 9 | *.ear 10 | 11 | 12 | # Eclipse 13 | .settings/ 14 | *.project 15 | *.classpath 16 | .prefs 17 | *.prefs 18 | .metadata/ 19 | 20 | # Intellij 21 | .idea/ 22 | *.iml 23 | *.iws 24 | out/ 25 | 26 | # VSCode 27 | .vscode/ 28 | 29 | # Mac 30 | .DS_Store 31 | 32 | # Maven 33 | log/* 34 | target/ 35 | 36 | # Gradle 37 | .gradle/ 38 | 39 | spring-openid/src/main/resources/application.properties 40 | .recommenders/ 41 | /spring-hibernate4/nbproject/ 42 | 43 | spring-all/*.log 44 | 45 | SpringDataInjectionDemo/.mvn/wrapper/maven-wrapper.properties 46 | 47 | spring-call-getters-using-reflection/.mvn/wrapper/maven-wrapper.properties 48 | 49 | spring-check-if-a-property-is-null/.mvn/wrapper/maven-wrapper.properties 50 | *.springBeans 51 | 52 | 20171220-JMeter.csv 53 | 54 | .factorypath 55 | dependency-reduced-pom.xml 56 | *.so 57 | *.dylib 58 | *.dll 59 | 60 | xml/src/test/resources/example_dom4j_new.xml 61 | xml/src/test/resources/example_dom4j_updated.xml 62 | xml/src/test/resources/example_jaxb_new.xml 63 | core-java-io/hard_link.txt 64 | core-java-io/target_link.txt 65 | core-java/src/main/java/com/baeldung/manifest/MANIFEST.MF 66 | ethereum/logs/ 67 | jmeter/src/main/resources/*-JMeter.csv 68 | ninja/devDb.mv.db 69 | 70 | **/node_modules/ 71 | **/dist 72 | **/tmp 73 | **/out-tsc 74 | **/nbproject/ 75 | **/nb-configuration.xml 76 | 77 | 78 | persistence-modules/hibernate5/transaction.log 79 | apache-avro/src/main/java/com/baeldung/avro/model/ 80 | jta/transaction-logs/ 81 | software-security/sql-injection-samples/derby.log 82 | spring-soap/src/main/java/com/baeldung/springsoap/gen/ 83 | /report-*.json 84 | transaction.log 85 | *-shell.log 86 | 87 | apache-cxf/cxf-aegis/baeldung.xml 88 | testing-modules/report-*.json 89 | 90 | libraries-2/*.db 91 | 92 | apache-spark/data/output 93 | logs/ 94 | libraries-data-io/*.docx 95 | persistence-modules/spring-hibernate-5/com.* 96 | spring-boot-modules/spring-boot-react/frontend/build 97 | spring-boot-modules/spring-boot-react/frontend/node 98 | spring-boot-modules/spring-boot-react/frontend/yarn.lock 99 | spring-boot-modules/spring-boot-properties-3/*.log 100 | 101 | # SDKMan 102 | .sdkmanrc 103 | -------------------------------------------------------------------------------- /sesion_10/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Editor-based HTTP Client requests 5 | /httpRequests/ 6 | # Datasource local storage ignored files 7 | /dataSources/ 8 | /dataSources.local.xml 9 | -------------------------------------------------------------------------------- /sesion_10/.idea/libraries/json.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /sesion_10/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /sesion_10/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /sesion_10/.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /sesion_10/.idea/uiDesigner.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | -------------------------------------------------------------------------------- /sesion_10/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /sesion_10/datos.json: -------------------------------------------------------------------------------- 1 | { 2 | "credenciales": { 3 | "usuario": "openbootcamp", 4 | "clave": "EstoEs1clave^_^", 5 | 6 | "videos": [ 7 | "Primera sesión", 8 | "Segunda sesión", 9 | "Tercera sesión" 10 | ] 11 | } 12 | } -------------------------------------------------------------------------------- /sesion_10/datos.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | openbootcamp 5 | EstoEs1clave^_^ 6 | 7 | 8 | 9 | 10 | 11 | + 12 | -------------------------------------------------------------------------------- /sesion_10/out/production/sesion_10/com/intellij/uiDesigner/core/AbstractLayout.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/sesion_10/com/intellij/uiDesigner/core/AbstractLayout.class -------------------------------------------------------------------------------- /sesion_10/out/production/sesion_10/com/intellij/uiDesigner/core/DimensionInfo.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/sesion_10/com/intellij/uiDesigner/core/DimensionInfo.class -------------------------------------------------------------------------------- /sesion_10/out/production/sesion_10/com/intellij/uiDesigner/core/GridConstraints.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/sesion_10/com/intellij/uiDesigner/core/GridConstraints.class -------------------------------------------------------------------------------- /sesion_10/out/production/sesion_10/com/intellij/uiDesigner/core/GridLayoutManager.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/sesion_10/com/intellij/uiDesigner/core/GridLayoutManager.class -------------------------------------------------------------------------------- /sesion_10/out/production/sesion_10/com/intellij/uiDesigner/core/HorizontalInfo.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/sesion_10/com/intellij/uiDesigner/core/HorizontalInfo.class -------------------------------------------------------------------------------- /sesion_10/out/production/sesion_10/com/intellij/uiDesigner/core/LayoutState.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/sesion_10/com/intellij/uiDesigner/core/LayoutState.class -------------------------------------------------------------------------------- /sesion_10/out/production/sesion_10/com/intellij/uiDesigner/core/Spacer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/sesion_10/com/intellij/uiDesigner/core/Spacer.class -------------------------------------------------------------------------------- /sesion_10/out/production/sesion_10/com/intellij/uiDesigner/core/SupportCode$TextWithMnemonic.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/sesion_10/com/intellij/uiDesigner/core/SupportCode$TextWithMnemonic.class -------------------------------------------------------------------------------- /sesion_10/out/production/sesion_10/com/intellij/uiDesigner/core/SupportCode.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/sesion_10/com/intellij/uiDesigner/core/SupportCode.class -------------------------------------------------------------------------------- /sesion_10/out/production/sesion_10/com/intellij/uiDesigner/core/Util.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/sesion_10/com/intellij/uiDesigner/core/Util.class -------------------------------------------------------------------------------- /sesion_10/out/production/sesion_10/com/intellij/uiDesigner/core/VerticalInfo.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/sesion_10/com/intellij/uiDesigner/core/VerticalInfo.class -------------------------------------------------------------------------------- /sesion_10/out/production/sesion_10/ejemploJSON/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/sesion_10/ejemploJSON/Main.class -------------------------------------------------------------------------------- /sesion_10/out/production/sesion_10/ejemploXML/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/sesion_10/ejemploXML/Main.class -------------------------------------------------------------------------------- /sesion_10/out/production/sesion_10/eventos/Emisor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/sesion_10/eventos/Emisor.class -------------------------------------------------------------------------------- /sesion_10/out/production/sesion_10/eventos/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/sesion_10/eventos/Main.class -------------------------------------------------------------------------------- /sesion_10/out/production/sesion_10/eventos/Mensajero.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/sesion_10/eventos/Mensajero.class -------------------------------------------------------------------------------- /sesion_10/out/production/sesion_10/eventos/Receptor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/sesion_10/eventos/Receptor.class -------------------------------------------------------------------------------- /sesion_10/out/production/sesion_10/eventos/ReceptorMusical.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/sesion_10/eventos/ReceptorMusical.class -------------------------------------------------------------------------------- /sesion_10/out/production/sesion_10/swingTax/swingTax$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/sesion_10/swingTax/swingTax$1.class -------------------------------------------------------------------------------- /sesion_10/out/production/sesion_10/swingTax/swingTax.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/sesion_10/swingTax/swingTax.class -------------------------------------------------------------------------------- /sesion_10/out/production/swingTax/com/intellij/uiDesigner/core/AbstractLayout.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/swingTax/com/intellij/uiDesigner/core/AbstractLayout.class -------------------------------------------------------------------------------- /sesion_10/out/production/swingTax/com/intellij/uiDesigner/core/DimensionInfo.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/swingTax/com/intellij/uiDesigner/core/DimensionInfo.class -------------------------------------------------------------------------------- /sesion_10/out/production/swingTax/com/intellij/uiDesigner/core/GridConstraints.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/swingTax/com/intellij/uiDesigner/core/GridConstraints.class -------------------------------------------------------------------------------- /sesion_10/out/production/swingTax/com/intellij/uiDesigner/core/GridLayoutManager.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/swingTax/com/intellij/uiDesigner/core/GridLayoutManager.class -------------------------------------------------------------------------------- /sesion_10/out/production/swingTax/com/intellij/uiDesigner/core/HorizontalInfo.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/swingTax/com/intellij/uiDesigner/core/HorizontalInfo.class -------------------------------------------------------------------------------- /sesion_10/out/production/swingTax/com/intellij/uiDesigner/core/LayoutState.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/swingTax/com/intellij/uiDesigner/core/LayoutState.class -------------------------------------------------------------------------------- /sesion_10/out/production/swingTax/com/intellij/uiDesigner/core/Spacer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/swingTax/com/intellij/uiDesigner/core/Spacer.class -------------------------------------------------------------------------------- /sesion_10/out/production/swingTax/com/intellij/uiDesigner/core/SupportCode$TextWithMnemonic.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/swingTax/com/intellij/uiDesigner/core/SupportCode$TextWithMnemonic.class -------------------------------------------------------------------------------- /sesion_10/out/production/swingTax/com/intellij/uiDesigner/core/SupportCode.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/swingTax/com/intellij/uiDesigner/core/SupportCode.class -------------------------------------------------------------------------------- /sesion_10/out/production/swingTax/com/intellij/uiDesigner/core/Util.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/swingTax/com/intellij/uiDesigner/core/Util.class -------------------------------------------------------------------------------- /sesion_10/out/production/swingTax/com/intellij/uiDesigner/core/VerticalInfo.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesion_10/out/production/swingTax/com/intellij/uiDesigner/core/VerticalInfo.class -------------------------------------------------------------------------------- /sesion_10/sesion_10.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /sesion_10/src/ejemploJSON/Main.java: -------------------------------------------------------------------------------- 1 | package ejemploJSON; 2 | 3 | import java.io.InputStream; 4 | import java.io.FileInputStream; 5 | 6 | import org.json.*; 7 | 8 | public class Main { 9 | public static void main(String []args) { 10 | 11 | try { 12 | // Creamos el inputstream desde un fichero 13 | InputStream is = new FileInputStream("datos.json"); 14 | 15 | // Creamos un tokenizador que leera desde nuestro IS 16 | JSONTokener tokener = new JSONTokener(is); 17 | 18 | // Y se lo pasamos a una instancia de la clase JSONObject 19 | JSONObject obj = new JSONObject(tokener); 20 | 21 | // Sacamos las credenciales: 22 | JSONObject credenciales = obj.getJSONObject("credenciales"); 23 | 24 | String usuario = credenciales.getString("usuario"); 25 | String clave = credenciales.getString("clave"); 26 | 27 | System.out.println("Usuario " + usuario + " clave " + clave); 28 | 29 | // Dentro de credenciales tenemos los videos: 30 | JSONArray videos = credenciales.getJSONArray("videos"); 31 | for (Object video : videos) { 32 | System.out.println(video.toString()); 33 | } 34 | 35 | } catch (Exception e) { 36 | System.out.println("No puedo leer el fichero: " + e.getMessage()); 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /sesion_10/src/ejemploXML/Main.java: -------------------------------------------------------------------------------- 1 | package ejemploXML; 2 | 3 | import org.w3c.dom.Document; 4 | import org.w3c.dom.NamedNodeMap; 5 | import org.w3c.dom.Node; 6 | import org.w3c.dom.NodeList; 7 | 8 | import javax.xml.parsers.DocumentBuilder; 9 | import javax.xml.parsers.DocumentBuilderFactory; 10 | import java.io.File; 11 | 12 | public class Main 13 | { 14 | public static void main(String []args) { 15 | File file = new File("datos.xml"); 16 | DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); 17 | 18 | try { 19 | DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); 20 | 21 | try { 22 | // Analizamos el documento 23 | Document document = documentBuilder.parse(file); 24 | 25 | // Obtenemos usuario y clave 26 | String usuario = document.getElementsByTagName("usuario").item(0).getTextContent(); 27 | String clave = document.getElementsByTagName("clave").item(0).getTextContent(); 28 | 29 | // Mostramos usuario y clave: 30 | System.out.println("Usuario: " + usuario + " Clave: " + clave); 31 | 32 | // Vamos a mostrar el atributo "proveedor" 33 | NamedNodeMap atributos = document.getElementsByTagName("videos").item(0).getAttributes(); 34 | 35 | for (int i = 0; i < atributos.getLength(); i++) { 36 | String atributoNombre = atributos.item(i).getNodeName(); 37 | String atributoValor = atributos.item(i).getNodeValue(); 38 | 39 | System.out.println("Atributo " + atributoNombre + " contiene " + atributoValor ); 40 | } 41 | 42 | // Mostramos los videos que hay asociados 43 | NodeList videos = document.getElementsByTagName("videos"); 44 | 45 | for (int i = 0; i < videos.getLength(); i++) { 46 | Node video = videos.item(i); 47 | System.out.print(video.getTextContent()); 48 | } 49 | 50 | } catch (Exception e) { 51 | System.out.println("Error procesando documento:" + e.getMessage()); 52 | } 53 | 54 | } catch (Exception e) { 55 | System.out.println("Error al utilizar el builder: " + e.getMessage()); 56 | } 57 | 58 | 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /sesion_10/src/eventos/Main.java: -------------------------------------------------------------------------------- 1 | package eventos; 2 | 3 | import java.util.ArrayList; 4 | 5 | interface Mensajero { 6 | void hanSaludado(); 7 | } 8 | 9 | class Receptor implements Mensajero { 10 | @Override 11 | public void hanSaludado() { 12 | System.out.println(Math.random()); 13 | } 14 | } 15 | 16 | class ReceptorMusical implements Mensajero { 17 | @Override 18 | public void hanSaludado() { 19 | System.out.println("Soy un receptor musical"); 20 | } 21 | } 22 | 23 | class Emisor { 24 | private ArrayList receptores = new ArrayList(); 25 | 26 | public void meteReceptor(Mensajero receptor) { 27 | receptores.add(receptor); 28 | } 29 | 30 | public void saluda() { 31 | for (Mensajero ml : receptores) { 32 | ml.hanSaludado(); 33 | } 34 | } 35 | } 36 | 37 | 38 | 39 | public class Main 40 | { 41 | public static void main(String []args) { 42 | Emisor emisor = new Emisor(); 43 | Receptor receptor = new Receptor(); 44 | Receptor receptor2 = new Receptor(); 45 | Receptor receptor3 = new Receptor(); 46 | Receptor receptor4 = new Receptor(); 47 | ReceptorMusical rm = new ReceptorMusical(); 48 | 49 | emisor.meteReceptor(receptor); 50 | emisor.meteReceptor(receptor2); 51 | emisor.meteReceptor(receptor3); 52 | emisor.meteReceptor(receptor4); 53 | emisor.meteReceptor(rm); 54 | 55 | emisor.saluda(); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /sesion_10/src/swingTax/swingTax.form: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 |
70 | -------------------------------------------------------------------------------- /sesion_10/src/swingTax/swingTax.java: -------------------------------------------------------------------------------- 1 | package swingTax; 2 | 3 | import javax.swing.*; 4 | import java.awt.event.ActionEvent; 5 | import java.awt.event.ActionListener; 6 | import java.awt.event.KeyAdapter; 7 | import java.awt.event.KeyEvent; 8 | 9 | public class swingTax { 10 | private JButton calculate; 11 | private JTextField price; 12 | private JTextField tax; 13 | private JTextField total; 14 | private JPanel taxPanel; 15 | 16 | 17 | public swingTax() { 18 | calculate.addActionListener(new ActionListener() { 19 | @Override 20 | public void actionPerformed(ActionEvent e) { 21 | double p = Double.parseDouble(price.getText()); 22 | double t = Double.parseDouble(tax.getText()); 23 | 24 | double result = p + (p / 100 * t); 25 | total.setText(Double.toString(result)); 26 | } 27 | }); 28 | } 29 | 30 | public static void main (String []args) { 31 | JFrame frame = new JFrame("Open Bootcamp"); 32 | frame.setContentPane(new swingTax().taxPanel); 33 | frame.setVisible(true); 34 | frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Datasource local storage ignored files 5 | /dataSources/ 6 | /dataSources.local.xml 7 | # Editor-based HTTP Client requests 8 | /httpRequests/ 9 | -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/.idea/uiDesigner.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/README.md: -------------------------------------------------------------------------------- 1 | 2 | ## Ejercicio Sesión 1: 3 | 4 | * Crear un proyecto java desde cero. 5 | * Crear un paquete. 6 | * Dentro del paquete crear una clase. 7 | * Dentro de la clase crear un método main 8 | * Imprimir todos los tipos de datos vistos. 9 | * 10 | * Tipos de datos mas comunes: 11 | * int, long, double, boolean, String 12 | 13 | ## Ejercicio sesión 2: 14 | 15 | * Crear una funcion que reciba un precio y devuelva el precio con el IVA incluido 16 | 17 | ## Ejercicio sesión 3: 18 | 19 | * Crear un bucle que permita concatenar textos y imprima el resultado final por consola. 20 | * Concatenar nombres 21 | * Los textos pueden venir de un array String 22 | * String[] nombres = {"", "", "", ""}; 23 | * Separados por un espacio 24 | * Se puede usar el método concat o si no el operador + 25 | Ejemplo 26 | * "Pepe", "Juan", "Anthony" 27 | Resultado: 28 | * Pepe Juan Anthony (en la misma línea) 29 | -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/ob-sesion1.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/AdiosMundo.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/AdiosMundo.class -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/HolaMundo.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/HolaMundo.class -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/estructurascontrol/condicionales/If.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/estructurascontrol/condicionales/If.class -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/estructurascontrol/condicionales/IfElse.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/estructurascontrol/condicionales/IfElse.class -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/estructurascontrol/condicionales/IfElseIf.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/estructurascontrol/condicionales/IfElseIf.class -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/estructurascontrol/condicionales/Switch.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/estructurascontrol/condicionales/Switch.class -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/estructurascontrol/repeticion/For.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/estructurascontrol/repeticion/For.class -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/estructurascontrol/repeticion/ForEach.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/estructurascontrol/repeticion/ForEach.class -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/estructurascontrol/repeticion/While.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/estructurascontrol/repeticion/While.class -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/funciones/Funciones.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/funciones/Funciones.class -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/funciones/Funciones2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/funciones/Funciones2.class -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/funciones/Sobrecarga.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/funciones/Sobrecarga.class -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/tiposdatos/Operadores.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/tiposdatos/Operadores.class -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/tiposdatos/Tipos.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_1_2_3/ob-sesion1/out/production/ob-sesion1/com/example/tiposdatos/Tipos.class -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/src/com/example/AdiosMundo.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | /** 4 | * Clase de prueba para crear un programa básico en java 5 | */ 6 | public class AdiosMundo { 7 | 8 | 9 | /** 10 | * Punto de entrada a la aplicación java 11 | * Permite ejecutar la aplicación 12 | * @param args - argumentos de entrada para la aplicación 13 | */ 14 | public static void main(String[] args){ 15 | 16 | // esto es un comentario 17 | System.out.println("Adios mundo cruel!"); // esto es otro comentario 18 | 19 | /* 20 | Esto es un comentario multilínea: 21 | 1 - Crear funcion suma 22 | 2 - Crear variables tipo numérico 23 | 3 - Utilizar la función suma para calcular la suma de los dos números 24 | */ 25 | 26 | 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/src/com/example/HolaMundo.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | public class HolaMundo { 4 | 5 | public static void main(String[] args){ 6 | 7 | System.out.println("Hola mundo desde sesión 1 de Open Bootcamp"); 8 | 9 | } 10 | 11 | 12 | } 13 | -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/src/com/example/estructurascontrol/condicionales/If.java: -------------------------------------------------------------------------------- 1 | package com.example.estructurascontrol.condicionales; 2 | 3 | public class If { 4 | 5 | public static void main(String[] args) { 6 | 7 | int edad = 19; 8 | boolean esMayor = edad >= 18; // false 9 | 10 | if(esMayor){ 11 | System.out.println("Es mayor de edad"); 12 | } 13 | 14 | if(edad >= 18){ 15 | System.out.println("Es mayor de edad"); 16 | } 17 | 18 | 19 | 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/src/com/example/estructurascontrol/condicionales/IfElse.java: -------------------------------------------------------------------------------- 1 | package com.example.estructurascontrol.condicionales; 2 | 3 | public class IfElse { 4 | 5 | public static void main(String[] args) { 6 | 7 | int edad = 16; 8 | 9 | if (edad >= 18) { // si true entra aquí 10 | System.out.println("Es mayor de edad"); 11 | } else { // si false entra aquí 12 | System.out.println("Es menor de edad"); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/src/com/example/estructurascontrol/condicionales/IfElseIf.java: -------------------------------------------------------------------------------- 1 | package com.example.estructurascontrol.condicionales; 2 | 3 | public class IfElseIf { 4 | 5 | public static void main(String[] args) { 6 | 7 | String dia = "DiaNostro"; 8 | 9 | // ejemplos comparar 10 | boolean resultadoCompararNum = 5 == 5; 11 | boolean resultado = dia.equals("Martes"); 12 | 13 | // if else if 14 | 15 | if (dia.equals("Lunes")) { 16 | System.out.println("Animo con la semana champions"); 17 | 18 | } else if (dia.equals("Martes")) { 19 | System.out.println("Martes con M de Me besas"); 20 | 21 | } else if (dia.equals("Miercoles")) { 22 | System.out.println("Miercoles con M de Me besas"); 23 | 24 | } else if (dia.equals("Jueves")) { 25 | System.out.println("Ya es juernes"); 26 | 27 | } else if (dia.equals("Viernes")) { 28 | System.out.println("Nos fuimos!"); 29 | 30 | } else if (dia.equals("Sabado")) { 31 | System.out.println("Nos murimos!"); 32 | 33 | } else if (dia.equals("Domingo")) { 34 | System.out.println("Depresión"); 35 | } else { 36 | System.out.println("El día introducido no es un día válido."); 37 | } 38 | 39 | 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/src/com/example/estructurascontrol/condicionales/Switch.java: -------------------------------------------------------------------------------- 1 | package com.example.estructurascontrol.condicionales; 2 | 3 | public class Switch { 4 | public static void main(String[] args) { 5 | 6 | String dia = "Martes"; 7 | 8 | switch(dia){ 9 | case "Lunes": 10 | System.out.println("Hoy es Lunes!! Animo!!"); 11 | break; 12 | case "Martes": 13 | System.out.println("Hoy es Martes!! Animo!!"); 14 | break; 15 | case "Miercoles": 16 | System.out.println("Hoy es Miercoles!! Animo!!"); 17 | break; 18 | case "Jueves": 19 | System.out.println("Hoy es Jueves!! Animo!!"); 20 | break; 21 | case "Viernes": 22 | System.out.println("Hoy es Viernes!! Animo!!"); 23 | break; 24 | case "Sabado": 25 | System.out.println("Hoy es Sabado!! Animo!!"); 26 | break; 27 | case "Domingo": 28 | System.out.println("Hoy es Domingo!! Animo!!"); 29 | break; 30 | default: 31 | System.out.println("No es un día válido"); 32 | 33 | } 34 | 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/src/com/example/estructurascontrol/repeticion/ConcatenarTextos.java: -------------------------------------------------------------------------------- 1 | package com.example.estructurascontrol.repeticion; 2 | 3 | public class ConcatenarTextos { 4 | 5 | public static void main(String[] args) { 6 | 7 | String[] nombres = {"Pepito", "Juanit", "eveready"}; 8 | 9 | for(String nombre : nombres){ 10 | 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/src/com/example/estructurascontrol/repeticion/For.java: -------------------------------------------------------------------------------- 1 | package com.example.estructurascontrol.repeticion; 2 | 3 | public class For { 4 | 5 | public static void main(String[] args) { 6 | 7 | for(int i = 0; i < 20; i++){ 8 | // System.out.println("El valor de i es: " + i ); 9 | // System.out.println("Hola mundo"); 10 | } 11 | // 0 1 2 12 | String[] nombres = {"Pepe", "Juanito", "Ruperta"}; // length 3 13 | for(int i = 0; i < nombres.length; i++){ 14 | System.out.println(nombres[i]); 15 | } 16 | 17 | int suma = 0; 18 | int[] numeros = {5, 7, 8}; // length 3 19 | for(int i = 0; i < numeros.length; i++){ 20 | // suma = suma + numeros[i]; 21 | suma += numeros[i]; 22 | } 23 | 24 | 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/src/com/example/estructurascontrol/repeticion/ForEach.java: -------------------------------------------------------------------------------- 1 | package com.example.estructurascontrol.repeticion; 2 | 3 | public class ForEach { 4 | 5 | public static void main(String[] args) { 6 | String[] nombres = {"Pepe", "Juanito", "Ruperta"}; 7 | 8 | for(String nombre : nombres){ 9 | System.out.println(nombre); 10 | } 11 | 12 | int[] numeros = {5, 10 , 15}; 13 | 14 | int suma = 0; 15 | for(int numero : numeros){ 16 | suma += numero; 17 | } 18 | System.out.println(suma); 19 | 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/src/com/example/estructurascontrol/repeticion/While.java: -------------------------------------------------------------------------------- 1 | package com.example.estructurascontrol.repeticion; 2 | 3 | /** 4 | * Crear un bucle que permita concatenar textos y imprima el resultado final por consola. 5 | * Concatenar nombres 6 | * Los textos pueden venir de un array String 7 | * String[] nombres = {"", "", "", ""}; 8 | */ 9 | public class While { 10 | 11 | public static void main(String[] args) { 12 | 13 | int contador = 0; 14 | 15 | while(contador < 10){ 16 | String nombre = "Prueba"; 17 | contador++; 18 | if (contador == 5){ 19 | // break; 20 | continue; 21 | } 22 | System.out.println("Valor de contador " + contador); 23 | } 24 | // Variable nombre está fuera del ámbito del que se creó 25 | // System.out.println(nombre); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/src/com/example/funciones/Funciones.java: -------------------------------------------------------------------------------- 1 | package com.example.funciones; 2 | 3 | /** 4 | * Crear una funcion que reciba un precio y devuelva el precio con el IVA incluido 5 | */ 6 | public class Funciones { 7 | 8 | static double getPrice() { 9 | return 100.99; 10 | } 11 | 12 | 13 | /** 14 | * void indica que no devuelve nada 15 | */ 16 | static void showMenu(){ 17 | System.out.println("Bienvenidos al E-commerce de zapatillas:"); 18 | System.out.println("1 - Ver zapatillas"); 19 | System.out.println("2 - Comprar zapatilla"); 20 | System.out.println("3 - Salir"); 21 | } 22 | 23 | static String getMenu(){ 24 | System.out.println("Imprimiendo texto prueba"); 25 | return "Bienvenidos al E-commerce de zapatillas: \n 1 - Ver zapatillas...."; 26 | } 27 | 28 | public static void main(String[] args) { 29 | 30 | // opcion 1: funcion sin parámetros y sin tipo de retorno 31 | // showMenu(); 32 | // showMenu(); 33 | 34 | // opcion 2: funcion sin parámetros y con tipo de retorno 35 | String menu = getMenu(); 36 | System.out.println(menu); 37 | System.out.println(getMenu()); 38 | 39 | double price = getPrice(); 40 | System.out.println(price); 41 | 42 | // opcion 3: 43 | // funcion con parametros y sin tipo de retorno 44 | imprimirSaludoBuenosDias("OpenBootcamp"); 45 | 46 | // opcion4: 47 | // funcion con parámetros y con tipo de retorno 48 | String nombre = "Alan"; 49 | String apellido = "Sastre"; 50 | String saludo = obtenerSaludo(nombre, apellido); 51 | System.out.println(saludo); 52 | 53 | int resultadoSuma = suma(50, 200); 54 | } 55 | 56 | static int suma(int numero1, int numero2){ 57 | return numero1 + numero2; 58 | } 59 | 60 | 61 | static String obtenerSaludo(String nombre, String apellido){ 62 | return "Buenas tardes " + nombre + " " + apellido; 63 | } 64 | 65 | 66 | static void imprimirSaludoBuenosDias(String nombre){ 67 | System.out.println("Buenas tardes " + nombre); 68 | } 69 | 70 | 71 | 72 | } 73 | -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/src/com/example/funciones/Funciones2.java: -------------------------------------------------------------------------------- 1 | package com.example.funciones; 2 | 3 | public class Funciones2 { 4 | 5 | public static void main(String[] args) { 6 | 7 | int resultado1 = suma(50, 50); 8 | int resultado2 = suma(10, 50); 9 | int resultado3 = suma(50, 600); 10 | int resultado4 = suma(44, 50); 11 | 12 | } 13 | 14 | static int suma(int numero1, int numero2){ 15 | return numero1 + numero2; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/src/com/example/funciones/Sobrecarga.java: -------------------------------------------------------------------------------- 1 | package com.example.funciones; 2 | 3 | /** 4 | * Sobrecarga permite duplicar un método siempre y cuando tengan diferente numero/tipo parametros. 5 | */ 6 | public class Sobrecarga { 7 | 8 | public static void main(String[] args) { 9 | 10 | } 11 | 12 | static double suma(double numero1, double numero2){ 13 | return numero1 + numero2; 14 | } 15 | 16 | static int suma(int numero1, int numero2){ 17 | return numero1 + numero2; 18 | } 19 | 20 | static int suma(int numero1, int numero2, int numero3){ 21 | return numero1 + numero2 + numero3; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/src/com/example/tiposdatos/Operadores.java: -------------------------------------------------------------------------------- 1 | package com.example.tiposdatos; 2 | 3 | public class Operadores { 4 | 5 | public static void main(String[] args) { 6 | 7 | // aritmeticos: 8 | int numero1 = 10; 9 | int numero2 = 20; 10 | int resultadoSuma = numero1 + numero2; // 30 11 | 12 | System.out.println(resultadoSuma); 13 | System.out.println(resultadoSuma + 5.77); 14 | 15 | int resultadoResta = numero1 - numero2; 16 | 17 | /* 18 | comparación: 19 | > mayor que 20 | < menor que 21 | >= mayor igual que 22 | <= menor igual que 23 | == igual que 24 | === IMPORTANTE: EN JAVA NO EXISTE!!!! 25 | */ 26 | boolean resultado1 = numero1 > numero2; // false 27 | System.out.println(resultado1); 28 | 29 | boolean resultado2 = numero1 < numero2; // true 30 | System.out.println(resultado2); 31 | 32 | /* 33 | 34 | Lógicos 35 | and && 36 | or || 37 | */ 38 | 39 | boolean resultado3 = numero1 > 5 && numero1 < 30; 40 | 41 | int edad = 17; 42 | boolean carnetJoven = edad >= 15 && edad <= 26; 43 | 44 | // operadores 45 | // incremento ++ 46 | // decremento -- 47 | 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /sesiones_1_2_3/ob-sesion1/src/com/example/tiposdatos/Tipos.java: -------------------------------------------------------------------------------- 1 | package com.example.tiposdatos; 2 | 3 | 4 | /** 5 | * Crear un proyecto java desde cero. 6 | * Crear un paquete. 7 | * Dentro del paquete crear una clase. 8 | * Dentro de la clase crear un método main 9 | * Imprimir todos los tipos de datos vistos. 10 | * 11 | * Tipos de datos mas comunes: 12 | * int, long, double, boolean, String 13 | */ 14 | public class Tipos { 15 | 16 | public static void main(String[] args) { 17 | 18 | // 1. numericos 19 | 20 | 21 | // 1.1 enteros 22 | byte variable1 = 5; 23 | System.out.println(variable1); 24 | short variable2 = 10; 25 | int variable3 = 30; 26 | long variable4 = 100; 27 | long numeroTelefono = 666555444; 28 | // long precio = null; 29 | 30 | // 1.2 decimales 31 | float variable5 = 5.5f; 32 | double variable6 = 10.5d; 33 | variable6 = 20.5d; 34 | double precioSilla = 49.99; 35 | 36 | // 2. booleano 37 | boolean variable7 = false; 38 | boolean variable8 = true; 39 | 40 | // 3. texto 41 | char variable9 = 'a'; 42 | String variable10 = "Lorem ipsum dolor sit amet....."; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Datasource local storage ignored files 5 | /dataSources/ 6 | /dataSources.local.xml 7 | # Editor-based HTTP Client requests 8 | /httpRequests/ 9 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/.idea/uiDesigner.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/README.md: -------------------------------------------------------------------------------- 1 | # Ejercicios para la sesión de Java básico de hoy 08/10/2021 2 | 3 | ## Ejercicio 1 4 | 5 | Crear una clase SmartDevice 6 | 7 | Crear las clases hijas: 8 | 9 | SmartPhone 10 | SmartWatch 11 | 12 | Agregar atributos tal cual tendrían esos objetos en la realidad. 13 | 14 | Crear constructor vacío y con todo los parámetros para cada clase. 15 | 16 | Desde una clase Main: crear objetos de cada una y utilizarlos para imprimir sus valores por consola. 17 | 18 | ## Ejercicio 2 19 | 20 | Crear una interfaz CocheCRUD 21 | 22 | Crear una implementación CocheCRUDImpl que implemente la interfaz CocheCRUD. 23 | 24 | Como métodos de CocheCRUD podemos poner: 25 | * save() 26 | * findAll() 27 | * delete() 28 | que simplemente impriman por consola el nombre del propio método. 29 | 30 | Desde una clase Main, Crear un objeto de tipo CocheCRUDImpl y llamar a cada uno de los métodos. 31 | 32 | CocheCRUD cocheCrud = new CocheCRUDImpl(); 33 | 34 | 35 | ## Ejercicio 3 36 | 37 | Ver los catálogos de técnicas de refactorización: 38 | 39 | https://refactoring.com/catalog/ 40 | 41 | https://refactoring.guru/refactoring/catalog -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/ob-poo.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/out/production/ob-poo/poo/clases/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_4_5_6/ob-poo/out/production/ob-poo/poo/clases/Main.class -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/out/production/ob-poo/poo/clases/Motor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_4_5_6/ob-poo/out/production/ob-poo/poo/clases/Motor.class -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/out/production/ob-poo/poo/clases/Vehiculo.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_4_5_6/ob-poo/out/production/ob-poo/poo/clases/Vehiculo.class -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/out/production/ob-poo/poo/herencia/Camion.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_4_5_6/ob-poo/out/production/ob-poo/poo/herencia/Camion.class -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/out/production/ob-poo/poo/herencia/Coche.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_4_5_6/ob-poo/out/production/ob-poo/poo/herencia/Coche.class -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/out/production/ob-poo/poo/herencia/Motocicleta.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_4_5_6/ob-poo/out/production/ob-poo/poo/herencia/Motocicleta.class -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/out/production/ob-poo/poo/interfaces/Empleado.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_4_5_6/ob-poo/out/production/ob-poo/poo/interfaces/Empleado.class -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/out/production/ob-poo/poo/interfaces/EmpleadoCRUD.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_4_5_6/ob-poo/out/production/ob-poo/poo/interfaces/EmpleadoCRUD.class -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/out/production/ob-poo/poo/interfaces/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_4_5_6/ob-poo/out/production/ob-poo/poo/interfaces/Main.class -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/src/poo/clases/Main.java: -------------------------------------------------------------------------------- 1 | package poo.clases; 2 | 3 | import poo.herencia.Camion; 4 | import poo.herencia.Coche; 5 | import poo.herencia.Motocicleta; 6 | 7 | public class Main { 8 | 9 | public static void main(String[] args) { 10 | 11 | // 1. clases y objetos 12 | // Clase identificador = new Clase(); 13 | Vehiculo toyotaPrius = new Vehiculo(); 14 | Motor motorGTI = new Motor("GTI", 190, 459.0, 6); 15 | 16 | Vehiculo fordMondeo = new Vehiculo("Ford", "Mondeo", 2.1, 2010, false, 0, motorGTI); 17 | 18 | System.out.println(fordMondeo.fabricante); 19 | System.out.println(fordMondeo.year); 20 | System.out.println(fordMondeo.speed); // 0 21 | fordMondeo.acelerar(50); 22 | System.out.println(fordMondeo.speed); // 50 23 | 24 | // 2. herencia 25 | Motocicleta kawasakiNinja = new Motocicleta(); 26 | kawasakiNinja.fabricante = "Kawasaki"; 27 | 28 | 29 | System.out.println("fin de programa"); 30 | 31 | // 3. polimorfismo 32 | Vehiculo vehiculo; 33 | 34 | vehiculo = new Motocicleta(); 35 | vehiculo.acelerar(50); 36 | 37 | vehiculo = new Coche(); 38 | vehiculo.acelerar(50); 39 | 40 | vehiculo = new Camion(); 41 | vehiculo.acelerar(50); 42 | 43 | // 4. clases abstractas: no se pueden instanciar, solo instancian las clases hijas 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/src/poo/clases/Motor.java: -------------------------------------------------------------------------------- 1 | package poo.clases; 2 | 3 | public class Motor { 4 | 5 | // 1. atributos 6 | String modelo; 7 | int caballos; 8 | double parNm; 9 | int numCilindros; 10 | 11 | // 2. constructores 12 | public Motor(){ 13 | } 14 | 15 | public Motor(String modelo, int caballos, double parNm, int numCilindros) { 16 | this.modelo = modelo; 17 | this.caballos = caballos; 18 | this.parNm = parNm; 19 | this.numCilindros = numCilindros; 20 | } 21 | 22 | // 3. métodos 23 | 24 | 25 | } 26 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/src/poo/clases/Vehiculo.java: -------------------------------------------------------------------------------- 1 | package poo.clases; 2 | 3 | /** 4 | * Clase base o superclase o clase padre 5 | */ 6 | public class Vehiculo { 7 | 8 | // 1. atributos 9 | protected String fabricante; 10 | protected String modelo; 11 | protected double cc; 12 | protected int year; 13 | protected boolean sport; 14 | protected int speed; 15 | protected Motor motor; 16 | 17 | // 2. constructores 18 | public Vehiculo(){ 19 | 20 | } 21 | 22 | public Vehiculo(String fabricante, String modelo, double cc, int year, boolean sport, int speed, Motor motor) { 23 | this.fabricante = fabricante; 24 | this.modelo = modelo; 25 | this.cc = cc; 26 | this.year = year; 27 | this.sport = sport; 28 | this.speed = speed; 29 | this.motor = motor; 30 | } 31 | 32 | public Vehiculo(String fabricante, String modelo){ 33 | this.fabricante = fabricante; 34 | this.modelo = modelo; 35 | } 36 | 37 | public Vehiculo(String fabricante, int year) { 38 | this.fabricante = fabricante; 39 | this.year = year; 40 | } 41 | 42 | // 3. métodos (comportamiento) 43 | public void acelerar(int quantity){ 44 | this.speed += quantity; 45 | } 46 | 47 | // getter y setter 48 | 49 | // toString 50 | 51 | 52 | } 53 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/src/poo/coninterfaces/EmpleadoCRUD.java: -------------------------------------------------------------------------------- 1 | package poo.coninterfaces; 2 | 3 | import poo.sininterfaces.Empleado; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * Se declaran los métodos, no se implementan. 9 | * 10 | * Actúa como un contrato, dice lo que hay que hacer pero no lo hace 11 | */ 12 | public interface EmpleadoCRUD { 13 | 14 | void save(Empleado empleado); 15 | 16 | List findAll(); 17 | 18 | void delete(Empleado empleado); 19 | } 20 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/src/poo/coninterfaces/EmpleadoCRUDExcel.java: -------------------------------------------------------------------------------- 1 | package poo.coninterfaces; 2 | 3 | import poo.sininterfaces.Empleado; 4 | 5 | import java.util.List; 6 | 7 | public class EmpleadoCRUDExcel implements EmpleadoCRUD { 8 | @Override 9 | public void save(Empleado empleado) { 10 | 11 | } 12 | 13 | @Override 14 | public List findAll() { 15 | return null; 16 | } 17 | 18 | @Override 19 | public void delete(Empleado empleado) { 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/src/poo/coninterfaces/EmpleadoCRUDMySQL.java: -------------------------------------------------------------------------------- 1 | package poo.coninterfaces; 2 | 3 | import poo.sininterfaces.Empleado; 4 | 5 | import java.util.List; 6 | 7 | public class EmpleadoCRUDMySQL implements EmpleadoCRUD{ 8 | @Override 9 | public void save(Empleado empleado) { 10 | 11 | } 12 | 13 | @Override 14 | public List findAll() { 15 | return null; 16 | } 17 | 18 | @Override 19 | public void delete(Empleado empleado) { 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/src/poo/coninterfaces/EmpleadoReader.java: -------------------------------------------------------------------------------- 1 | package poo.coninterfaces; 2 | 3 | public interface EmpleadoReader { 4 | } 5 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/src/poo/coninterfaces/Main.java: -------------------------------------------------------------------------------- 1 | package poo.coninterfaces; 2 | 3 | import poo.sininterfaces.Empleado; 4 | 5 | public class Main { 6 | 7 | static EmpleadoCRUD empleadoCRUD; 8 | 9 | 10 | public static void main(String[] args) { 11 | 12 | empleadoCRUD.findAll(); 13 | empleadoCRUD.save(new Empleado()); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/src/poo/herencia/Camion.java: -------------------------------------------------------------------------------- 1 | package poo.herencia; 2 | 3 | import poo.clases.Vehiculo; 4 | 5 | public class Camion extends Vehiculo { 6 | 7 | double capacidadCarga; 8 | 9 | public Camion(){ 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/src/poo/herencia/Coche.java: -------------------------------------------------------------------------------- 1 | package poo.herencia; 2 | 3 | import poo.clases.Vehiculo; 4 | 5 | public class Coche extends Vehiculo { 6 | 7 | int numPuertas; 8 | } 9 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/src/poo/herencia/Motocicleta.java: -------------------------------------------------------------------------------- 1 | package poo.herencia; 2 | 3 | import poo.clases.Motor; 4 | import poo.clases.Vehiculo; 5 | 6 | /** 7 | * Clase derivada o clase hija o subclase 8 | */ 9 | public class Motocicleta extends Vehiculo { 10 | 11 | boolean baul; 12 | 13 | public Motocicleta(){ 14 | 15 | } 16 | 17 | public Motocicleta(String fabricante, String modelo, double cc, int year, boolean sport, int speed, Motor motor, boolean baul) { 18 | super(fabricante, modelo, cc, year, sport, speed, motor); 19 | this.baul = baul; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/src/poo/sininterfaces/Empleado.java: -------------------------------------------------------------------------------- 1 | package poo.sininterfaces; 2 | 3 | public class Empleado { 4 | 5 | // 1. atributos 6 | String nombre; 7 | int edad; 8 | double salario; 9 | boolean alta; 10 | 11 | // 2. constructores 12 | public Empleado(){} 13 | 14 | public Empleado(String nombre, int edad, double salario, boolean alta) { 15 | this.nombre = nombre; 16 | this.edad = edad; 17 | this.salario = salario; 18 | this.alta = alta; 19 | } 20 | 21 | // metodos 22 | 23 | 24 | @Override 25 | public String toString() { 26 | return "Empleado{" + 27 | "nombre='" + nombre + '\'' + 28 | ", edad=" + edad + 29 | ", salario=" + salario + 30 | ", alta=" + alta + 31 | '}'; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/src/poo/sininterfaces/EmpleadoCRUDV1.java: -------------------------------------------------------------------------------- 1 | package poo.sininterfaces; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | /** 7 | * Create 8 | * Retrieve/Read 9 | * Update 10 | * Delete 11 | */ 12 | public class EmpleadoCRUDV1 { 13 | 14 | // estructura de datos 15 | private List empleados = new ArrayList<>(); 16 | 17 | // OPERACIONES CRUD 18 | 19 | // CREATE - guardar un empleado 20 | public void save(Empleado empleado){ 21 | empleados.add(empleado); 22 | } 23 | 24 | public List findAll(){ 25 | return empleados; 26 | } 27 | 28 | 29 | } 30 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/src/poo/sininterfaces/EmpleadoCRUDV2.java: -------------------------------------------------------------------------------- 1 | package poo.sininterfaces; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class EmpleadoCRUDV2 { 7 | 8 | public List recuperarEmpleados(){ 9 | // conexion a base de datos 10 | List empleados = new ArrayList<>(); 11 | return empleados; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-poo/src/poo/sininterfaces/Main.java: -------------------------------------------------------------------------------- 1 | package poo.sininterfaces; 2 | 3 | 4 | import java.util.List; 5 | 6 | public class Main { 7 | 8 | public static void main(String[] args) { 9 | 10 | // EmpleadoCRUDV1 empleadoCRUDV1 = new EmpleadoCRUDV1(); 11 | // 12 | // Empleado juanito = new Empleado("Juanito", 30, 40000, true); 13 | // Empleado patricia = new Empleado("Patricia", 30, 40000, true); 14 | // Empleado roberto = new Empleado("Roberto", 30, 40000, true); 15 | // 16 | // System.out.println(juanito); 17 | // 18 | // // guardar empleados 19 | // empleadoCRUDV1.save(juanito); 20 | // empleadoCRUDV1.save(patricia); 21 | // empleadoCRUDV1.save(roberto); 22 | // 23 | // // consultar empleados 24 | // List empleados = empleadoCRUDV1.findAll(); 25 | // System.out.println(empleados); 26 | 27 | // usamos V2 28 | 29 | EmpleadoCRUDV2 empleadoCRUDV2 = new EmpleadoCRUDV2(); 30 | 31 | Empleado juanito = new Empleado("Juanito", 30, 40000, true); 32 | Empleado patricia = new Empleado("Patricia", 30, 40000, true); 33 | Empleado roberto = new Empleado("Roberto", 30, 40000, true); 34 | 35 | System.out.println(juanito); 36 | 37 | 38 | 39 | // consultar empleados 40 | List empleados = empleadoCRUDV2.recuperarEmpleados(); 41 | System.out.println(empleados); 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Datasource local storage ignored files 5 | /dataSources/ 6 | /dataSources.local.xml 7 | # Editor-based HTTP Client requests 8 | /httpRequests/ 9 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/ob-refactor.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/src/consolidatedconditional/bad/Main.java: -------------------------------------------------------------------------------- 1 | package consolidatedconditional.bad; 2 | 3 | public class Main { 4 | 5 | private double extraSalary; 6 | private int seniority; 7 | private int education; 8 | private int incidents; 9 | private boolean certification; 10 | 11 | double calculateExtraSalary(){ 12 | double result = 0; 13 | if (seniority<1){ 14 | return 0; 15 | } 16 | if (education<1){ 17 | return 0; 18 | } 19 | if(incidents > 10){ 20 | return 0; 21 | } 22 | if (!certification){ 23 | return 0; 24 | } 25 | 26 | // Calculate extra salary: 27 | // ... 28 | return result; 29 | 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/src/consolidatedconditional/good/Main.java: -------------------------------------------------------------------------------- 1 | package consolidatedconditional.good; 2 | 3 | public class Main { 4 | 5 | private double extraSalary; 6 | private int seniority; 7 | private int education; 8 | private int incidents; 9 | private boolean certification; 10 | 11 | double calculateExtraSalary(){ 12 | double result = 0; 13 | 14 | if(!isEligibleExtraSalary()){ 15 | return result; 16 | } 17 | 18 | // Calculamos el salario extra: 19 | 20 | 21 | // ... 22 | return result; 23 | 24 | } 25 | 26 | public boolean isEligibleExtraSalary(){ 27 | // agrupar condiciones utilizando AND (&&) y OR (||) 28 | boolean estudios = seniority<1 || education<1; 29 | boolean antiguedad = incidents > 10 && certification; 30 | return estudios || antiguedad; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/src/consolidateduplicate/bad/Main.java: -------------------------------------------------------------------------------- 1 | package consolidateduplicate.bad; 2 | 3 | public class Main { 4 | 5 | private double extraSalary; 6 | private int seniority; 7 | private int education; 8 | private int incidents; 9 | private boolean certification; 10 | 11 | double calculateExtraSalary(){ 12 | double result = 0; 13 | if(isEligibleExtraSalary()){ 14 | result = 500; 15 | sendMessage(); // metodo que se repite en la condicion 16 | }else{ 17 | result = 0; 18 | sendMessage(); // metodo que se repite en la condicion 19 | } 20 | return result; 21 | 22 | } 23 | 24 | private void sendMessage() { 25 | // send email 26 | // connect smtp 27 | System.out.println("Sending message"); 28 | } 29 | 30 | private boolean isEligibleExtraSalary() { 31 | boolean firstLevel = seniority<1 || education<1; 32 | boolean secondLevel = incidents > 10 || !certification; 33 | 34 | return firstLevel || secondLevel; 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/src/consolidateduplicate/good/Main.java: -------------------------------------------------------------------------------- 1 | package consolidateduplicate.good; 2 | 3 | public class Main { 4 | 5 | private double extraSalary; 6 | private int seniority; 7 | private int education; 8 | private int incidents; 9 | private boolean certification; 10 | 11 | double calculateExtraSalary(){ 12 | double result = 0; 13 | if(isEligibleExtraSalary()){ // verdadero 14 | result = 500; 15 | }else{ // faso 16 | result = 0; 17 | } 18 | sendMessage(); 19 | return result; 20 | 21 | } 22 | 23 | private void sendMessage() { 24 | // send email 25 | // connect smtp 26 | System.out.println("Sending message"); 27 | } 28 | 29 | private boolean isEligibleExtraSalary() { 30 | boolean firstLevel = seniority<1 || education<1; 31 | boolean secondLevel = incidents > 10 || !certification; 32 | 33 | return firstLevel || secondLevel; 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/src/extractclass/bad/Person.java: -------------------------------------------------------------------------------- 1 | package extractclass.bad; 2 | 3 | public class Person { 4 | 5 | private Long id; 6 | private String firstName; 7 | private String lastName; 8 | private Integer age; 9 | // address 10 | private String street; 11 | private String postalCode; 12 | private String city; 13 | private String country; 14 | private String door; 15 | 16 | 17 | } 18 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/src/extractclass/good/Address.java: -------------------------------------------------------------------------------- 1 | package extractclass.good; 2 | 3 | public class Address { 4 | 5 | // address 6 | private String street; 7 | private String postalCode; 8 | private String city; 9 | private String country; 10 | private String door; 11 | } 12 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/src/extractclass/good/Person.java: -------------------------------------------------------------------------------- 1 | package extractclass.good; 2 | 3 | public class Person { 4 | 5 | private Long id; 6 | private String firstName; 7 | private String lastName; 8 | private Integer age; 9 | 10 | private Address address; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/src/extractmethod/bad/Main.java: -------------------------------------------------------------------------------- 1 | package extractmethod.bad; 2 | 3 | public class Main { 4 | 5 | void printHTML(){ 6 | 7 | printHead(); 8 | printBody(); 9 | System.out.println("This is the footer"); 10 | System.out.println("script"); 11 | System.out.println("copyright"); 12 | System.out.println(""); 13 | 14 | } 15 | 16 | private void printBody() { 17 | } 18 | 19 | private void printHead() { 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/src/extractmethod/good/Main.java: -------------------------------------------------------------------------------- 1 | package extractmethod.good; 2 | 3 | public class Main { 4 | 5 | void printHTML(){ 6 | 7 | printHead(); 8 | printBody(); 9 | printFooter(); 10 | 11 | } 12 | 13 | private void printFooter() { 14 | System.out.println("This is the footer"); 15 | System.out.println("script"); 16 | System.out.println("copyright"); 17 | System.out.println(""); 18 | } 19 | 20 | private void printBody() { 21 | } 22 | 23 | private void printHead() { 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/src/extractvariable/bad/Main.java: -------------------------------------------------------------------------------- 1 | package extractvariable.bad; 2 | 3 | public class Main { 4 | 5 | void printProductPrice(Order order){ 6 | Double totalPrice = order.getPrice() * order.getQuantity() - 7 | order.getOffer() + order.getShipping() * 2; 8 | 9 | System.out.println(totalPrice); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/src/extractvariable/bad/Order.java: -------------------------------------------------------------------------------- 1 | package extractvariable.bad; 2 | 3 | public class Order { 4 | 5 | private Double price; 6 | private Integer quantity; 7 | private Double offer; 8 | private Double shipping; 9 | 10 | public Double getPrice() { 11 | return price; 12 | } 13 | public Integer getQuantity() { 14 | return quantity; 15 | } 16 | public Double getOffer() { 17 | return offer; 18 | } 19 | public void setPrice(Double price) { 20 | this.price = price; 21 | } 22 | public void setQuantity(Integer quantity) { 23 | this.quantity = quantity; 24 | } 25 | public void setOffer(Double offer) { 26 | this.offer = offer; 27 | } 28 | public Double getShipping() { 29 | return shipping; 30 | } 31 | public void setShipping(Double shipping) { 32 | this.shipping = shipping; 33 | } 34 | 35 | 36 | 37 | } 38 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/src/extractvariable/good/Main.java: -------------------------------------------------------------------------------- 1 | package extractvariable.good; 2 | 3 | import extractvariable.bad.Order; 4 | 5 | public class Main { 6 | 7 | void printProductPrice(Order order){ 8 | // calcular precio total 9 | 10 | // 1. precio de los productos 11 | Double quantityPrice = order.getPrice() * order.getQuantity(); 12 | 13 | // 2. descuento 14 | Double offerPrice = order.getPrice() * order.getOffer(); 15 | 16 | // 3. calcular precio productos con el descuento incluido 17 | Double finalPrice = quantityPrice - offerPrice; 18 | 19 | // 4. precio envio 20 | Double shippingCost = 0.0; 21 | if(finalPrice < 50){ 22 | shippingCost = 2.99; 23 | } 24 | 25 | // precio definitivo 26 | System.out.println(finalPrice + shippingCost); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/src/magicnumbers/bad/Main.java: -------------------------------------------------------------------------------- 1 | package magicnumbers.bad; 2 | 3 | public class Main { 4 | 5 | public static void main(String[] args) { 6 | double price = 129.99; 7 | 8 | double discountPrice = calculateDiscount(price); 9 | double shippingPrice = calculateShipping(price); 10 | } 11 | 12 | private static double calculateShipping(double price) { 13 | return price < 100 ? 4.99 : 0; // hard coded 14 | 15 | } 16 | 17 | private static double calculateDiscount(double price) { 18 | return price * 0.1; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/src/magicnumbers/good/Main.java: -------------------------------------------------------------------------------- 1 | package magicnumbers.good; 2 | 3 | public class Main { 4 | 5 | 6 | private static final double PRECIO_MINIMO_COMPRA = 100; 7 | private static final double PRECIO_ENVIO = 2.99; 8 | private static final double ENVIO_GRATIS = 0; 9 | private static final double DESCUENTO = 0.1; 10 | 11 | public static void main(String[] args) { 12 | double price = 129.99; 13 | 14 | double discountPrice = calculateDiscount(price); 15 | double shippingPrice = calculateShipping(price); 16 | } 17 | 18 | private static double calculateShipping(double price) { 19 | return price < PRECIO_MINIMO_COMPRA ? PRECIO_ENVIO : ENVIO_GRATIS; // hard coded 20 | 21 | } 22 | 23 | private static double calculateDiscount(double price) { 24 | return price * DESCUENTO; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/src/removeassign/bad/Main.java: -------------------------------------------------------------------------------- 1 | package removeassign.bad; 2 | 3 | public class Main { 4 | 5 | 6 | double calculateDiscount(Order order, double totalPrice){ 7 | if (order == null || order.getPrice() == null) // programacion defensiva 8 | return totalPrice; 9 | 10 | if (order.getPrice() > 100) 11 | totalPrice += order.getPrice() * order.getOffer(); // sobreescribe totalPrice 12 | return totalPrice; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/src/removeassign/bad/Order.java: -------------------------------------------------------------------------------- 1 | package removeassign.bad; 2 | 3 | public class Order { 4 | 5 | private Double price; 6 | private Double quantity; 7 | private Double offer; 8 | private Double shipping; 9 | 10 | public Double getPrice() { 11 | return price; 12 | } 13 | public Double getQuantity() { 14 | return quantity; 15 | } 16 | public Double getOffer() { 17 | return offer; 18 | } 19 | public void setPrice(Double price) { 20 | this.price = price; 21 | } 22 | public void setQuantity(Double quantity) { 23 | this.quantity = quantity; 24 | } 25 | public void setOffer(Double offer) { 26 | this.offer = offer; 27 | } 28 | public Double getShipping() { 29 | return shipping; 30 | } 31 | public void setShipping(Double shipping) { 32 | this.shipping = shipping; 33 | } 34 | 35 | 36 | 37 | } 38 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/src/removeassign/good/Main.java: -------------------------------------------------------------------------------- 1 | package removeassign.good; 2 | 3 | import removeassign.bad.Order; 4 | 5 | public class Main { 6 | 7 | 8 | double calculateDiscount(Order order, double totalPrice){ 9 | double result = totalPrice; 10 | 11 | if (order == null || order.getPrice() == null) // programacion defensiva 12 | return result; 13 | 14 | if (order.getPrice() > 100) 15 | result += order.getPrice() * order.getOffer(); // sobreescribe totalPrice 16 | return result; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/src/replacemethod/bad/Product.java: -------------------------------------------------------------------------------- 1 | package replacemethod.bad; 2 | 3 | public class Product { 4 | 5 | double price; 6 | int quantity; 7 | double discount; 8 | double shipping; 9 | 10 | // constructores 11 | 12 | // metodos 13 | 14 | // tostring 15 | 16 | public double calculatePrice(){ 17 | double result = 0; 18 | double priceQuantity = this.price * this.quantity; 19 | double priceDiscount = this.price * this.discount; 20 | double priceShipping = shipping * 0.50; 21 | 22 | // ....... 23 | 24 | // ...... 25 | return result; 26 | } 27 | 28 | // getter y setter 29 | public double getPrice() { 30 | return price; 31 | } 32 | public int getQuantity() { 33 | return quantity; 34 | } 35 | public double getDiscount() { 36 | return discount; 37 | } 38 | public double getShipping() { 39 | return shipping; 40 | } 41 | public void setPrice(double price) { 42 | this.price = price; 43 | } 44 | public void setQuantity(int quantity) { 45 | this.quantity = quantity; 46 | } 47 | public void setDiscount(double discount) { 48 | this.discount = discount; 49 | } 50 | public void setShipping(double shipping) { 51 | this.shipping = shipping; 52 | } 53 | 54 | } 55 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/src/replacemethod/good/Product.java: -------------------------------------------------------------------------------- 1 | package replacemethod.good; 2 | 3 | /** 4 | * Técnica de refactoring para componer métodos 5 | * (Composing Methods) 6 | * 7 | * Replace method with method object 8 | */ 9 | public class Product { 10 | 11 | private double price; 12 | private int quantity; 13 | private double discount; 14 | private double shipping; 15 | 16 | 17 | // metodos especiales 18 | 19 | double calculatePrice(){ 20 | // ProductPriceCalculator calculator = new ProductPriceCalculator(this); 21 | // return calculator.calculatePrice(); 22 | 23 | return new ProductPriceCalculator(this).calculatePrice(); 24 | } 25 | 26 | // getter y setter 27 | public double getPrice() { 28 | return price; 29 | } 30 | public int getQuantity() { 31 | return quantity; 32 | } 33 | public double getDiscount() { 34 | return discount; 35 | } 36 | public double getShipping() { 37 | return shipping; 38 | } 39 | public void setPrice(double price) { 40 | this.price = price; 41 | } 42 | public void setQuantity(int quantity) { 43 | this.quantity = quantity; 44 | } 45 | public void setDiscount(double discount) { 46 | this.discount = discount; 47 | } 48 | public void setShipping(double shipping) { 49 | this.shipping = shipping; 50 | } 51 | 52 | 53 | 54 | } 55 | -------------------------------------------------------------------------------- /sesiones_4_5_6/ob-refactor/src/replacemethod/good/ProductPriceCalculator.java: -------------------------------------------------------------------------------- 1 | package replacemethod.good; 2 | 3 | public class ProductPriceCalculator { 4 | 5 | 6 | private double price; 7 | private int quantity; 8 | 9 | public ProductPriceCalculator(Product product) { 10 | this.price = product.getPrice(); 11 | this.quantity = product.getQuantity(); 12 | 13 | } 14 | 15 | 16 | public double calculatePrice(){ 17 | double result = 0; 18 | 19 | // calculos 20 | 21 | 22 | return result; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /sesiones_7_8_9/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Editor-based HTTP Client requests 5 | /httpRequests/ 6 | # Datasource local storage ignored files 7 | /dataSources/ 8 | /dataSources.local.xml 9 | -------------------------------------------------------------------------------- /sesiones_7_8_9/.idea/.name: -------------------------------------------------------------------------------- 1 | sesiones_7_8_y_9 -------------------------------------------------------------------------------- /sesiones_7_8_9/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /sesiones_7_8_9/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /sesiones_7_8_9/.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /sesiones_7_8_9/Java Básico.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /sesiones_7_8_9/out/production/Java Básico/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_7_8_9/out/production/Java Básico/Main.class -------------------------------------------------------------------------------- /sesiones_7_8_9/out/production/Java Básico/Sesion7.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_7_8_9/out/production/Java Básico/Sesion7.class -------------------------------------------------------------------------------- /sesiones_7_8_9/out/production/Java Básico/Sesion8.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_7_8_9/out/production/Java Básico/Sesion8.class -------------------------------------------------------------------------------- /sesiones_7_8_9/out/production/Java Básico/Sesion9.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Open-Bootcamp/java_basico/7f228f3fe2aaac4aea565d249b1fe79dfe1392d5/sesiones_7_8_9/out/production/Java Básico/Sesion9.class -------------------------------------------------------------------------------- /sesiones_7_8_9/src/Main.java: -------------------------------------------------------------------------------- 1 | public class Main { 2 | public static void main(String []args) { 3 | /* 4 | * Descomentar la llamada a la función que queramos ver. 5 | */ 6 | 7 | //Sesion7.demoStrings(); 8 | //Sesion7.demoArrays(); 9 | //Sesion7.demoVector(); 10 | //Sesion7.demoList(); 11 | //Sesion7.demoMap(); 12 | //Sesion7.demoMath(); 13 | 14 | //Sesion8.errorDivisionPorCero(); 15 | //Sesion8.errorDivisionPorCeroTry(); 16 | //Sesion8.errorOutOfBounds(); 17 | //Sesion8.errorOutOfBoundsTry(); 18 | //Sesion8.errorLogico(); 19 | 20 | //Sesion9.leerByteAByte(); 21 | //Sesion9.leerTodo(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /sesiones_7_8_9/src/Sesion7.java: -------------------------------------------------------------------------------- 1 | import java.math.BigDecimal; 2 | import java.util.*; 3 | 4 | public class Sesion7 { 5 | // En esta función suprimo los warnings de ConstantConditions, arrojados por los "if" 6 | // de starts/endsWith al ser siempre cierta/falsa la condición. 7 | @SuppressWarnings("ConstantConditions") 8 | public static void demoStrings() { 9 | // Declarar un string 10 | String cadena = "Esto es una cadena"; 11 | 12 | // Obtener longitud de la cadena 13 | int cadenaLen = cadena.length(); 14 | System.out.println(cadenaLen); 15 | 16 | // Convertir toda la cadena a minúsculas 17 | String cadenaMinus = cadena.toLowerCase(); 18 | System.out.println(cadenaMinus); 19 | 20 | // Convertir toda la cadena a mayúsculas 21 | String cadenaMayus = cadena.toUpperCase(); 22 | System.out.println(cadenaMayus); 23 | 24 | // Verificar si una cadena empieza por otra cadena 25 | if (cadena.startsWith("Es")) { 26 | System.out.println("La cadena empieza por \"Es\"'"); 27 | } 28 | 29 | if (cadena.startsWith("hola")) { 30 | System.out.println("La cadena empieza por \"hola\""); 31 | } 32 | 33 | // Verificar si uan cadena finaliza por otra cadena 34 | if (cadena.endsWith("cadena")) { 35 | System.out.println("La cadena finaliza por \"cadena\""); 36 | } 37 | 38 | if (cadena.endsWith("adios")) { 39 | System.out.println("La cadena finaliza por \"adios\""); 40 | } 41 | 42 | // Imprimimr un string carácter a carácter 43 | for (int i = 0; i < cadena.length(); i++) { 44 | char caracter = cadena.charAt(i); 45 | System.out.println("Caracter: " + caracter); 46 | } 47 | } 48 | 49 | // Para mostar una copia de array a mano, hay una copia literal en un for abajo del todo. 50 | // Como esto es un warning, vamos a suprimirlo, ya que queremos mostrar el ejemplo. 51 | @SuppressWarnings("ManualArrayCopy") 52 | public static void demoArrays() { 53 | // Declarar un array 54 | int []arrayUno = new int[5]; 55 | 56 | // Asignar valores a un array previamente declarado: 57 | arrayUno[0] = 1; 58 | arrayUno[1] = 2; 59 | arrayUno[2] = 3; 60 | arrayUno[3] = 4; 61 | arrayUno[4] = 5; 62 | 63 | // Declarar e inicializar un array 64 | String []arrayDos = {"Naranja", "Limon", "Pomelo"}; 65 | 66 | // Recorrer un array: 67 | for (int i = 0; i < arrayUno.length; i++) { 68 | System.out.println("Posicion del array " + i + " contiene el valor " + arrayUno[i]); 69 | } 70 | 71 | // Recorrer un array con la forma corta: 72 | for (String citrico : arrayDos) { 73 | System.out.println("Cítrico actual " + citrico); 74 | } 75 | 76 | // Declarar un array multidimensional 77 | int [][]arrayBidiUno = new int[2][4]; 78 | 79 | // Asignar valores a un array multidimensional previamente declarado: 80 | arrayBidiUno[0][0] = 1; 81 | arrayBidiUno[0][1] = 2; 82 | arrayBidiUno[0][2] = 3; 83 | arrayBidiUno[0][3] = 4; 84 | 85 | arrayBidiUno[1][0] = 10; 86 | arrayBidiUno[1][1] = 20; 87 | arrayBidiUno[1][2] = 30; 88 | arrayBidiUno[1][3] = 40; 89 | 90 | // Recorrer un array bidimensional: 91 | for (int i = 0; i < arrayBidiUno.length; i++) { 92 | for (int j = 0; j < arrayBidiUno[i].length; j++) { 93 | System.out.println("Posición: [" + i + "][" + j + "] y contiene el valor " + arrayBidiUno[i][j]); 94 | } 95 | } 96 | 97 | // Declarar e inicializar un array multidimensional 98 | int [][]arrayBidiDos = { 99 | {1, 2, 3, 4}, 100 | {10, 20, 30, 40}, 101 | }; 102 | 103 | // Recorrer un array bidimensional: 104 | for (int i = 0; i < arrayBidiDos.length; i++) { 105 | for (int j = 0; j < arrayBidiDos[i].length; j++) { 106 | System.out.println("Posición: [" + i + "][" + j + "] y contiene el valor " + arrayBidiDos[i][j]); 107 | } 108 | } 109 | 110 | // "Crecer" un array. 111 | // Solo podemos hacerlo creando uno nuevo de más tamaño y llenándolo con el contenido del original. 112 | int nuevoArrayLen = arrayUno.length * 2; 113 | int []nuevoArray = new int[nuevoArrayLen]; 114 | 115 | // Esto dará un warning: Copia manual del array 116 | for (int i = 0; i < arrayUno.length; i++) { 117 | nuevoArray[i] = arrayUno[i]; 118 | } 119 | 120 | // Para copiar un array "elegántemente": 121 | System.arraycopy(nuevoArray, 0, arrayUno, 0, arrayUno.length); 122 | } 123 | 124 | public static void demoVector() { 125 | // Un vector es similar a un array, pero puede (de)crecer dinámicamente. 126 | Vector vector = new Vector<>(); 127 | 128 | // Añadir elementos 129 | vector.add(1); 130 | vector.add(2); 131 | vector.add(3); 132 | System.out.println("Contenido del vector: " + vector); 133 | 134 | // Quitar un elemento: 135 | vector.remove(1); 136 | System.out.println("Contenido del vector: " + vector); 137 | 138 | // Los vectores tienen capacidad y tamaño: 139 | System.out.println("Tamaño: " + vector.size() + " - Capacidad: " + vector.capacity()); 140 | 141 | // Podemos ajustar la capacidad al tamaño actual: 142 | vector.trimToSize(); 143 | System.out.println("Tamaño: " + vector.size() + " - Capacidad: " + vector.capacity()); 144 | 145 | // Al añadir un elemento al vector, si superamos su capacidad, esta aumenta en capacityIncrement. 146 | // capacityIncrement se declara en el constructor del vector, y si es menor o igual a cero, por 147 | // defecto es el doble de la capacidad previa. 148 | vector.add(9); 149 | System.out.println("Tamaño: " + vector.size() + " - Capacidad: " + vector.capacity()); 150 | 151 | // Recorrer un vector 152 | for (int i = 0; i < vector.size(); i++) { 153 | System.out.println("Valor en la posicion " + i + " del vector: " + vector.get(i)); 154 | } 155 | 156 | // Recorrerlo con la forma corta: 157 | for (int i : vector) { 158 | System.out.println("Valor actual del vector: " + i); 159 | } 160 | 161 | // Comparar dos vectores 162 | Vector vector2 = new Vector<>(); 163 | vector2.add(1); 164 | vector2.add(3); 165 | vector2.add(9); 166 | 167 | if (vector.equals(vector2)) { 168 | System.out.println("Los dos vectores son equivalentes"); 169 | System.out.println(" -> vector: " + vector); 170 | System.out.println(" -> vector: " + vector2); 171 | } 172 | } 173 | 174 | public static void demoList() { 175 | // Similares a los vectores, usando un array de forma subyacente. 176 | // No están sincronizados, es importante tenerlo en cuenta cuando necesitamos código "thread-safe". 177 | 178 | // Tambien varía la forma de aumentar su capacidad. Por defecto, el vector dobla la capacidad, y 179 | // el ArrayList aumenta con la formula "capacidad += capacidad * 0.5". En el constructor no podemos 180 | // darle un tamaño de autocrecimiento (a diferencia del Vector), y utiliza la formula previa. 181 | 182 | // Crear una lista de tipo ArrayList: 183 | ArrayList lista = new ArrayList<>(); 184 | 185 | // Añadir elementos 186 | lista.add("Uno"); 187 | lista.add("Dos"); 188 | lista.add("Tres"); 189 | System.out.println("Contenido de la lista: " + lista); 190 | 191 | // Quitar un elemento: 192 | lista.remove("Dos"); 193 | System.out.println("Contenido de la lista: " + lista); 194 | 195 | // Las listas tienen tamaño: 196 | System.out.println("Tamaño: " + lista.size()); 197 | 198 | // Recorrer una lista 199 | for (int i = 0; i < lista.size(); i++) { 200 | System.out.println("Valor en la posicion " + i + " de la lista: " + lista.get(i)); 201 | } 202 | 203 | // Recorrerlo con la forma corta: 204 | for (String e : lista) { 205 | System.out.println("Valor actual de la lista: " + e); 206 | } 207 | 208 | // Comparar dos listas 209 | ArrayList lista2 = new ArrayList<>(); 210 | lista2.add("Uno"); 211 | lista2.add("Tres"); 212 | 213 | if (lista.equals(lista2)) { 214 | System.out.println("Las dos listas son equivalentes"); 215 | System.out.println(" -> lista: " + lista); 216 | System.out.println(" -> lista2: " + lista2); 217 | } 218 | 219 | // Podemos convertir una lista en un array: 220 | String []array = new String[lista.size()]; 221 | for (int i = 0; i < lista.size(); i++) { 222 | array[i] = lista.get(i); 223 | } 224 | 225 | for (String elemento : array) { 226 | System.out.println("Elemento de la lista convertida en array es: " + elemento); 227 | } 228 | 229 | // Otra forma de hacer lo mismo: 230 | for (Object arrayObjeto : lista.toArray()) { 231 | System.out.println("Elemento de la lista convertida en array es: " + arrayObjeto.toString()); 232 | } 233 | 234 | // Las listas pueden ser de más tipos, además de ArrayList: 235 | LinkedList listaEnlazada = new LinkedList<>(); 236 | 237 | // Y tienen las mismas operaciones que un ArrayList: 238 | listaEnlazada.add("Hola"); 239 | System.out.println(listaEnlazada.get(0)); 240 | listaEnlazada.remove("Hola"); 241 | 242 | // Y pueden copiarse unas a otras 243 | LinkedList listaEnlazadaDos = new LinkedList<>(lista); 244 | 245 | // Podemos recorrer nuestra nueva lista, tipo enlazada, y a la que hemos copiado 246 | // los valores desde "lista", que es del tipo ArrayList. 247 | for (String elemento : listaEnlazadaDos) { 248 | System.out.println("Elemento actual en la lista enlazada: " + elemento); 249 | } 250 | 251 | // Cada tipo de lista tiene sus pros y sus contras: 252 | // ArrayList: 253 | // - Utiliza un array dinámico internamente 254 | // - Es más rápida para almacenar y buscar datos 255 | // - Solo implementa la interfaz "List", por lo que solo puede actuar como una lista 256 | // 257 | // LinkedList: 258 | // - Utiliza una lista doblemente enlazada a nivel interno 259 | // - Es más rápida para modificar datos 260 | // - Puede funcionar como lista y como cola, ya que implementa las interfaces "List" y "Deque" 261 | // 262 | // Hay más tipos, ¡búscalos! 263 | } 264 | 265 | public static void demoMap() { 266 | // Los mapas implementan colecciones "clave" = "valor". 267 | 268 | // Crear un mapa del tipo "HashMap": 269 | HashMap mapa = new HashMap<>(); 270 | 271 | // Añadir elementos: 272 | mapa.put("clave1", 1); 273 | mapa.put("clave2", 2); 274 | mapa.put("clave3", 3); 275 | 276 | // Imprimir un valor de una clave del mapa accediendo a él: 277 | System.out.println("Valor de \"clave2\": " + mapa.get("clave2")); 278 | 279 | // Eliminar una clave del mapa: 280 | mapa.remove("clave2"); 281 | 282 | // Un mapa no puede tener claves duplicadas, esto no se añadirá de nuevo, pero si reemplazará 283 | // su valor por "4": 284 | mapa.put("clave3", 4); 285 | System.out.println("Valor de \"clave3\": " + mapa.get("clave3")); 286 | 287 | // Un mapa puede cambiar el valor de una clave. Es más rapido reemplazar una clave que conozcamos 288 | // con replace que mediante mapa.put: 289 | mapa.replace("clave3", 100); 290 | 291 | // Recorrer un mapa: 292 | for (Map.Entry elemento : mapa.entrySet()) { 293 | System.out.println("Clave: " + elemento.getKey() + " - Valor: " + elemento.getValue()); 294 | } 295 | } 296 | 297 | public static void demoMath() { 298 | // Math es muy preciso con decimales utilizando BigDecimal. 299 | double valorInicial = 3.14f; 300 | BigDecimal valorA = BigDecimal.valueOf(valorInicial); 301 | 302 | double valorSecundario = 3.15f; 303 | BigDecimal valorB = BigDecimal.valueOf(valorSecundario); 304 | 305 | // Suma el BigDecimal "valorB" a "valorA" 306 | BigDecimal resultado = valorA.add(valorB); 307 | 308 | // Imprime la suma 309 | System.out.println(resultado); 310 | } 311 | } 312 | -------------------------------------------------------------------------------- /sesiones_7_8_9/src/Sesion8.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class Sesion8 { 4 | public static void errorDivisionPorCero() { 5 | Scanner scanner = new Scanner(System.in); 6 | System.out.print("Introduce dos números: "); 7 | 8 | int numeroA = scanner.nextInt(); 9 | int numeroB = scanner.nextInt(); 10 | 11 | int resultado = numeroA / numeroB; 12 | 13 | System.out.println("El resultado es: " + resultado); 14 | } 15 | 16 | public static void errorDivisionPorCeroTry() { 17 | Scanner scanner = new Scanner(System.in); 18 | System.out.print("Introduce dos números: "); 19 | 20 | int numeroA = scanner.nextInt(); 21 | int numeroB = scanner.nextInt(); 22 | 23 | try { 24 | int resultado = numeroA / numeroB; 25 | System.out.println("El resultado es: " + resultado); 26 | } catch (ArithmeticException e) { 27 | System.out.println("¡No se puede dividir por cero!"); 28 | } 29 | } 30 | 31 | public static void errorOutOfBounds() { 32 | int []numeros = new int[3]; 33 | System.out.println(numeros[3]); 34 | } 35 | 36 | public static void errorOutOfBoundsTry() { 37 | try { 38 | int []numeros = new int[3]; 39 | System.out.println(numeros[3]); 40 | } catch (ArrayIndexOutOfBoundsException e) { 41 | System.out.println("Estás accediendo a un elemetno que no existe: " + e.getMessage()); 42 | } 43 | } 44 | 45 | public static void errorLogico() { 46 | int a = 5; 47 | int b = 10; 48 | int resultado = a - b; 49 | System.out.println("El resultado de sumar a + b es = " + resultado); 50 | } 51 | } -------------------------------------------------------------------------------- /sesiones_7_8_9/src/Sesion9.java: -------------------------------------------------------------------------------- 1 | import java.io.FileInputStream; 2 | import java.io.FileNotFoundException; 3 | import java.io.IOException; 4 | import java.io.InputStream; 5 | 6 | public class Sesion9 7 | { 8 | public static void leerTodo() { 9 | try { 10 | InputStream fichero = new FileInputStream("/etc/passwd"); 11 | 12 | try { 13 | byte []datos = fichero.readAllBytes(); 14 | for (byte dato : datos) { 15 | System.out.print((char)dato); 16 | } 17 | fichero.close(); 18 | 19 | } catch (IOException e) { 20 | System.out.println("No puedo leerlo: " + e.getMessage()); 21 | } 22 | 23 | 24 | } catch (FileNotFoundException e) { 25 | System.out.println("Fichero no encontrado: " + e.getMessage()); 26 | } 27 | } 28 | 29 | public static void leerByteAByte() { 30 | try { 31 | InputStream fichero = new FileInputStream("/etc/passwd"); 32 | 33 | try { 34 | byte []datos = new byte[5]; 35 | int data = fichero.read(datos); 36 | 37 | 38 | while (data != -1) { 39 | System.out.println("Leido: '" + (char)data + "' que es el código " + data); 40 | data = fichero.read(); 41 | } 42 | 43 | } catch (IOException e) { 44 | System.out.println("Error al leer: " + e.getMessage()); 45 | } 46 | 47 | } catch (FileNotFoundException e) { 48 | System.out.println("Error al abrir fichero: " + e.getMessage()); 49 | } 50 | } 51 | } 52 | --------------------------------------------------------------------------------