[{"data":1,"prerenderedAt":857},["ShallowReactive",2],{"navigation_docs":3,"-clases-objetos-clases":412,"-clases-objetos-clases-surround":852},[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":63,"body":414,"description":845,"extension":846,"links":847,"meta":848,"navigation":849,"path":64,"seo":850,"stem":65,"__hash__":851},"docs\u002F3.clases-objetos\u002F03.clases.md",{"type":415,"value":416,"toc":837},"minimark",[417,434,439,447,460,464,475,612,660,664,667,707,711,714,761,765,768,823,827,833],[418,419,420,421,425,426,429,430,433],"p",{},"En la Programación Orientada a Objetos (POO), las ",[422,423,424],"strong",{},"clases"," son uno de los conceptos fundamentales. Una clase es una plantilla o un molde que define las características y comportamientos comunes de un conjunto de objetos. En otras palabras, una clase es una estructura que encapsula datos (",[422,427,428],{},"atributos",") y funciones (",[422,431,432],{},"métodos",") relacionadas.",[435,436,438],"h2",{"id":437},"una-pequeña-metáfora-antes-de-comenzar","Una pequeña metáfora antes de comenzar",[418,440,441,442,446],{},"Imagina que estás diseñando un videojuego. En este juego, tienes diferentes tipos de personajes, como guerreros, magos y arqueros. Cada tipo de personaje tiene características comunes, como salud, fuerza y habilidades especiales. En este caso, podrías crear una clase llamada ",[443,444,445],"code",{},"Personaje"," que defina estas características y comportamientos comunes como atacar, defenderse y usar habilidades especiales.",[418,448,449,450,452,453,456,457,459],{},"Entonces, podemos decir que la clase ",[443,451,445],{}," es el molde o plantilla que define cómo son y qué pueden hacer los personajes en el juego. A partir de esta clase, puedes crear diferentes objetos (",[422,454,455],{},"instancias",") de personajes específicos, como un guerrero llamado \"Thor\" o un mago llamado \"Merlín\". Cada uno de estos objetos tendrá sus propios valores para los atributos definidos en la clase ",[443,458,445],{},", pero compartirán los mismos comportamientos o acciones definidos en la clase.",[435,461,463],{"id":462},"definición-de-una-clase-en-java","Definición de una Clase en Java",[418,465,466,467,470,471,474],{},"En Java, una clase se define utilizando la palabra clave ",[443,468,469],{},"class",", seguida del nombre de la clase y un par de llaves ",[443,472,473],{},"{}"," que encierran el cuerpo de la clase. Aquí tienes un ejemplo básico de cómo definir una clase en Java:",[476,477,483],"pre",{"className":478,"code":479,"filename":480,"language":481,"meta":482,"style":482},"language-java shiki shiki-themes github-dark","public class Persona {\n    \u002F\u002F Atributos\n    String nombre;\n    int edad;\n\n    \u002F\u002F Función\n    public void saludar() {\n        System.out.println(\"Hola, mi nombre es \" + nombre \n                + \" y tengo \" + edad + \" años.\");\n    }\n}\n","Persona.java","java","",[443,484,485,505,512,518,527,534,540,555,577,600,606],{"__ignoreMap":482},[486,487,490,494,497,501],"span",{"class":488,"line":489},"line",1,[486,491,493],{"class":492},"snl16","public",[486,495,496],{"class":492}," class",[486,498,500],{"class":499},"svObZ"," Persona",[486,502,504],{"class":503},"s95oV"," {\n",[486,506,508],{"class":488,"line":507},2,[486,509,511],{"class":510},"sAwPA","    \u002F\u002F Atributos\n",[486,513,515],{"class":488,"line":514},3,[486,516,517],{"class":503},"    String nombre;\n",[486,519,521,524],{"class":488,"line":520},4,[486,522,523],{"class":492},"    int",[486,525,526],{"class":503}," edad;\n",[486,528,530],{"class":488,"line":529},5,[486,531,533],{"emptyLinePlaceholder":532},true,"\n",[486,535,537],{"class":488,"line":536},6,[486,538,539],{"class":510},"    \u002F\u002F Función\n",[486,541,543,546,549,552],{"class":488,"line":542},7,[486,544,545],{"class":492},"    public",[486,547,548],{"class":492}," void",[486,550,551],{"class":499}," saludar",[486,553,554],{"class":503},"() {\n",[486,556,558,561,564,567,571,574],{"class":488,"line":557},8,[486,559,560],{"class":503},"        System.out.",[486,562,563],{"class":499},"println",[486,565,566],{"class":503},"(",[486,568,570],{"class":569},"sU2Wk","\"Hola, mi nombre es \"",[486,572,573],{"class":492}," +",[486,575,576],{"class":503}," nombre \n",[486,578,580,583,586,588,591,594,597],{"class":488,"line":579},9,[486,581,582],{"class":492},"                +",[486,584,585],{"class":569}," \" y tengo \"",[486,587,573],{"class":492},[486,589,590],{"class":503}," edad ",[486,592,593],{"class":492},"+",[486,595,596],{"class":569}," \" años.\"",[486,598,599],{"class":503},");\n",[486,601,603],{"class":488,"line":602},10,[486,604,605],{"class":503},"    }\n",[486,607,609],{"class":488,"line":608},11,[486,610,611],{"class":503},"}\n",[613,614,615,641,651],"note",{},[418,616,617,618,621,622,625,626,629,630,625,633,636,637,640],{},"En este ejemplo, hemos definido una clase llamada ",[443,619,620],{},"Persona"," que tiene dos atributos: ",[443,623,624],{},"nombre"," (de tipo ",[443,627,628],{},"String",") y ",[443,631,632],{},"edad",[443,634,635],{},"int","). Además, la clase tiene un método llamado ",[443,638,639],{},"saludar()"," que imprime un mensaje de saludo utilizando los atributos de la clase.",[418,642,643,644,646,647,650],{},"Además, es importante destacar que en Java, los nombres de las clases suelen comenzar con una letra mayúscula por convención, y se utiliza la notación CamelCase para nombres compuestos (por ejemplo, ",[443,645,620],{},", ",[443,648,649],{},"MiClaseEjemplo",").",[418,652,653,654,656,657,659],{},"Así mismo, puedes notar que el archivo donde se define la clase ",[443,655,620],{}," se llama ",[443,658,480],{},". En Java, es una práctica común que el nombre del archivo coincida con el nombre de la clase pública que contiene, ya que de lo contrario, el compilador generará un error.",[435,661,663],{"id":662},"miembros-de-una-clase","Miembros de una Clase",[418,665,666],{},"Los miembros de una clase en Java incluyen:",[668,669,670,686,695,701],"ul",{},[671,672,673,676,677,679,680,682,683,685],"li",{},[422,674,675],{},"Atributos",": Son las variables que almacenan los datos o características de la clase. En el ejemplo anterior, ",[443,678,624],{}," y ",[443,681,632],{}," son atributos de la clase ",[443,684,620],{},".",[671,687,688,691,692,694],{},[422,689,690],{},"Funciones o Métodos",": Son las funciones que definen el comportamiento de la clase. En el ejemplo, ",[443,693,639],{}," es un método que realiza una acción específica utilizando los atributos de la clase.",[671,696,697,700],{},[422,698,699],{},"Constructores",": Son métodos especiales que se utilizan para crear e inicializar objetos de la clase. Hablaremos más sobre los constructores en la siguiente sección.",[671,702,703,706],{},[422,704,705],{},"Bloques estáticos y de instancia",": Son bloques de código que se ejecutan cuando se carga la clase o cuando se crea una instancia de la clase, respectivamente. Estos bloques se utilizan para inicializar variables estáticas o realizar acciones específicas al crear objetos.",[435,708,710],{"id":709},"buenas-prácticas-al-definir-clases","Buenas prácticas al definir clases",[418,712,713],{},"Al definir clases en Java, es importante seguir algunas buenas prácticas para mantener un código limpio y organizado:",[668,715,716,731,737,743,749,755],{},[671,717,718,721,722,646,725,679,728,730],{},[422,719,720],{},"Encapsulamiento",": Utiliza modificadores de acceso (como ",[443,723,724],{},"private",[443,726,727],{},"protected",[443,729,493],{},") para controlar el acceso a los atributos y métodos de la clase. Esto ayuda a proteger los datos y mantener la integridad del objeto.",[671,732,733,736],{},[422,734,735],{},"Nombres descriptivos",": Utiliza nombres claros y descriptivos para las clases, atributos y métodos. Esto facilita la comprensión del código y su mantenimiento.",[671,738,739,742],{},[422,740,741],{},"Cohesión",": Asegúrate de que cada clase tenga una única responsabilidad o propósito. Evita que una clase tenga demasiadas funciones o atributos que no estén relacionados entre sí.",[671,744,745,748],{},[422,746,747],{},"Acoplamiento bajo",": Minimiza las dependencias entre clases. Una clase debe ser lo más independiente posible para facilitar su reutilización y mantenimiento.",[671,750,751,754],{},[422,752,753],{},"Documentación",": Agrega comentarios y documentación a tus clases y métodos para explicar su propósito y funcionamiento. Esto es especialmente útil cuando trabajas en equipo o cuando vuelves a revisar tu código después de un tiempo.",[671,756,757,760],{},[422,758,759],{},"Responsabilidad única",": Cada clase debe tener una única responsabilidad o propósito. Evita crear clases que hagan demasiadas cosas, ya que esto puede dificultar su mantenimiento y reutilización.",[435,762,764],{"id":763},"principios-de-nomenclatura","Principios de Nomenclatura",[418,766,767],{},"Al definir clases en Java, es importante seguir ciertos principios de nomenclatura para mantener un código claro y consistente. Aquí hay algunas pautas a tener en cuenta:",[668,769,770,780,792,805,817],{},[671,771,772,775,776,646,778,685],{},[422,773,774],{},"Nombres de Clases",": Los nombres de las clases deben comenzar con una letra mayúscula y utilizar la notación CamelCase para nombres compuestos. Por ejemplo, ",[443,777,620],{},[443,779,649],{},[671,781,782,785,786,646,788,646,790,685],{},[422,783,784],{},"Nombres de Atributos y Métodos",": Los nombres de los atributos y métodos deben comenzar con una letra minúscula y también utilizar la notación CamelCase para nombres compuestos. Por ejemplo, ",[443,787,624],{},[443,789,632],{},[443,791,639],{},[671,793,794,797,798,801,802,685],{},[422,795,796],{},"Atributos como Sinónimos",": Los nombres de los atributos deben ser descriptivos y reflejar claramente su propósito. Evita abreviaciones confusas o nombres genéricos como ",[443,799,800],{},"data"," o ",[443,803,804],{},"value",[671,806,807,810,811,646,814,685],{},[422,808,809],{},"Métodos como Verbos",": Los nombres de los métodos deben ser verbos o frases verbales que describan la acción que realizan. Por ejemplo, ",[443,812,813],{},"calcularEdad()",[443,815,816],{},"imprimirDetalles()",[671,818,819,822],{},[422,820,821],{},"Consistencia",": Mantén una nomenclatura consistente en todo tu código. Esto facilita la lectura y comprensión del código, especialmente cuando trabajas en equipo.",[435,824,826],{"id":825},"resumen","Resumen",[418,828,829,830,832],{},"En resumen, una clase en la Programación Orientada a Objetos es una plantilla que define las características y comportamientos comunes de un conjunto de objetos. En Java, las clases se definen utilizando la palabra clave ",[443,831,469],{}," y pueden contener atributos, métodos, constructores y bloques de código. Las clases son fundamentales para organizar y estructurar el código en la POO, permitiendo la creación de objetos que representan entidades del mundo real de manera más intuitiva.",[834,835,836],"style",{},"html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}html pre.shiki code .svObZ, html code.shiki .svObZ{--shiki-default:#B392F0}html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}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":482,"searchDepth":507,"depth":507,"links":838},[839,840,841,842,843,844],{"id":437,"depth":507,"text":438},{"id":462,"depth":507,"text":463},{"id":662,"depth":507,"text":663},{"id":709,"depth":507,"text":710},{"id":763,"depth":507,"text":764},{"id":825,"depth":507,"text":826},"Entendamos qué son las clases en la Programación Orientada a Objetos y cómo se utilizan en Java.","md",null,{"editButton":42},{"icon":45},{"title":63,"description":845},"nyWsvs-YETU1YZWmjliRF0_c8kBgF55-jiRY1fFhv7A",[853,855],{"title":58,"path":59,"stem":60,"description":854,"icon":61,"children":-1},"Aprende a crear y utilizar diagramas de clases y objetos para modelar sistemas orientados a objetos.",{"title":67,"path":68,"stem":69,"description":856,"icon":45,"children":-1},"Comprendamos el concepto de ámbito y visibilidad en la Programación Orientada a Objetos (POO) y cómo afecta el acceso a los miembros de una clase en Java.",1779479564149]