SlideShare una empresa de Scribd logo
Que mier.. es un get y
set!!!
Hecha por un tipo harto de escuchar conversaciones que envuelven estudiante de progra1
confundidos por sus maestros.
Para entender que es un get y set, hay que entender primero
que es un metodo. Una vez entendido eso, la pregunta inicial
parecerá estúpida y en el mejor de los casos estarás
avergonzado de haberte hecho la pregunta en cuestion.

Se espera que luego de ver esta presentacion puedas hacer
esto con tu compañeros:
Metodos
Un metodo es algo que hacen los objetos y ya.

Pueden recibir “parámetros” o no, dependiendo de lo que
se necesita hacer.
Pero que pu.. es un parámetro?
Un parametro es informacion adicional que se necesita para que
un objeto realice un tarea. Por ejemplo:
Supongamos que soy una calculadora (de las caras :D ) y me
pedís: “Sumale algo a 4 y me decís cuanto es”. Yo no soy un
maldito adivino y no puedo saber cuánto debo sumarle, eso que
necesito para realizar mi tarea se llama PARAMETRO.
La instrucción correcta debe ser: “Sumale 20 a 4 y me decis
cuanto es”.
Yo he definido mi metodo sumar como: la suma de 4 más lo que
sea que me den de parámetro. Algo así:
Public Int sumar(int cuanto){
         return cuanto + 4;
}
Metodos que devuelven algo y
metodos que NO


• Algunas veces se necesita saber que rayos hizo el metodo
  para poder usarlo en algun calculo.

 Si un metodo no devolverá NADA su tipo de retorno será
 VOID, void es algo así como NI MIER..
Ejemplo


• Considerese el siguiente metodo:

  public void raiz(int x){
• double algo = Math.sqrt(x);
• }
El anterior metodo NO puede usarse en algun calculo como:
8 + raiz(10), porque su tipo de retorno es VOID. Cualquier
intento de retornar algo en un metodo void, resulta en un
compilador frustrado que se negará a generar bytecode.
Como lo siguiente:

bla bla void metodo(){
  return algo;
}
Y para que rayos usamos los
metodos void?
• Para que un objeto haga algo y ya, no importandonos
  que fue lo que hizo. Considerese la siguiente
  conversacion entre dos objetos:

• A: mae movete cinco pasos porfa.
  B: ok.
  A: y?
  B: Y que? Mover es void.
  A: no me dijiste si lo hiciste o no.
• B: no fue lo que me pediste.
Explicacion cientifica


El objeto B tiene definido su metodo mover asi:
public void mover(int pasos){
  miPosicion += 5;
}
El objeto A sos vos un programador chiflado que escribio
todo el codigo de B y que no se acuerda de como lo hizo.
Que hago para que B me diga si
hizo lo que le pedí o no?


Debe definirse el metodo mover() así:
public boolean mover(int pasos){
  miPosicion += pasos;
  Return true;
}
Con el anterior metodo la conversacion siguiente finaliza con
todos felices:

A: mae movete cinco pasos porfa.
B: ok. Si lo hice.
A: ok! ^_^
Y como me devolvería false? Te estarás preguntanto. Pues como
está el metodo escrito, jamás devolverá false.
METODOS GET
• A un metodo se le puede dar el nombre que a uno se le antoje
  al momento de crearlo. Algunas veces tenemos atributos
  PRIVADOS en una clase y queremos que se puedan usar
  afuera de ella cuando se ocupen. No podemos invocarlo por
  el poder de greiscol así:
  objeto.atributo. Porque el atributo es PRIVADO!
  Para solucionar eso, creamos un metodo que devuelva el
  atributo.
• Programadores sensatos usualmente nombran a estos
  metodos así:
  verboIndicandoObtencion + nombreAtributo

 Dado un atributo X en una clase cualquiera, un metodo para
 devolver ese valor podría llamarse:
 obtenerEquis();

 Pero pudo haberse llamado de cualquier forma. Algunos
 programadores spanglishistas nombran esos metodos así:
 verbIndicatingGet + nombreAtributo

• Nuestro metodo anterior se habría llamado:
  getEquis()
• Si un programador spanglish lo hubiera hecho
Puedo tener un get que se
void?


• Claro que puedes, deberas depues atenerte a las
  consecuencias de tener un metodo void, no poder usarlo
  en calculos y NO poder asignarselo a una variable.
