{"id":849,"date":"2016-12-15T18:25:34","date_gmt":"2016-12-16T00:25:34","guid":{"rendered":"http:\/\/naps.com.mx\/blog\/?p=849"},"modified":"2017-11-16T12:13:44","modified_gmt":"2017-11-16T18:13:44","slug":"objetos-y-clases-en-java","status":"publish","type":"post","link":"https:\/\/naps.com.mx\/blog\/objetos-y-clases-en-java\/","title":{"rendered":"Objetos y clases en Java"},"content":{"rendered":"<p>Vamos a crear un programa que utilice objetos y clases en Java. El siguiente programa crear\u00e1 una clase llamada Tortuga, a la que le asignaremos un nombre y una posici\u00f3n x,y. Adem\u00e1s, interactuaremos con ella mediante la creaci\u00f3n de un <a href=\"http:\/\/naps.com.mx\/blog\/paradigma-de-la-programacion-orientada-a-objetos\/\">objeto <\/a>a trav\u00e9s del cual le preguntaremos su ubicaci\u00f3n.<\/p>\n<div id=\"attachment_858\" style=\"width: 1290px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/12\/objetos-y-clases-en-java.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-858\" class=\"size-full wp-image-858\" src=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/12\/objetos-y-clases-en-java.jpg\" alt=\"objetos-y-clases-en-java\" width=\"1280\" height=\"853\" srcset=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/12\/objetos-y-clases-en-java.jpg 1280w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/12\/objetos-y-clases-en-java-300x200.jpg 300w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/12\/objetos-y-clases-en-java-1024x682.jpg 1024w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><\/a><p id=\"caption-attachment-858\" class=\"wp-caption-text\">Aprende mas sobre objetos y clases en Java<\/p><\/div>\n<p><!--more--><\/p>\n<h2>Creaci\u00f3n de un proyecto en NetBeans<\/h2>\n<p>Abrimos NetBeans<\/p>\n<p>Men\u00fa Archivo<\/p>\n<p>Opci\u00f3n: Proyecto Nuevo\u2026<\/p>\n<p><a href=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/12\/Proyecto-nuevo-Java.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-853\" src=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/12\/Proyecto-nuevo-Java.png\" alt=\"proyecto-nuevo-java\" width=\"597\" height=\"424\" srcset=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/12\/Proyecto-nuevo-Java.png 597w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/12\/Proyecto-nuevo-Java-300x213.png 300w\" sizes=\"auto, (max-width: 597px) 100vw, 597px\" \/><\/a><\/p>\n<p>Seleccionamos Java-&gt;Java Application<\/p>\n<p>Asignamos un nombre al proyecto: Puede ser cualquiera, nosotros le vamos a llamar Tuga.<\/p>\n<p>&nbsp;<\/p>\n<h2>Declaraci\u00f3n de clases: atributos, m\u00e9todos y encapsulamiento.<\/h2>\n<p>Creamos una clase dentro de nuestro proyecto.<\/p>\n<p>Archivo-&gt;Archivo Nuevo\u2026<\/p>\n<p><a href=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/12\/Java-Class.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-854\" src=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/12\/Java-Class.png\" alt=\"java-class\" width=\"597\" height=\"424\" srcset=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/12\/Java-Class.png 597w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/12\/Java-Class-300x213.png 300w\" sizes=\"auto, (max-width: 597px) 100vw, 597px\" \/><\/a><\/p>\n<p>Seleccionamos Java y Java Class<\/p>\n<p>Le asignamos un nombre a la clase, en nuestro ejemplo ser\u00e1: Tortuga<\/p>\n<p>Nuestra clase contendr\u00e1 lo siguiente:<\/p>\n<pre class=\"lang:java decode:true\">private String nombre;\r\nprivate int posx, posy;\r\n\r\npublic void establecerNombre(String nombre){\r\nthis.nombre = nombre;\r\n}\r\n\r\npublic void mostrarNombre(){\r\nSystem.out.printf(\"Mi nombre es %s\", nombre);\r\n}\r\n\r\npublic void mostrarPosicion(){\r\nSystem.out.printf(\"Me encuentro en %d, %d\", posx, posy);\r\n}\r\n\r\npublic void avanzar(int n){\r\nposx=posx+n;\r\n}\r\n\r\npublic Tortuga(int x, int y ){\r\nnombre = \"Sin nombre\";\r\nposx=x;\r\nposy=y;\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h3>Atributos<\/h3>\n<p>Una clase tiene atributos y operaciones. Los atributos son los datos con los que trabaja una clase (Deitel, 2004). Se dice que los atributos (datos), representan el estado o condici\u00f3n de un objeto. En nuestro ejemplo, hemos seleccionado como atributos de nuestra tortuga, su nombre y su ubicaci\u00f3n<em> x,y.<\/em><\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:java decode:true\">private String nombre;\r\nprivate int posx, posy;<\/pre>\n<p>&nbsp;<\/p>\n<h3>Encapsulamiento<\/h3>\n<p>Las clases normalmente ocultan ciertos detalles. Esto se conoce como encapsulamiento. Es por eso que hemos declarado los atributos <em>nombre<\/em> y <em>posx<\/em>, <em>posy<\/em>, como privados.<\/p>\n<pre class=\"lang:java decode:true\">private String nombre;\r\nprivate int posx, posy;<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Usar encapsulamiento en nuestras clases es parte de la <strong>ingenier\u00eda de software<\/strong>.<\/p>\n<h3>M\u00e9todos<\/h3>\n<p>En la terminolog\u00eda de Programaci\u00f3n Orientada a Objetos, se utiliza el t\u00e9rmino M\u00e9todos. En otros lenguajes de programaci\u00f3n, \u00e9stos bloques de c\u00f3digo son conocidos como funciones o procedimientos. Los m\u00e9todos nos permiten dividir un programa en m\u00f3dulos.<\/p>\n<p>Nuestra clase cuenta con los siguientes m\u00e9todos: establecerNombre, mostrarNombre, mostrarPosicion, y avanzar.<\/p>\n<pre class=\"lang:java decode:true\">public void establecerNombre(String nombre){\r\nthis.nombre = nombre;\r\n}\r\n\r\npublic void mostrarNombre(){\r\nSystem.out.printf(\"Mi nombre es %s\", nombre);\r\n}\r\n\r\npublic void mostrarPosicion(){\r\nSystem.out.printf(\"Me encuentro en %d, %d\", posx, posy);\r\n}\r\n\r\npublic void avanzar(int n){\r\nposx=posx+n;\r\n}\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>El m\u00e9todo <em>establecerNombre<\/em>, es de tipo <em>void<\/em>, quiere decir que no devuelve ning\u00fan dato cuando el m\u00e9todo es invocado. Se observa que dentro de par\u00e9ntesis se menciona un dato (<em>String nombre<\/em>), \u00e9ste dato se le conoce como par\u00e1metro, e indica que cuando el m\u00e9todo sea invocado, deber\u00e1 asign\u00e1rsele un valor de tipo String o cadena de caracteres.<\/p>\n<p>En \u00e9sta l\u00ednea:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<em> this.nombre = nombre;<\/em><\/p>\n<p><em>this.nombre<\/em> se refiere al atributo nombre de la clase. (<em>private String nombre<\/em>)<\/p>\n<p><em>nombre<\/em> se refiere al par\u00e1metro nombre<\/p>\n<p>La l\u00ednea se lee: el atributo nombre recibe el valor del par\u00e1metro nombre.<\/p>\n<p>El m\u00e9todo <em>avanzar<\/em> tambi\u00e9n recibe un par\u00e1metro (<em>int n<\/em>), que indica el n\u00famero de pasos que la tortuga dar\u00e1. Es por eso que esa cantidad es sumada al valor que ya tiene el atributo <em>posx.<\/em><\/p>\n<p>Los m\u00e9todos <em>mostrarNombre<\/em> y <em>mostrarPosicion<\/em>, imprimen una l\u00ednea de texto con el nombre y posici\u00f3n x,y de la tortuga, respectivamente.<\/p>\n<p>&nbsp;<\/p>\n<h2>Instanciaci\u00f3n de una clase<\/h2>\n<p>Observemos el proyecto que hemos creado. Contiene 2 archivos: uno llamado Tortuga.java (la clase que creamos nosotros), y otro que se llama Tuga.java (fue creado cuando se gener\u00f3 el proyecto).<\/p>\n<p><a href=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/12\/Proyectos-Java.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-855\" src=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/12\/Proyectos-Java.png\" alt=\"proyectos-java\" width=\"108\" height=\"62\" \/><\/a><\/p>\n<p>Note que el archivo Tuga.java tiene en su icono una peque\u00f1a flecha verde. Eso indica que ese es el archivo que contiene el m\u00e9todo main o principal de la aplicaci\u00f3n, el m\u00e9todo que hace que la aplicaci\u00f3n corra o se ejecute. Si abrimos el archivo y vemos nuestro m\u00e9todo main, contiene lo siguiente:<\/p>\n<p>public static void main(String[] args) {<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>No contiene c\u00f3digo, por lo que si ejecut\u00e1ramos el programa no har\u00eda nada. Vamos a crear un objeto a partir de la clase Tortuga que ya tenemos.<\/p>\n<pre class=\"lang:java decode:true\">public static void main(String[] args) {\r\nTortuga mitortuga = new Tortuga();\r\nmitortuga.establecerNombre(\"Tota\");\r\nmitortuga.mostrarNombre();\r\nmitortuga.mostrarPosicion();\r\nmitortuga.avanzar(5);\r\nmitortuga.mostrarPosicion();}\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>La l\u00ednea<\/p>\n<p><em>Tortuga mitortuga = new Tortuga();<\/em><\/p>\n<p>Crea un objeto llamado <em>mitortuga<\/em> a partir de la clase <em>Tortuga<\/em>. A esto se le llama Instanciaci\u00f3n de una clase (<em>mitortuga<\/em> es una instancia de <em>Tortuga<\/em>).<\/p>\n<p>Una vez hecho esto podemos utilizar el objeto utilizando todos los miembros p\u00fablicos que la clase posea. (<a href=\"http:\/\/naps.com.mx\/blog\/paradigma-de-la-programacion-orientada-a-objetos\/#objetos\">\u00bfQu\u00e9 es un objeto? Apr\u00e9ndelo aqu\u00ed<\/a>).<\/p>\n<h2>Referencia al objeto actual<\/h2>\n<p>Ya podemos darle un nombre a mitortuga<\/p>\n<p><em>mitortuga.establecerNombre(\u00abTota\u00bb);<\/em><\/p>\n<p>Pedirle que nos muestre su nombre<\/p>\n<p><em>mitortuga.mostrarNombre();<\/em><\/p>\n<p>Solicitarle que muestre su posici\u00f3n<\/p>\n<p><em>mitortuga.mostrarPosicion();<\/em><\/p>\n<p>Y pedirle que avance 5 posiciones<\/p>\n<p><em>mitortuga.avanzar(5);<\/em><\/p>\n<p><em>mitortuga.mostrarPosicion();<\/em><\/p>\n<p>&nbsp;<\/p>\n<p>La salida de este sencillo programa ser\u00e1 la siguiente<\/p>\n<p><a href=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/12\/Clases-y-objetos-en-Java.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-856\" src=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/12\/Clases-y-objetos-en-Java.png\" alt=\"clases-y-objetos-en-java\" width=\"223\" height=\"108\" \/><\/a><\/p>\n<h3>Referencias<\/h3>\n<ol>\n<li><strong>Deitel(<\/strong>2004). <a href=\"https:\/\/books.google.com.mx\/books?id=is2J44U4DpsC&amp;printsec=frontcover&amp;hl=es&amp;source=gbs_ge_summary_r&amp;cad=0#v=onepage&amp;q&amp;f=false\" target=\"_blank\">C\u00f3mo programar en Java<\/a>. Pearson Educaci\u00f3n. M\u00e9xico.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Vamos a crear un programa que utilice objetos y clases en Java. El siguiente programa crear\u00e1 una clase llamada Tortuga, a la que le asignaremos un nombre y una posici\u00f3n x,y. Adem\u00e1s, interactuaremos con ella mediante la creaci\u00f3n de un objeto a trav\u00e9s del cual le preguntaremos su ubicaci\u00f3n.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"amp_status":"","footnotes":""},"categories":[167],"tags":[178,179,97],"class_list":["post-849","post","type-post","status-publish","format-standard","hentry","category-programacion-orientada-a-objetos","tag-aprender-a-programar","tag-clases-y-objetos","tag-ejercicios-java"],"_links":{"self":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/849","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/comments?post=849"}],"version-history":[{"count":9,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/849\/revisions"}],"predecessor-version":[{"id":864,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/849\/revisions\/864"}],"wp:attachment":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/media?parent=849"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/categories?post=849"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/tags?post=849"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}