SlideShare a Scribd company logo
1 of 26
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

More Related Content

What's hot

hashing y colisiones
hashing y colisioneshashing y colisiones
hashing y colisionesemiru48
 
Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico maryr_
 
Caracteristicas de C Sharp
Caracteristicas de C SharpCaracteristicas de C Sharp
Caracteristicas de C SharpEdgardo Martinez
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoJosé Antonio Sandoval Acosta
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento internoFernando Solis
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensambladoreveTalavera
 
Motores de bases de datos
Motores de bases de datosMotores de bases de datos
Motores de bases de datosstill01
 
ARCHIVOS Y DIRECTORIOS EN LINUX
ARCHIVOS Y DIRECTORIOS EN LINUXARCHIVOS Y DIRECTORIOS EN LINUX
ARCHIVOS Y DIRECTORIOS EN LINUXAlex Daquilema
 
Introducción a HTML5 y CSS3
Introducción a HTML5 y CSS3Introducción a HTML5 y CSS3
Introducción a HTML5 y CSS3Paradigma Digital
 
Puestos y responsabilidades del personal de base de datos
Puestos y responsabilidades del personal de base de datosPuestos y responsabilidades del personal de base de datos
Puestos y responsabilidades del personal de base de datosrumus1000
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacionLuis Igoodbad
 
Prolog ejercicios resueltos
Prolog ejercicios resueltosProlog ejercicios resueltos
Prolog ejercicios resueltosJansel M
 
Estructura fisica y logica de active directory
Estructura fisica y logica de active directoryEstructura fisica y logica de active directory
Estructura fisica y logica de active directoryEduardo J Onofre
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 

What's hot (20)

hashing y colisiones
hashing y colisioneshashing y colisiones
hashing y colisiones
 
Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico
 
Css - Tema 1
Css - Tema 1Css - Tema 1
Css - Tema 1
 
Busqueda por profundidad iterativa
Busqueda por profundidad iterativaBusqueda por profundidad iterativa
Busqueda por profundidad iterativa
 
Caracteristicas de C Sharp
Caracteristicas de C SharpCaracteristicas de C Sharp
Caracteristicas de C Sharp
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de Ordenamiento
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensamblador
 
Motores de bases de datos
Motores de bases de datosMotores de bases de datos
Motores de bases de datos
 
ARCHIVOS Y DIRECTORIOS EN LINUX
ARCHIVOS Y DIRECTORIOS EN LINUXARCHIVOS Y DIRECTORIOS EN LINUX
ARCHIVOS Y DIRECTORIOS EN LINUX
 
Introducción a HTML5 y CSS3
Introducción a HTML5 y CSS3Introducción a HTML5 y CSS3
Introducción a HTML5 y CSS3
 
Puestos y responsabilidades del personal de base de datos
Puestos y responsabilidades del personal de base de datosPuestos y responsabilidades del personal de base de datos
Puestos y responsabilidades del personal de base de datos
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Ejercicios subnetting
Ejercicios subnettingEjercicios subnetting
Ejercicios subnetting
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
Prolog ejercicios resueltos
Prolog ejercicios resueltosProlog ejercicios resueltos
Prolog ejercicios resueltos
 
Estructura fisica y logica de active directory
Estructura fisica y logica de active directoryEstructura fisica y logica de active directory
Estructura fisica y logica de active directory
 
Analizador Léxico en C++
Analizador Léxico en C++Analizador Léxico en C++
Analizador Léxico en C++
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
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
 

Viewers also liked

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 - JAVAJose Diaz Silva
 
Métodos POO
Métodos POOMétodos POO
Métodos POO1da4
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoActimel
 
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 - ResumenKarlytoz_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 vectoresJose 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
 
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 Recursividadpbcanessa
 
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 JavaAngel Vázquez Patiño
 
Funciones amigas
Funciones amigasFunciones amigas
Funciones amigasdaosma
 

Viewers also liked (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 to Get y set: métodos para acceder y modificar atributos privados

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 artificialCarlos 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 HeroCarlos Toxtli
 
Exposicion Capitulo 10,11,12
Exposicion Capitulo 10,11,12Exposicion Capitulo 10,11,12
Exposicion Capitulo 10,11,12jack_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.pdf
cuadernillo-de-ejercicios-parte-1.pdfcuadernillo-de-ejercicios-parte-1.pdf
cuadernillo-de-ejercicios-parte-1.pdfhenrrycoylaquispe
 
Cuadernillo de-ejercicios-parte-1
Cuadernillo de-ejercicios-parte-1Cuadernillo de-ejercicios-parte-1
Cuadernillo de-ejercicios-parte-1Tecnisistemas
 
Cuadernillo de-ejercicios-parte-1
Cuadernillo de-ejercicios-parte-1Cuadernillo de-ejercicios-parte-1
Cuadernillo de-ejercicios-parte-1Omar Rodriguez
 
Cuadernillodeejercicios parte1-160324160448
Cuadernillodeejercicios parte1-160324160448Cuadernillodeejercicios parte1-160324160448
Cuadernillodeejercicios parte1-160324160448pfabreg4
 
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 ejemplosIvan 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 ProblemaJosé Ricardo Tillero Giménez
 
OOP-JS pjs
OOP-JS pjsOOP-JS pjs
OOP-JS pjsJona Val
 
OOP.JAVAS pjs
OOP.JAVAS pjsOOP.JAVAS pjs
OOP.JAVAS pjsJona Val
 
Planificación clase 17 05
Planificación clase 17 05Planificación clase 17 05
Planificación clase 17 05Walter Agustín
 

Similar to Get y set: métodos para acceder y modificar atributos privados (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.pdf
cuadernillo-de-ejercicios-parte-1.pdfcuadernillo-de-ejercicios-parte-1.pdf
cuadernillo-de-ejercicios-parte-1.pdf
 
Cuadernillo de-ejercicios-parte-1
Cuadernillo de-ejercicios-parte-1Cuadernillo de-ejercicios-parte-1
Cuadernillo de-ejercicios-parte-1
 
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
 
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
 
Planificación clase 17 05
Planificación clase 17 05Planificación clase 17 05
Planificación clase 17 05
 

Recently uploaded

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 

Recently uploaded (10)

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 

Get y set: métodos para acceder y modificar atributos privados

  • 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