Si tengo un atributo privado que es un arreglo de String, como
uso sus elementos afuera de la clase?

  • Paso 1. Planear el metodo.
Segun el problema se necesita devolver los elementos
individuales del arreglo NO el arreglo. Entonces algo como:
Public String[] getArreglo(){
  return this.arreglo;
}
Seria tan util como un control inalambrico sin baterias.
Rapidamente podemos darnos cuenta de que para
sacar un elmento del arreglo necesitamos
informacion adicional. Un parámetro. Ese parámetro
es el índice.

Paso 2. Escribir el metodo.
Public String getElementoEnPosicion(int indice){
  return this.arreglo[indice];
}

El nombre aqui es muy largo pero ilustra lo que se
quiere hacer. En la vida real el perro de la derecha se
burlaría despiadadamente de vos si le pones ese
nombre.
METODOS SET
• Siguiendo con la situacion de tener un atributo privado X, si se
  necesita cambiar ese valor desde afuera no podemos hacer
  algo así:
• objeto.atributoX = algo;
• Porque el atributo es PRIVADO.
• Para solucionar eso creamos un metodo que me permita
  cambiar ese valor desde adentro del objeto.
• Programadores sensatos, usualmente nombran a estos metodos
  así:
  verboIndicandoModificacion + nombreAtributo
• Asi que nuestro metodo para cambiar el valor de X se llamaría
  así:
  establecerEquis()
• Y si es spanglish:
  setEquis()
• Y si es ingles puro:
  setX();
• Puedo tener un metodo Set que devuelva algo?
• Por supuesto que sí. Puedes definir tus metodos como se te
  venga a la mente en el momento.
  Sin embargo, usualmente los metodos que cambian el valor
  de un atributo, sólo lo hacen y ya.
  Al hacer que devuelva algo, te arriesgas a que programadores
  inexpertos, hagan lo que el perro de la esquina.
• Los metodos set generalmente necesitan de un parámetro
  para realizar su tarea. Considerese la siguiente conversacion:
  A: oye B, cambia el valor de tu atributo X.
  B: ok! ..un momento, pero, a qué valor? Que hago Dios mio!
  Ahhhhh!!!
• En la situacion anterior se observa que el programador quiere
  cambiar el valor de X de B, pero no le dice el nuevo valor.
• Paso 1. Pensar el metodo
Se necesita un parametro, ese parametro será el nuevo valor
para X.
  • Paso2. Escribir el metodo
Public void setX(Tipo valor){
  this.X = valor;
}
• En que caso puedo tener un establecer si parametros?
• En caso de que el nuevo valor este cambiando en otro lado.
  Por ejemplo:
  Public void setX(){
    this.X = Y + 8;
  }
  Si resulta que ‘Y’ siempre es igual el perro de la esquina se
  sentirá muy feliz.
• Si yo se que esperabas al mismo perro otra vez :D

Más contenido relacionado

La actualidad más candente

Algoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoAlgoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamiento
Lutzo Guzmán
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
compumet sac
 
Polimorfismo en Java
Polimorfismo en JavaPolimorfismo en Java
Polimorfismo en Java
Estefani Lucero
 
5. algoritmos de búsqueda
5. algoritmos de búsqueda5. algoritmos de búsqueda
5. algoritmos de búsqueda
Fernando Solis
 
Algoritmos de Ordenamiento Externo.
Algoritmos de Ordenamiento Externo.Algoritmos de Ordenamiento Externo.
Algoritmos de Ordenamiento Externo.
Universidad de Cuenca
 
Cuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCristopher Morales Ruiz
 
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Rubi Veronica Chimal Cuxin
 
Estructuras no-lineales
Estructuras no-linealesEstructuras no-lineales
Estructuras no-lineales
karlalopezbello
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
José Antonio Sandoval Acosta
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
Angel Vázquez Patiño
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
NANO-06
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
José Antonio Sandoval Acosta
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
Jorge Luis Chalén
 
Exposicion Busqueda
Exposicion BusquedaExposicion Busqueda
Exposicion BusquedaAngie Suarez
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
TAtiizz Villalobos
 
Heap sort
Heap sortHeap sort
Heap sort
Edwin Lobo
 
