[{"data":1,"prerenderedAt":876},["ShallowReactive",2],{"navigation_docs":3,"-clases-objetos-diagramas":412,"-clases-objetos-diagramas-surround":871},[4,18,43,118,160,200,231,320,346],{"title":5,"path":6,"stem":7,"children":8,"icon":17},"Evaluación","\u002Fintroduction","1.introduction\u002F1.index",[9,12],{"title":10,"path":6,"stem":7,"icon":11},"Método de Evaluación","i-iconamoon-cheque-bold",{"title":13,"path":14,"stem":15,"icon":16},"Plataforma de Aprendizaje","\u002Fintroduction\u002Fplataforma","1.introduction\u002F2.plataforma","i-lucide-book-marked","i-lucide-house",{"title":19,"icon":20,"path":21,"stem":22,"children":23,"page":42},"Entorno de desarrollo","i-codicon-edit-code","\u002Fide","2.ide",[24,28,33,37],{"title":25,"path":26,"stem":27,"icon":20},"¿Qué es un IDE?","\u002Fide\u002Fentorno","2.ide\u002F1.entorno",{"title":29,"path":30,"stem":31,"icon":32},"Estructura de un Proyecto","\u002Fide\u002Festructura","2.ide\u002F2.estructura","i-clarity-tree-view-line",{"title":34,"path":35,"stem":36,"icon":20},"La compilación en un IDE","\u002Fide\u002Fcompilacion","2.ide\u002F3.compilacion",{"title":38,"path":39,"stem":40,"icon":41},"Depuración de Código","\u002Fide\u002Fdepurar","2.ide\u002F4.depurar","i-lucide-bug",false,{"title":44,"icon":45,"path":46,"stem":47,"children":48,"page":42},"Clases y Objetos","i-catppuccin-java-class","\u002Fclases-objetos","3.clases-objetos",[49,53,57,62,66,70,74,78,83,88,92,96,101,106,110,114],{"title":50,"path":51,"stem":52},"Repaso previo a Clases y Objetos","\u002Fclases-objetos\u002Fpreview","3.clases-objetos\u002F00.preview",{"title":54,"path":55,"stem":56,"icon":45},"¿Qué es la Programación Orientada a Objetos (POO)?","\u002Fclases-objetos\u002Fpoo","3.clases-objetos\u002F01.poo",{"title":58,"path":59,"stem":60,"icon":61},"Diagramas de Clases y Objetos","\u002Fclases-objetos\u002Fdiagramas","3.clases-objetos\u002F02.diagramas","i-devicon-uml",{"title":63,"path":64,"stem":65,"icon":45},"Las Clases","\u002Fclases-objetos\u002Fclases","3.clases-objetos\u002F03.clases",{"title":67,"path":68,"stem":69,"icon":45},"Ámbito y Visibilidad","\u002Fclases-objetos\u002Fambito","3.clases-objetos\u002F04.ambito",{"title":71,"path":72,"stem":73,"icon":45},"Declaración e Instanciación de Objetos","\u002Fclases-objetos\u002Fobjetos","3.clases-objetos\u002F05.objetos",{"title":75,"path":76,"stem":77,"icon":45},"Clases Predefinidas en Java","\u002Fclases-objetos\u002Fpredefinidas","3.clases-objetos\u002F06.predefinidas",{"title":79,"path":80,"stem":81,"icon":82},"Paquetes en Java","\u002Fclases-objetos\u002Fpaquetes","3.clases-objetos\u002F07.paquetes","i-material-icon-theme-folder-java-open",{"title":84,"path":85,"stem":86,"icon":87},"Las Excepciones","\u002Fclases-objetos\u002Fexcepciones","3.clases-objetos\u002F08.excepciones","i-catppuccin-java-exception",{"title":89,"path":90,"stem":91,"icon":45},"La clase JOptionPane","\u002Fclases-objetos\u002Fjoptionpane","3.clases-objetos\u002F09.joptionpane",{"title":93,"path":94,"stem":95,"icon":45},"Constructores y Accesores","\u002Fclases-objetos\u002Fconstructores","3.clases-objetos\u002F10.constructores",{"title":97,"path":98,"stem":99,"icon":100},"Tipos Enumerados (Enums)","\u002Fclases-objetos\u002Fenumerados","3.clases-objetos\u002F11.enumerados","i-catppuccin-java-enum",{"title":102,"path":103,"stem":104,"icon":105},"Modificadores de acceso static y final","\u002Fclases-objetos\u002Fmodificadores","3.clases-objetos\u002F12.modificadores","i-mdi-chart-box",{"title":107,"path":108,"stem":109,"icon":105},"El casting en Java","\u002Fclases-objetos\u002Fcasting","3.clases-objetos\u002F13.casting",{"title":111,"path":112,"stem":113},"Las Expresiones Regulares","\u002Fclases-objetos\u002Fexpresiones-regulares","3.clases-objetos\u002F14.expresiones-regulares",{"title":115,"path":116,"stem":117,"icon":105},"Clases Genéricas en Java","\u002Fclases-objetos\u002Fclases-genericas","3.clases-objetos\u002F15.clases-genericas",{"title":119,"icon":120,"path":121,"stem":122,"children":123,"page":42},"Funciones (Métodos)","i-material-symbols-function","\u002Fmetodos","4.metodos",[124,128,132,136,140,144,148,152,156],{"title":125,"path":126,"stem":127},"Funciones Genéricas","\u002Fmetodos\u002Ffuncion-generica","4.metodos\u002F01.funcion-generica",{"title":129,"path":130,"stem":131},"Métodos de Instancia y de Clase","\u002Fmetodos\u002Finstancia-clase","4.metodos\u002F02.instancia-clase",{"title":133,"path":134,"stem":135},"Sobrecarga de Funciones","\u002Fmetodos\u002Fsobrecarga","4.metodos\u002F03.sobrecarga",{"title":137,"path":138,"stem":139},"Alcance de Variables y Métodos","\u002Fmetodos\u002Falcance","4.metodos\u002F04.alcance",{"title":141,"path":142,"stem":143},"Recursividad","\u002Fmetodos\u002Frecursividad","4.metodos\u002F05.recursividad",{"title":145,"path":146,"stem":147},"Puntero this","\u002Fmetodos\u002Fthis","4.metodos\u002F06.this",{"title":149,"path":150,"stem":151},"Los argumentos variables (varargs)","\u002Fmetodos\u002Fvarargs","4.metodos\u002F07.varargs",{"title":153,"path":154,"stem":155},"La clase Arrays","\u002Fmetodos\u002Farrays","4.metodos\u002F08.arrays",{"title":157,"path":158,"stem":159},"Predicados Simples y Compuestos en Java","\u002Fmetodos\u002Fpredicados","4.metodos\u002F09.predicados",{"title":161,"path":162,"stem":163,"children":164,"icon":199},"Herencia","\u002Fherencia","5.herencia\u002F01.index",[165,167,171,175,179,183,187,191,195],{"title":166,"path":162,"stem":163},"¿Qué es la herencia?",{"title":168,"path":169,"stem":170},"Sobreescritura de métodos y uso de `super`","\u002Fherencia\u002Fsobeescritura","5.herencia\u002F02.sobeescritura",{"title":172,"path":173,"stem":174},"Tipos de herencia","\u002Fherencia\u002Ftipos-herencia","5.herencia\u002F03.tipos-herencia",{"title":176,"path":177,"stem":178},"La clase Object en Java","\u002Fherencia\u002Fobject","5.herencia\u002F04.object",{"title":180,"path":181,"stem":182},"Polimorfismo","\u002Fherencia\u002Fpolimorfismo","5.herencia\u002F05.polimorfismo",{"title":184,"path":185,"stem":186},"Clases y Funciones Abstractas","\u002Fherencia\u002Fabstract","5.herencia\u002F06.abstract",{"title":188,"path":189,"stem":190},"Interfaces","\u002Fherencia\u002Finterfaces","5.herencia\u002F07.interfaces",{"title":192,"path":193,"stem":194},"Funciones e Interfaces","\u002Fherencia\u002Ffunciones-interfaces","5.herencia\u002F08.funciones-interfaces",{"title":196,"path":197,"stem":198},"Interfaces y Funciones Lambda","\u002Fherencia\u002Flambda-interface","5.herencia\u002F09.lambda-interface","i-material-symbols-heritage",{"title":201,"path":202,"stem":203,"children":204,"icon":199},"Arreglos","\u002Farreglos","6.arreglos\u002F01.index",[205,207,211,215,219,223,227],{"title":206,"path":202,"stem":203},"Los arreglos en Java",{"title":208,"path":209,"stem":210},"Los arreglos","\u002Farreglos\u002Farray","6.arreglos\u002F02.array",{"title":212,"path":213,"stem":214},"Matrices","\u002Farreglos\u002Fmatrices","6.arreglos\u002F03.matrices",{"title":216,"path":217,"stem":218},"Comparadores","\u002Farreglos\u002Fcomparator","6.arreglos\u002F04.comparator",{"title":220,"path":221,"stem":222},"Arreglos dinámicos: ArrayList","\u002Farreglos\u002Farraylist","6.arreglos\u002F05.arraylist",{"title":224,"path":225,"stem":226},"Arreglos Relacionales: HashMap","\u002Farreglos\u002Fhashmap","6.arreglos\u002F06.hashmap",{"title":228,"path":229,"stem":230},"La clase Stream en Java","\u002Farreglos\u002Fstream","6.arreglos\u002F07.stream",{"title":232,"icon":199,"path":233,"stem":234,"children":235,"page":42},"Archivos e Interfaz de Usuario","\u002Farchivos-ui","7.archivos-ui",[236,240,244,248,252,256,260,264,268,272,276,280,284,288,292,296,300,304,308,312,316],{"title":237,"path":238,"stem":239},"El paquete Swing","\u002Farchivos-ui\u002Fswing","7.archivos-ui\u002F01.swing",{"title":241,"path":242,"stem":243},"La clase JFrame y el JPanel","\u002Farchivos-ui\u002Fjpanel","7.archivos-ui\u002F02.jpanel",{"title":245,"path":246,"stem":247},"Los Layouts en Swing","\u002Farchivos-ui\u002Flayout","7.archivos-ui\u002F03.layout",{"title":249,"path":250,"stem":251},"Iniciando con Swing","\u002Farchivos-ui\u002Finiciando","7.archivos-ui\u002F04.iniciando",{"title":253,"path":254,"stem":255},"Las clases Color y Font en Swing","\u002Farchivos-ui\u002Fcolor-font","7.archivos-ui\u002F05.color-font",{"title":257,"path":258,"stem":259},"Etiquetas en Swing","\u002Farchivos-ui\u002Fetiquetas","7.archivos-ui\u002F06.etiquetas",{"title":261,"path":262,"stem":263},"Personalizando la apariencia de los componentes en Swing","\u002Farchivos-ui\u002Fpersonalizando","7.archivos-ui\u002F07.personalizando",{"title":265,"path":266,"stem":267},"Sobrescribiendo el método drawComponent() en Swing","\u002Farchivos-ui\u002Fdraw","7.archivos-ui\u002F08.draw",{"title":269,"path":270,"stem":271},"Manejando eventos en Swing","\u002Farchivos-ui\u002Feventos","7.archivos-ui\u002F09.eventos",{"title":273,"path":274,"stem":275},"Personalización de Componentes mediante la Extensión de Clases en Swing","\u002Farchivos-ui\u002Fextends-component","7.archivos-ui\u002F10.extends-component",{"title":277,"path":278,"stem":279},"Gradientes","\u002Farchivos-ui\u002Fgradientes","7.archivos-ui\u002F11.gradientes",{"title":281,"path":282,"stem":283},"Botones en Swing","\u002Farchivos-ui\u002Fbotones","7.archivos-ui\u002F12.botones",{"title":285,"path":286,"stem":287},"Los delegadores en Swing","\u002Farchivos-ui\u002Fdelegadores","7.archivos-ui\u002F13.delegadores",{"title":289,"path":290,"stem":291},"UI para nuestro RPG: Parte 1","\u002Farchivos-ui\u002Frpg-ui-1","7.archivos-ui\u002F14.rpg-ui-1",{"title":293,"path":294,"stem":295},"UI para nuestro RPG: Parte 2","\u002Farchivos-ui\u002Frpg-ui-2","7.archivos-ui\u002F15.rpg-ui-2",{"title":297,"path":298,"stem":299},"Los Streams Entrada y Salida","\u002Farchivos-ui\u002Fstreams","7.archivos-ui\u002F16.streams",{"title":301,"path":302,"stem":303},"Archivo tipo Objeto","\u002Farchivos-ui\u002Farchivo-objeto","7.archivos-ui\u002F17.archivo-objeto",{"title":305,"path":306,"stem":307},"UI para nuestro RPG: Parte 3","\u002Farchivos-ui\u002Frpg-ui-3","7.archivos-ui\u002F18.rpg-ui-3",{"title":309,"path":310,"stem":311},"UI para nuestro RPG: Parte 4","\u002Farchivos-ui\u002Frpg-ui-4","7.archivos-ui\u002F19.rpg-ui-4",{"title":313,"path":314,"stem":315},"UI para nuestro RPG: Parte 5","\u002Farchivos-ui\u002Frpg-ui-5","7.archivos-ui\u002F20.rpg-ui-5",{"title":317,"path":318,"stem":319},"UI para nuestro RPG: Parte 6","\u002Farchivos-ui\u002Frpg-ui-6","7.archivos-ui\u002F21.rpg-ui-6",{"title":321,"icon":322,"path":323,"stem":324,"children":325,"page":42},"Ejemplos","i-check-circle","\u002Fejemplos","8.ejemplos",[326,330,334,338,342],{"title":327,"path":328,"stem":329,"icon":105},"Ejemplo 1: Validando entradas con JOptionPane","\u002Fejemplos\u002Fejemplo-01","8.ejemplos\u002F01.ejemplo-01",{"title":331,"path":332,"stem":333},"Ejemplo 02: Uso de clases genéricas en Java","\u002Fejemplos\u002Fejemplo-02","8.ejemplos\u002F02.ejemplo-02",{"title":335,"path":336,"stem":337},"Ejemplo 03: Uso de Enum, Excepciones en Java","\u002Fejemplos\u002Fejemplo-03","8.ejemplos\u002F03.ejemplo-03",{"title":339,"path":340,"stem":341},"Ejemplo 4: Clase con funciones genéricas de validación","\u002Fejemplos\u002Fejemplo-04","8.ejemplos\u002F04.ejemplo-04",{"title":343,"path":344,"stem":345},"Ejemplo 5: Sistema de Gestión de Empleados","\u002Fejemplos\u002Fejemplo-05","8.ejemplos\u002F05.ejemplo-05",{"title":347,"icon":322,"path":348,"stem":349,"children":350,"page":42},"Actividades","\u002Factividades","9.actividades",[351,355,360,364,368,372,376,380,384,388,392,396,400,404,408],{"title":352,"path":353,"stem":354,"icon":105},"Actividad 1: Infografía sobre el proceso de compilación","\u002Factividades\u002Fact-01","9.actividades\u002F01.act-01",{"title":356,"path":357,"stem":358,"icon":359},"Actividad 2: Modelando Diagramas de Clases UML","\u002Factividades\u002Fact-02","9.actividades\u002F02.act-02","i-material-icon-theme-uml",{"title":361,"path":362,"stem":363,"icon":45},"Actividad 3: Creando Clases y Objetos en Java","\u002Factividades\u002Fact-03","9.actividades\u002F03.act-03",{"title":365,"path":366,"stem":367},"Actividad 4: Validando entradas de datos","\u002Factividades\u002Fact-04","9.actividades\u002F04.act-04",{"title":369,"path":370,"stem":371,"icon":105},"Actividad 5: Implementando una clase genérica","\u002Factividades\u002Fact-05","9.actividades\u002F05.act-05",{"title":373,"path":374,"stem":375,"icon":105},"Actividad 6: Expandiendo InputValidator con Predicados y Function","\u002Factividades\u002Fact-06","9.actividades\u002F06.act-06",{"title":377,"path":378,"stem":379,"icon":105},"Actividad 7: Gestor de Biblioteca con InputValidator","\u002Factividades\u002Fact-07","9.actividades\u002F07.act-07",{"title":381,"path":382,"stem":383,"icon":105},"Actividad 8: Calculadora de Figuras Geométricas","\u002Factividades\u002Fact-08","9.actividades\u002F08.act-08",{"title":385,"path":386,"stem":387,"icon":105},"Actividad 9: gestión de una empresa agroalimentaria","\u002Factividades\u002Fact-09","9.actividades\u002F09.act-09",{"title":389,"path":390,"stem":391,"icon":105},"Actividad 10: Sistema de gestión de clínicas veterinarias","\u002Factividades\u002Fact-10","9.actividades\u002F10.act-10",{"title":393,"path":394,"stem":395},"Definición de Proyecto Evolutivo","\u002Factividades\u002Frpg","9.actividades\u002F11.rpg",{"title":397,"path":398,"stem":399},"Actividad 11: Creación de Personajes","\u002Factividades\u002Fact-11","9.actividades\u002F12.act-11",{"title":401,"path":402,"stem":403},"Actividad 12: El Inventario y los Objetos","\u002Factividades\u002Fact-12","9.actividades\u002F13.act-12",{"title":405,"path":406,"stem":407},"Actividad 13: El combate por turnos","\u002Factividades\u002Fact-13","9.actividades\u002F14.act-13",{"title":409,"path":410,"stem":411},"Actividad 14: Guardando y Cargando","\u002Factividades\u002Fact-14","9.actividades\u002F15.act-14",{"id":413,"title":58,"body":414,"description":864,"extension":865,"links":866,"meta":867,"navigation":868,"path":59,"seo":869,"stem":60,"__hash__":870},"docs\u002F3.clases-objetos\u002F02.diagramas.md",{"type":415,"value":416,"toc":856},"minimark",[417,421,426,429,434,488,515,520,523,551,667,697,701,704,785,797,801,804,845,849,852],[418,419,420],"p",{},"Los diagramas de clases y objetos son herramientas visuales esenciales en la programación orientada a objetos. Estos diagramas permiten representar las estructuras y relaciones entre las clases y los objetos en un sistema, facilitando la comprensión y el diseño del software.",[422,423,425],"h2",{"id":424},"diagrama-de-clases","Diagrama de Clases",[418,427,428],{},"Un diagrama de clases es una representación gráfica que muestra las clases en un sistema y las relaciones entre ellas. Cada clase se representa como un rectángulo dividido en tres partes: el nombre de la clase, los atributos (propiedades) y los métodos (funciones).",[430,431],"nuxt-img",{"src":432,"alt":425,"width":433},"clases_1.png",200,[435,436,441],"pre",{"className":437,"code":438,"language":439,"meta":440,"style":440},"language-plantuml shiki shiki-themes github-dark","@startuml\nclass Persona {\n  - nombre: String\n  - edad: int\n  + saludar(): void\n}\n@enduml\n","plantuml","",[442,443,444,452,458,464,470,476,482],"code",{"__ignoreMap":440},[445,446,449],"span",{"class":447,"line":448},"line",1,[445,450,451],{},"@startuml\n",[445,453,455],{"class":447,"line":454},2,[445,456,457],{},"class Persona {\n",[445,459,461],{"class":447,"line":460},3,[445,462,463],{},"  - nombre: String\n",[445,465,467],{"class":447,"line":466},4,[445,468,469],{},"  - edad: int\n",[445,471,473],{"class":447,"line":472},5,[445,474,475],{},"  + saludar(): void\n",[445,477,479],{"class":447,"line":478},6,[445,480,481],{},"}\n",[445,483,485],{"class":447,"line":484},7,[445,486,487],{},"@enduml\n",[418,489,490,491,494,495,498,499,502,503,506,507,510,511,514],{},"En este ejemplo, la clase ",[442,492,493],{},"Persona"," tiene dos atributos privados (",[442,496,497],{},"nombre"," y ",[442,500,501],{},"edad",") y un método público (",[442,504,505],{},"saludar","). Así mismo puedes notar que los atributos y métodos están precedidos por símbolos que indican su visibilidad: ",[442,508,509],{},"-"," para privado y ",[442,512,513],{},"+"," para público. Y están seguidos por su tipo de dato.",[516,517,519],"h3",{"id":518},"relaciones-entre-clases","Relaciones entre Clases",[418,521,522],{},"Las relaciones entre clases se representan mediante líneas que conectan las clases. Algunas de las relaciones más comunes son:",[524,525,526,534,539,545],"ul",{},[527,528,529,533],"li",{},[530,531,532],"strong",{},"Asociación",": Representa una relación entre dos clases. Se muestra con una línea sólida.",[527,535,536,538],{},[530,537,161],{},": Indica que una clase hereda de otra. Se representa con una línea sólida y una flecha abierta apuntando hacia la clase padre.",[527,540,541,544],{},[530,542,543],{},"Agregación",": Indica una relación \"tiene un\" entre clases. Se representa con una línea sólida y un rombo vacío en el extremo de la clase que contiene.",[527,546,547,550],{},[530,548,549],{},"Composición",": Similar a la agregación, pero indica una relación más fuerte. Se representa con una línea sólida y un rombo relleno.",[435,552,554],{"className":437,"code":553,"language":439,"meta":440,"style":440},"@startuml\nclass Vehiculo {\n  + acelerar(): void\n}\nclass Coche {\n  + abrirPuertas(): void\n}\nclass Persona {\n  + conducir(v: Vehiculo): void\n}\nclass Motor {\n  + encender(): void\n}\nclass Vendedor {\n  + vender(v: Vehiculo, p: Persona): void\n}\nVehiculo \u003C|-- Coche\nPersona \"1\" o-- \"1..*\" Vehiculo\nCoche \"1\" *-- \"1\" Motor\nVendedor -- Vehiculo\n@enduml\n",[442,555,556,560,565,570,574,579,584,588,593,599,604,610,616,621,627,633,638,644,650,656,662],{"__ignoreMap":440},[445,557,558],{"class":447,"line":448},[445,559,451],{},[445,561,562],{"class":447,"line":454},[445,563,564],{},"class Vehiculo {\n",[445,566,567],{"class":447,"line":460},[445,568,569],{},"  + acelerar(): void\n",[445,571,572],{"class":447,"line":466},[445,573,481],{},[445,575,576],{"class":447,"line":472},[445,577,578],{},"class Coche {\n",[445,580,581],{"class":447,"line":478},[445,582,583],{},"  + abrirPuertas(): void\n",[445,585,586],{"class":447,"line":484},[445,587,481],{},[445,589,591],{"class":447,"line":590},8,[445,592,457],{},[445,594,596],{"class":447,"line":595},9,[445,597,598],{},"  + conducir(v: Vehiculo): void\n",[445,600,602],{"class":447,"line":601},10,[445,603,481],{},[445,605,607],{"class":447,"line":606},11,[445,608,609],{},"class Motor {\n",[445,611,613],{"class":447,"line":612},12,[445,614,615],{},"  + encender(): void\n",[445,617,619],{"class":447,"line":618},13,[445,620,481],{},[445,622,624],{"class":447,"line":623},14,[445,625,626],{},"class Vendedor {\n",[445,628,630],{"class":447,"line":629},15,[445,631,632],{},"  + vender(v: Vehiculo, p: Persona): void\n",[445,634,636],{"class":447,"line":635},16,[445,637,481],{},[445,639,641],{"class":447,"line":640},17,[445,642,643],{},"Vehiculo \u003C|-- Coche\n",[445,645,647],{"class":447,"line":646},18,[445,648,649],{},"Persona \"1\" o-- \"1..*\" Vehiculo\n",[445,651,653],{"class":447,"line":652},19,[445,654,655],{},"Coche \"1\" *-- \"1\" Motor\n",[445,657,659],{"class":447,"line":658},20,[445,660,661],{},"Vendedor -- Vehiculo\n",[445,663,665],{"class":447,"line":664},21,[445,666,487],{},[418,668,669,670,673,674,677,678,680,681,677,683,685,686,689,690,693,694,696],{},"En este ejemplo, ",[442,671,672],{},"Coche"," hereda de ",[442,675,676],{},"Vehiculo",", ",[442,679,493],{}," tiene una relación de agregación con ",[442,682,676],{},[442,684,672],{}," tiene una relación de composición con ",[442,687,688],{},"Motor",", y ",[442,691,692],{},"Vendedor"," tiene una asociación con ",[442,695,676],{},".",[422,698,700],{"id":699},"diagrama-de-objetos","Diagrama de Objetos",[418,702,703],{},"Un diagrama de objetos es una representación gráfica que muestra instancias específicas de clases (objetos) y sus relaciones en un momento dado. Cada objeto se representa como un rectángulo con el nombre del objeto seguido por dos puntos y el nombre de la clase.",[435,705,707],{"className":437,"code":706,"language":439,"meta":440,"style":440},"@startuml\nclass Persona {\n  - nombre: String\n  - edad: int\n  + saludar(): void\n}\nobject persona1 {\n  nombre = \"Juan\"\n  edad = 30\n}\nobject persona2 {\n  nombre = \"Ana\"\n  edad = 25\n}\nPersona -- persona1\nPersona -- persona2\n@enduml\n",[442,708,709,713,717,721,725,729,733,738,743,748,752,757,762,767,771,776,781],{"__ignoreMap":440},[445,710,711],{"class":447,"line":448},[445,712,451],{},[445,714,715],{"class":447,"line":454},[445,716,457],{},[445,718,719],{"class":447,"line":460},[445,720,463],{},[445,722,723],{"class":447,"line":466},[445,724,469],{},[445,726,727],{"class":447,"line":472},[445,728,475],{},[445,730,731],{"class":447,"line":478},[445,732,481],{},[445,734,735],{"class":447,"line":484},[445,736,737],{},"object persona1 {\n",[445,739,740],{"class":447,"line":590},[445,741,742],{},"  nombre = \"Juan\"\n",[445,744,745],{"class":447,"line":595},[445,746,747],{},"  edad = 30\n",[445,749,750],{"class":447,"line":601},[445,751,481],{},[445,753,754],{"class":447,"line":606},[445,755,756],{},"object persona2 {\n",[445,758,759],{"class":447,"line":612},[445,760,761],{},"  nombre = \"Ana\"\n",[445,763,764],{"class":447,"line":618},[445,765,766],{},"  edad = 25\n",[445,768,769],{"class":447,"line":623},[445,770,481],{},[445,772,773],{"class":447,"line":629},[445,774,775],{},"Persona -- persona1\n",[445,777,778],{"class":447,"line":635},[445,779,780],{},"Persona -- persona2\n",[445,782,783],{"class":447,"line":640},[445,784,487],{},[418,786,669,787,498,790,793,794,796],{},[442,788,789],{},"persona1",[442,791,792],{},"persona2"," son instancias de la clase ",[442,795,493],{},", con sus respectivos atributos.",[422,798,800],{"id":799},"herramientas-para-crear-diagramas","Herramientas para Crear Diagramas",[418,802,803],{},"Existen varias herramientas que puedes utilizar para crear diagramas de clases y objetos, algunas de las más populares incluyen:",[524,805,806,812,825,835],{},[527,807,808,811],{},[530,809,810],{},"PlantUML",": Una herramienta de código abierto que permite crear diagramas a partir de texto, como se muestra en los ejemplos anteriores y que puedes instalar en tu entorno de desarrollo.",[527,813,814,817,818,696],{},[530,815,816],{},"Lucidchart",": Una herramienta en línea que ofrece una interfaz intuitiva para crear diagramas UML en la siguiente ",[819,820,824],"a",{"href":821,"rel":822},"https:\u002F\u002Fwww.lucidchart.com\u002Fpages\u002Fexamples\u002Fuml-diagram-tool",[823],"nofollow","página web",[527,826,827,830,831,696],{},[530,828,829],{},"Draw.io",": Otra herramienta en línea gratuita que permite crear diagramas UML fácilmente en la siguiente ",[819,832,824],{"href":833,"rel":834},"https:\u002F\u002Fapp.diagrams.net\u002F",[823],[527,836,837,840,841,696],{},[530,838,839],{},"StarUML",": Una aplicación de escritorio que ofrece soporte completo para diagramas UML y otras funcionalidades avanzadas. Que puedes descargar en la siguiente ",[819,842,824],{"href":843,"rel":844},"http:\u002F\u002Fstaruml.io\u002F",[823],[422,846,848],{"id":847},"conclusión","Conclusión",[418,850,851],{},"Los diagramas de clases y objetos son herramientas poderosas para modelar sistemas orientados a objetos. Permiten visualizar la estructura y las relaciones entre las clases y los objetos, facilitando el diseño y la comprensión del software. Al dominar estos diagramas, podrás mejorar tus habilidades en el desarrollo de software orientado a objetos.",[853,854,855],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":440,"searchDepth":454,"depth":454,"links":857},[858,861,862,863],{"id":424,"depth":454,"text":425,"children":859},[860],{"id":518,"depth":460,"text":519},{"id":699,"depth":454,"text":700},{"id":799,"depth":454,"text":800},{"id":847,"depth":454,"text":848},"Aprende a crear y utilizar diagramas de clases y objetos para modelar sistemas orientados a objetos.","md",null,{"editButton":42},{"icon":61},{"title":58,"description":864},"G-O2H5NAfCbV-KVIl6wDryvqiEBekbXLS2v0PS1R8no",[872,874],{"title":54,"path":55,"stem":56,"description":873,"icon":45,"children":-1},"Introducción a los conceptos fundamentales de la Programación Orientada a Objetos (POO) y su importancia en el desarrollo de software moderno.",{"title":63,"path":64,"stem":65,"description":875,"icon":45,"children":-1},"Entendamos qué son las clases en la Programación Orientada a Objetos y cómo se utilizan en Java.",1779479563901]