Arreglos vectores pseint
Arreglos vectores pseintArreglos vectores pseint
Arreglos vectores pseint
HEIVER CUESTA
 
10. aplicaciones de las pilas
10. aplicaciones de las pilas10. aplicaciones de las pilas
10. aplicaciones de las pilasAndreita Enriquez
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
erwin_alexander
 

La actualidad más candente (20)

Algoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamientoAlgoritmos de busqueda - hash truncamiento
Algoritmos de busqueda - hash truncamiento
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
 
Polimorfismo en Java
Polimorfismo en JavaPolimorfismo en Java
Polimorfismo en Java
 
5. algoritmos de búsqueda
5. algoritmos de búsqueda5. algoritmos de búsqueda
5. algoritmos de búsqueda
 
Algoritmos de Ordenamiento Externo.
Algoritmos de Ordenamiento Externo.Algoritmos de Ordenamiento Externo.
Algoritmos de Ordenamiento Externo.
 
Cuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busqueda
 
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
 
Estructuras no-lineales
Estructuras no-linealesEstructuras no-lineales
Estructuras no-lineales
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
 
Exposicion Busqueda
Exposicion BusquedaExposicion Busqueda
Exposicion Busqueda
 
Atributos de clases
Atributos de clasesAtributos de clases
Atributos de clases
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
 
Heap sort
Heap sortHeap sort
Heap sort
 
Arreglos vectores pseint
Arreglos vectores pseintArreglos vectores pseint
Arreglos vectores pseint
 
10. aplicaciones de las pilas
10. aplicaciones de las pilas10. aplicaciones de las pilas
10. aplicaciones de las pilas
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 

Destacado

Captura de datos y mensajes Interfaz - JAVA
Captura de datos y mensajes Interfaz - JAVACaptura de datos y mensajes Interfaz - JAVA
Captura de datos y mensajes Interfaz - JAVA
Jose Diaz Silva
 
Métodos POO
Métodos POOMétodos POO
Métodos POO
1da4
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y Polimorfismo
Actimel
 
Constructores en java(grupo 8)
Constructores en java(grupo 8)Constructores en java(grupo 8)
Constructores en java(grupo 8)Manuel Ch.
 
11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()
Clara Patricia Avella Ibañez
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - Resumen
Karlytoz_36
 
Complejidad de problemas
Complejidad de problemasComplejidad de problemas
Complejidad de problemasrodrigoalseco
 
Programación III (Java) - 01 Introduccion
Programación III (Java) - 01 IntroduccionProgramación III (Java) - 01 Introduccion
Programación III (Java) - 01 IntroduccionAndoni Eguíluz Morán
 
El arte de programar c++ - versión 3.0
El arte de programar   c++ - versión 3.0El arte de programar   c++ - versión 3.0
El arte de programar c++ - versión 3.0javiel162009
 
Objetos con atributos de vectores
Objetos con atributos de vectoresObjetos con atributos de vectores
Objetos con atributos de vectores
Jose Diaz Silva
 
POO Unidad 2: Clases y objetos Ejercicio 1
POO Unidad 2: Clases y objetos Ejercicio 1POO Unidad 2: Clases y objetos Ejercicio 1
POO Unidad 2: Clases y objetos Ejercicio 1Fabiola Valerio Ramirez
 
Proyecto biblioteca
Proyecto bibliotecaProyecto biblioteca
Proyecto bibliotecaTerryJoss
 
Herencia
HerenciaHerencia
Principios SOLID de Diseño Orientado a Objetos
Principios SOLID de Diseño Orientado a ObjetosPrincipios SOLID de Diseño Orientado a Objetos
Principios SOLID de Diseño Orientado a ObjetosJose E. Rodriguez Huerta
 
Java Sobrecarga y Recursividad
Java Sobrecarga y RecursividadJava Sobrecarga y Recursividad
Java Sobrecarga y Recursividad
pbcanessa
 
Programación 3: Vector, stack, enumearator, iterator, listiterator en Java
Programación 3: Vector, stack, enumearator, iterator, listiterator en JavaProgramación 3: Vector, stack, enumearator, iterator, listiterator en Java
Programación 3: Vector, stack, enumearator, iterator, listiterator en Java
Angel Vázquez Patiño
 
Estructuras y clases
Estructuras y clasesEstructuras y clases
Estructuras y clases
Fernando Di Bartolo
 
Funciones amigas
Funciones amigasFunciones amigas
Funciones amigasdaosma
 

Destacado (20)

Captura de datos y mensajes Interfaz - JAVA
Captura de datos y mensajes Interfaz - JAVACaptura de datos y mensajes Interfaz - JAVA
Captura de datos y mensajes Interfaz - JAVA
 
Métodos POO
Métodos POOMétodos POO
Métodos POO
 
Curso java
Curso javaCurso java
Curso java
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y Polimorfismo
 
Constructores en java(grupo 8)
Constructores en java(grupo 8)Constructores en java(grupo 8)
Constructores en java(grupo 8)
 
11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - Resumen
 
Complejidad de problemas
Complejidad de problemasComplejidad de problemas
Complejidad de problemas
 
Programación III (Java) - 01 Introduccion
Programación III (Java) - 01 IntroduccionProgramación III (Java) - 01 Introduccion
Programación III (Java) - 01 Introduccion
 
El arte de programar c++ - versión 3.0
El arte de programar   c++ - versión 3.0El arte de programar   c++ - versión 3.0
El arte de programar c++ - versión 3.0
 
Objetos con atributos de vectores
Objetos con atributos de vectoresObjetos con atributos de vectores
Objetos con atributos de vectores
 
POO Unidad 2: Clases y objetos Ejercicio 1
POO Unidad 2: Clases y objetos Ejercicio 1POO Unidad 2: Clases y objetos Ejercicio 1
POO Unidad 2: Clases y objetos Ejercicio 1
 
Proyecto biblioteca
Proyecto bibliotecaProyecto biblioteca
Proyecto biblioteca
 
Herencia
HerenciaHerencia
Herencia
 
Principios SOLID de Diseño Orientado a Objetos
Principios SOLID de Diseño Orientado a ObjetosPrincipios SOLID de Diseño Orientado a Objetos
Principios SOLID de Diseño Orientado a Objetos
 
Java Sobrecarga y Recursividad
Java Sobrecarga y RecursividadJava Sobrecarga y Recursividad
Java Sobrecarga y Recursividad
 
Programación 3: Vector, stack, enumearator, iterator, listiterator en Java
Programación 3: Vector, stack, enumearator, iterator, listiterator en JavaProgramación 3: Vector, stack, enumearator, iterator, listiterator en Java
Programación 3: Vector, stack, enumearator, iterator, listiterator en Java
 
Estructuras y clases
Estructuras y clasesEstructuras y clases
Estructuras y clases
 
Funciones amigas
Funciones amigasFunciones amigas
Funciones amigas
 
8.clases y objetos en c++
8.clases y objetos en c++8.clases y objetos en c++
8.clases y objetos en c++
 

Similar a Metodos Get y Set, finalmente revelados.

PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)
PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)
PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)
yanburbano
 
Cómo vivir de la inteligencia artificial
Cómo vivir de la inteligencia artificialCómo vivir de la inteligencia artificial
Cómo vivir de la inteligencia artificial
Carlos Toxtli
 
Proyecto de aula final alemania 25946
Proyecto de aula final alemania 25946Proyecto de aula final alemania 25946
Proyecto de aula final alemania 25946David Cadena
 
Inteligencia Artificial From Zero to Hero
Inteligencia Artificial From Zero to HeroInteligencia Artificial From Zero to Hero
Inteligencia Artificial From Zero to Hero
Carlos Toxtli
 
Exposicion Capitulo 10,11,12
Exposicion Capitulo 10,11,12Exposicion Capitulo 10,11,12
Exposicion Capitulo 10,11,12
jack_corvil
 
Proyecto de aula alemania 25946
Proyecto de aula alemania 25946Proyecto de aula alemania 25946
Proyecto de aula alemania 25946David Cadena
 
Portafolio de informtica
Portafolio de informticaPortafolio de informtica
Portafolio de informticaernestboom
 
Cuadernillo de-ejercicios-parte-1
Cuadernillo de-ejercicios-parte-1Cuadernillo de-ejercicios-parte-1
Cuadernillo de-ejercicios-parte-1
Tecnisistemas
 
cuadernillo-de-ejercicios-parte-1.pdf
cuadernillo-de-ejercicios-parte-1.pdfcuadernillo-de-ejercicios-parte-1.pdf
cuadernillo-de-ejercicios-parte-1.pdf
henrrycoylaquispe
 
Tutorial de Scratch
Tutorial de ScratchTutorial de Scratch
Tutorial de Scratch
Miguel Alfonso Mejía Cuadrado
 
Cuadernillo de-ejercicios-parte-1
Cuadernillo de-ejercicios-parte-1Cuadernillo de-ejercicios-parte-1
Cuadernillo de-ejercicios-parte-1
Omar Rodriguez
 
Cuadernillodeejercicios parte1-160324160448
Cuadernillodeejercicios parte1-160324160448Cuadernillodeejercicios parte1-160324160448
Cuadernillodeejercicios parte1-160324160448
pfabreg4
 
Todo lo que un desarrollador no puede desconocer de javascript tutorial j q...
Todo lo que un desarrollador no puede desconocer de javascript   tutorial j q...Todo lo que un desarrollador no puede desconocer de javascript   tutorial j q...
Todo lo que un desarrollador no puede desconocer de javascript tutorial j q...Marcelino Ortiz
 
Métodos en Java-Con ejemplos
Métodos en Java-Con ejemplosMétodos en Java-Con ejemplos
Métodos en Java-Con ejemplos
Ivan Luis Jimenez
 
Metodología para el Análisis y Planteamiento del Problema
Metodología para el Análisis y Planteamiento del ProblemaMetodología para el Análisis y Planteamiento del Problema
Metodología para el Análisis y Planteamiento del Problema
José Ricardo Tillero Giménez
 
adalsus Prep-Course - soyHenry mis apuntes JS.pdf
adalsus Prep-Course - soyHenry mis apuntes JS.pdfadalsus Prep-Course - soyHenry mis apuntes JS.pdf
adalsus Prep-Course - soyHenry mis apuntes JS.pdf
adal57
 
OOP-JS pjs
OOP-JS pjsOOP-JS pjs
OOP-JS pjsJona Val
 
OOP.JAVAS pjs
OOP.JAVAS pjsOOP.JAVAS pjs
OOP.JAVAS pjsJona Val
 
Guia poo php
Guia poo phpGuia poo php
Guia poo php
lissette_torrealba
 

Similar a Metodos Get y Set, finalmente revelados. (20)

PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)
PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)
PROGRAMACIÓN ORIENTADA A OBJETOS I (PHP)
 
Cómo vivir de la inteligencia artificial
Cómo vivir de la inteligencia artificialCómo vivir de la inteligencia artificial
Cómo vivir de la inteligencia artificial
 
Proyecto de aula final alemania 25946
Proyecto de aula final alemania 25946Proyecto de aula final alemania 25946
Proyecto de aula final alemania 25946
 
Inteligencia Artificial From Zero to Hero
Inteligencia Artificial From Zero to HeroInteligencia Artificial From Zero to Hero
Inteligencia Artificial From Zero to Hero
 
Exposicion Capitulo 10,11,12
Exposicion Capitulo 10,11,12Exposicion Capitulo 10,11,12
Exposicion Capitulo 10,11,12
 
Proyecto de aula alemania 25946
Proyecto de aula alemania 25946Proyecto de aula alemania 25946
Proyecto de aula alemania 25946
 
Portafolio de informtica
Portafolio de informticaPortafolio de informtica
Portafolio de informtica
 
Cuadernillo de-ejercicios-parte-1
Cuadernillo de-ejercicios-parte-1Cuadernillo de-ejercicios-parte-1
Cuadernillo de-ejercicios-parte-1
 
cuadernillo-de-ejercicios-parte-1.pdf
cuadernillo-de-ejercicios-parte-1.pdfcuadernillo-de-ejercicios-parte-1.pdf
cuadernillo-de-ejercicios-parte-1.pdf
 
Tutorial de Scratch
Tutorial de ScratchTutorial de Scratch
Tutorial de Scratch
 
Cuadernillo de-ejercicios-parte-1
Cuadernillo de-ejercicios-parte-1Cuadernillo de-ejercicios-parte-1
Cuadernillo de-ejercicios-parte-1
 
Cuadernillodeejercicios parte1-160324160448
Cuadernillodeejercicios parte1-160324160448Cuadernillodeejercicios parte1-160324160448
Cuadernillodeejercicios parte1-160324160448
 
Todo lo que un desarrollador no puede desconocer de javascript tutorial j q...
Todo lo que un desarrollador no puede desconocer de javascript   tutorial j q...Todo lo que un desarrollador no puede desconocer de javascript   tutorial j q...
Todo lo que un desarrollador no puede desconocer de javascript tutorial j q...
 
Métodos en Java-Con ejemplos
Métodos en Java-Con ejemplosMétodos en Java-Con ejemplos
Métodos en Java-Con ejemplos
 
Metodología para el Análisis y Planteamiento del Problema
Metodología para el Análisis y Planteamiento del ProblemaMetodología para el Análisis y Planteamiento del Problema
Metodología para el Análisis y Planteamiento del Problema
 
adalsus Prep-Course - soyHenry mis apuntes JS.pdf
adalsus Prep-Course - soyHenry mis apuntes JS.pdfadalsus Prep-Course - soyHenry mis apuntes JS.pdf
adalsus Prep-Course - soyHenry mis apuntes JS.pdf
 
Cuadernillo scratch 3
Cuadernillo scratch 3Cuadernillo scratch 3
Cuadernillo scratch 3
 
OOP-JS pjs
OOP-JS pjsOOP-JS pjs
OOP-JS pjs
 
OOP.JAVAS pjs
OOP.JAVAS pjsOOP.JAVAS pjs
OOP.JAVAS pjs
 
Guia poo php
Guia poo phpGuia poo php
Guia poo php
 

Último

3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
JuanPrez962115
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
jjfch3110
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
44652726
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 

Último (20)

3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 

Metodos Get y Set, finalmente revelados.

  • 1. Que mier.. es un get y set!!! Hecha por un tipo harto de escuchar conversaciones que envuelven estudiante de progra1 confundidos por sus maestros.
  • 2. Para entender que es un get y set, hay que entender primero que es un metodo. Una vez entendido eso, la pregunta inicial parecerá estúpida y en el mejor de los casos estarás avergonzado de haberte hecho la pregunta en cuestion. Se espera que luego de ver esta presentacion puedas hacer esto con tu compañeros:
  • 3. Metodos Un metodo es algo que hacen los objetos y ya. Pueden recibir “parámetros” o no, dependiendo de lo que se necesita hacer.
  • 4. Pero que pu.. es un parámetro? Un parametro es informacion adicional que se necesita para que un objeto realice un tarea. Por ejemplo: Supongamos que soy una calculadora (de las caras :D ) y me pedís: “Sumale algo a 4 y me decís cuanto es”. Yo no soy un maldito adivino y no puedo saber cuánto debo sumarle, eso que necesito para realizar mi tarea se llama PARAMETRO. La instrucción correcta debe ser: “Sumale 20 a 4 y me decis cuanto es”. Yo he definido mi metodo sumar como: la suma de 4 más lo que sea que me den de parámetro. Algo así: Public Int sumar(int cuanto){ return cuanto + 4; }
  • 5. Metodos que devuelven algo y metodos que NO • Algunas veces se necesita saber que rayos hizo el metodo para poder usarlo en algun calculo. Si un metodo no devolverá NADA su tipo de retorno será VOID, void es algo así como NI MIER..
  • 6. Ejemplo • Considerese el siguiente metodo: public void raiz(int x){ • double algo = Math.sqrt(x); • }
  • 7. El anterior metodo NO puede usarse en algun calculo como: 8 + raiz(10), porque su tipo de retorno es VOID. Cualquier intento de retornar algo en un metodo void, resulta en un compilador frustrado que se negará a generar bytecode. Como lo siguiente: bla bla void metodo(){ return algo; }
  • 8. Y para que rayos usamos los metodos void? • Para que un objeto haga algo y ya, no importandonos que fue lo que hizo. Considerese la siguiente conversacion entre dos objetos: • A: mae movete cinco pasos porfa. B: ok. A: y? B: Y que? Mover es void. A: no me dijiste si lo hiciste o no. • B: no fue lo que me pediste.
  • 9. Explicacion cientifica El objeto B tiene definido su metodo mover asi: public void mover(int pasos){ miPosicion += 5; } El objeto A sos vos un programador chiflado que escribio todo el codigo de B y que no se acuerda de como lo hizo.
  • 10. Que hago para que B me diga si hizo lo que le pedí o no? Debe definirse el metodo mover() así: public boolean mover(int pasos){ miPosicion += pasos; Return true; }
  • 11. Con el anterior metodo la conversacion siguiente finaliza con todos felices: A: mae movete cinco pasos porfa. B: ok. Si lo hice. A: ok! ^_^
  • 12. Y como me devolvería false? Te estarás preguntanto. Pues como está el metodo escrito, jamás devolverá false.
  • 14. • A un metodo se le puede dar el nombre que a uno se le antoje al momento de crearlo. Algunas veces tenemos atributos PRIVADOS en una clase y queremos que se puedan usar afuera de ella cuando se ocupen. No podemos invocarlo por el poder de greiscol así: objeto.atributo. Porque el atributo es PRIVADO! Para solucionar eso, creamos un metodo que devuelva el atributo.
  • 15. • Programadores sensatos usualmente nombran a estos metodos así: verboIndicandoObtencion + nombreAtributo Dado un atributo X en una clase cualquiera, un metodo para devolver ese valor podría llamarse: obtenerEquis(); Pero pudo haberse llamado de cualquier forma. Algunos programadores spanglishistas nombran esos metodos así: verbIndicatingGet + nombreAtributo • Nuestro metodo anterior se habría llamado: getEquis() • Si un programador spanglish lo hubiera hecho
  • 16. Puedo tener un get que se void? • Claro que puedes, deberas depues atenerte a las consecuencias de tener un metodo void, no poder usarlo en calculos y NO poder asignarselo a una variable.
  • 17. Si tengo un atributo privado que es un arreglo de String, como uso sus elementos afuera de la clase? • Paso 1. Planear el metodo. Segun el problema se necesita devolver los elementos individuales del arreglo NO el arreglo. Entonces algo como: Public String[] getArreglo(){ return this.arreglo; } Seria tan util como un control inalambrico sin baterias.
  • 18. Rapidamente podemos darnos cuenta de que para sacar un elmento del arreglo necesitamos informacion adicional. Un parámetro. Ese parámetro es el índice. Paso 2. Escribir el metodo. Public String getElementoEnPosicion(int indice){ return this.arreglo[indice]; } El nombre aqui es muy largo pero ilustra lo que se quiere hacer. En la vida real el perro de la derecha se burlaría despiadadamente de vos si le pones ese nombre.
  • 20. • Siguiendo con la situacion de tener un atributo privado X, si se necesita cambiar ese valor desde afuera no podemos hacer algo así: • objeto.atributoX = algo; • Porque el atributo es PRIVADO. • Para solucionar eso creamos un metodo que me permita cambiar ese valor desde adentro del objeto.
  • 21. • Programadores sensatos, usualmente nombran a estos metodos así: verboIndicandoModificacion + nombreAtributo • Asi que nuestro metodo para cambiar el valor de X se llamaría así: establecerEquis() • Y si es spanglish: setEquis() • Y si es ingles puro: setX();
  • 22. • Puedo tener un metodo Set que devuelva algo? • Por supuesto que sí. Puedes definir tus metodos como se te venga a la mente en el momento. Sin embargo, usualmente los metodos que cambian el valor de un atributo, sólo lo hacen y ya. Al hacer que devuelva algo, te arriesgas a que programadores inexpertos, hagan lo que el perro de la esquina.
  • 23. • Los metodos set generalmente necesitan de un parámetro para realizar su tarea. Considerese la siguiente conversacion: A: oye B, cambia el valor de tu atributo X. B: ok! ..un momento, pero, a qué valor? Que hago Dios mio! Ahhhhh!!! • En la situacion anterior se observa que el programador quiere cambiar el valor de X de B, pero no le dice el nuevo valor.
  • 24. • Paso 1. Pensar el metodo Se necesita un parametro, ese parametro será el nuevo valor para X. • Paso2. Escribir el metodo Public void setX(Tipo valor){ this.X = valor; }
  • 25. • En que caso puedo tener un establecer si parametros? • En caso de que el nuevo valor este cambiando en otro lado. Por ejemplo: Public void setX(){ this.X = Y + 8; } Si resulta que ‘Y’ siempre es igual el perro de la esquina se sentirá muy feliz.
  • 26. • Si yo se que esperabas al mismo perro otra vez :D