1 de 18 Taller de creación de métodos en java

Transcripción

1 de 18 Taller de creación de métodos en java
1 de 18
Taller de creación de métodos en java
Docente: Ing. Orlando Barcia Ayala MSc.
Objetivos.
•
•
•
•
Conocer y aplicar la codificación para creación de métodos.
Utilizar métodos creados por el programador
Realizar programas orientados a objetos básicos
Detectar la capacidad de lectura y realización de actividades en base a manuales
Las actividades se realizarán en el proyecto y clases indicadas
•
•
•
•
Parte 1. Conceptos previos
Parte 2. Codificación
Parte 3. Taller
Parte 4. Ponencia y debate
Proceso y evaluación de la actividad.
El documento está formado por preguntas a contestar, sea en código o una respuesta literal.
Proceso y evaluación de la actividad.
El documento está formado por preguntas a contestar, sea en código o una respuesta literal.
Evaluación de la actividad
Cada vez que se conteste una pregunta, el estudiante comunicará al docente:
• realiza la lectura de la pregunta
• contesta la pregunta
Esto será la evaluación al estudiante, que debería tener más de 2 respuestas realizadas.
Importante:
•
•
•
Leer BIEN el documento.
Toda inquietud o duda solicitar ayuda al docente.
El documento es autosuficiente. Es decir con la codificación indicada puede resolver las
interrogantes planteadas.
Las respuestas que no tienen código, las debe realizar como comentarios. .SOLO 1 (UNA)
línea por respuesta. Debe sintetizar la respuesta
2 de 18
•
•
Utilizar la diapositiva relativa a la métodos u otras fuentes tales como libros o internet.
Técnica: búsqueda de información bibliográfica en documentos
Nombre del proyecto: Taller de creación de métodos Apellido 1 y Apellido 2
•
•
•
•
Cambiar por los respectivos apellidos de los integrantes del grupo.
Clase: Cuadrado.
Crear la estructura mínima de todo programa en java ( public static void main)
Realizar el código TODO en la misma clase
Parte 1. Conceptos previos
Las Operaciones, se las conoce como:
•
•
métodos. o
acciones
Los Métodos se identifican porque:
•
•
•
Tienen paréntesis,
Antes del nombre tienen un punto.
La primera letra de la primera frase es en minúscula, desde la segunda frase en adelante
es en mayúscula la primera letra.
Pregunta del mundo real. ¿Existirá diferencia entre usar un regulador de voltaje y crear el
regulador de voltaje?
Hasta el momento se han utilizado métodos. No se los ha creado
Por lo tanto la actividad ahora es CREAR los métodos.
El punto de vista ha cambiado.
3 de 18
¿Qué operación realizan los métodos siguientes?
sentencia
System.out.print (
);
System.out.println (
);
Math.pow( x, y );
Math.sin ( x );
Math.floor( x) ;
Math.random( );
.nextInt ( );
.nextDouble ( );
main (
Operación que realiza
)
Uso de los métodos – mediante Clases
Identifique: En el código ¿Cuáles son las clases, cuáles los métodos?
Código
System.out.print (
System.out.println (
Math.pow( x, y );
Math.sin ( x );
Math.floor( x) ;
Math.random( );
Clase
Método
);
);
Uso de los métodos – mediante objetos.
Nota: Cuando hay la sentencia new se considera que la variable que se crea es un objeto.
En la Programación orientada a objetos P.O.O.
•
•
Una clase es la plantilla o molde para crear objetos.
Un objeto es una instancia de una clase.
Por lo tanto se crea una clase y posteriormente uno o muchos objetos de esa clase.
Identifique: En el código ¿Cuáles son las clases, cuáles los métodos, cuáles los objetos?
Código
Clase
Método
Objeto
Scanner entrada;
entrada= new Scanner(System.in);
entrada.nextInt ( );
entrada.nextDouble ( );
¿Quién creó los métodos println( ) , print( ) , nextInt( ) ? ¿Usted los creó o Usted los utiliza?
4 de 18
¿Identificar si se está creando o utilizando los métodos?
sentencia
System.out.print (
);
System.out.println (
);
Math.pow( x, y );
Math.sin ( x );
Math.floor( x) ;
Math.random( );
entrada.nextInt ( );
entrada.nextDouble ( );
Identificar. ( Creación o utilización)
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS. P.O.O NIVEL BÁSICO.
Importante: La perspectiva cambia. Ahora no solo se va a utilizar métodos. También se los va a
crear.
¿Qué es un método?
Son subalgoritmos , que están formados por un grupo de código que permiten resolver un
problema de forma específica.
¿Para qué sirven?
•
•
•
•
Sirven para organizar mejor el programa principal.
En vez de utilizar un solo programa , se divide el problema en subproblemas a resolver.
Cada subproblema es solucionado por un subalgoritmo o método
Se aplica la técnica divide y vencerás.
Por lo tanto la estrategia es
Descomponer el problema mayor en varios subproblemas que serán solucionados por
cada subalgoritmo (método)
Pregunta de la vida real. Si contratan a 5 compañeros para realizar un trabajo de instalación
eléctrica de una casa de 5 departamentos. ¿Qué consideraría si solo a Usted le asignan efectuar
toda la instalación? ¿Es justa y lógica esta decisión?
Que consideraría si la instalación de cada departamento es asignada a un compañero. ¿Es justa y
lógica esta decisión?
Esto es lo que ocurre con public static void main.
•
•
•
main( ) es un método denominado principal
En este momento main( ) está solucionando todos los problemas
Pero probablemente no es justo ni lógico asignar todo el problema a este método
5 de 18
Por lo tanto. ¿Se podrían crear otros métodos?
Parámetros y argumentos.
•
•
•
•
Los datos que están entre paréntesis cuando se crea el método se denomina parámetros.
Los datos que están en el método cuando se utiliza el método se denominan argumentos.
Observar que se refieren a los mismos elementos. La diferencia es el momento de
creación o de utilización
Si un método cuando se crea tiene n declaraciones de variables entre los paréntesis
(parámetros), cuando se lo utiliza debe realizarlo con los mismos n elementos (valores o
variables) entre los paréntesis (argumentos)
Parte 2.
CODIFICACIÓN DE MÉTODOS.
En referencia a lo indicado de descomposición del problema en subproblemas a resolver y que no
todo debería estar en el main se procede a solicitar lo siguiente.
Crear la clase Cuadrado.
public class Cuadrado
{
}
Ejecutar el programa
¿Qué ocurre al ejecutar el programa?
Toda clase que se desee ejecutar debe tener el método main. Cuando se utilicen más métodos
6 de 18
Crear un método en la clase Cuadrado que realice el cálculo del área de un cuadrado de lado 3.
El código debe estar DENTRO de las llaves de la clase, arriba o abajo del método main u otros
métodos.
•
•
Un método cuando se crea no puede estar dentro de otro, es decir
cuando se crea, ningún método puede estar dentro de otro método.
public void area( )
{
double lado ;
lado = 3;
double area;
area = lado*lado ;
System.out.println(“El área del cuadrado uno es ” +area ) ;
}
¿Qué similitud o diferencias puede detectar respecto al código ubicado dentro del método area y
lo codificado en ejercicios anteriores en el método main? ¿Es similar?
Crear un método en la clase Cuadrado que realice el cálculo del área de un cuadrado de variable X.
El código debe estar DENTRO de las llaves de la clase, arriba o abajo del método main u otros
métodos.
•
•
Un método cuando se crea no puede estar dentro de otro, es decir
cuando se crea, ningún método puede estar dentro de otro método.
public void areaDos ( double x )
{
double lado ;
double area;
area = x*x ;
System.out.println(“El área del cuadrado dos es ” +area ) ;
}
Observar la mayúscula en la segunda frase. Esto según convenciones de escritura
¿Qué similitud o diferencias puede detectar respecto al código anterior?
Crear un método en la clase Cuadrado que realice el cálculo del área de un cuadrado de variable X
y que retorne un valor que puede ser utilizado posteriormente.
7 de 18
El código debe estar DENTRO de las llaves de la clase, arriba o abajo del método main u otros
métodos.
•
•
Un método cuando se crea no puede estar dentro de otro, es decir
cuando se crea, ningún método puede estar dentro de otro método.
public double areaTres( double x )
{
double lado ;
double area;
area = x*x ;
System.out.println(“El área del cuadrado tres es ” +area ) ;
return area ;
}
Observar la mayúscula en la segunda frase. Esto según convenciones de escritura
¿Qué similitud o diferencias puede detectar respecto al código anterior?
¿Pueden todos los métodos tener el mismo nombre con los mismos argumentos (lo que está entre
paréntesis)?
¿Cuál es estructura identifica para para crear TODO método en java?
Realizar el código para probar y ejecutar la clase
Solicitan crear el método main.
El código debe estar DENTRO de las llaves de la clase, arriba o abajo del otros métodos.
•
•
Un método cuando se crea no puede estar dentro de otro, es decir
cuando se crea, ningún método puede estar dentro de otro método
Dentro del public static void main digitar
public class Cuadrado
{
public static void main( String[ ] args )
{
Cuadrado c;
c = new Cuadrado ( );
c.area( );
c.areaDos( 9);
8 de 18
c.areaTres(6);
}
//…. otros métodos creados
// ….
}
Ejecutar el programa. Describa que ha ocurrido. ¿La parte del new es similar a otra codificación?
Recordando la primera codificación se indica que cuando está la palabra clave new se crea un
objeto.
Técnica de Prueba, ensayo y error:
Cambiar c.areaDos( 9 ) ; por c.areados( 9)
¿Por qué sale error?
Cambiar c.area( ) ; por c.area(3);
¿Por qué sale error?
Cambiar c.areaTres(6) ; por c.areaTres(6, 9);
¿Por qué sale error?
EXPLICACIÓN DE LA CREACIÓN Y USO DE MÉTODOS.
En el ejercicio descrito crea y utiliza los métodos creados por el programados. No solamente los
utiliza.
Primero. Creación de los métodos
public void area( )
{
//código similar a lo que realiza en el main. No tiene return porque está void
}
9 de 18
public void areaDos ( double x )
{
//código similar a lo que realiza en el main. No tiene return porque está void
}
public double areaTres( double x )
{
// código similar a lo que se realiza en el main . Sí tiene return porque NO dice void
return area ;
}
Segundo. Creación del objeto para poder utilizar los métodos creados
Cuadrado c;
c = new Cuadrado ( );
utilizando una línea
Cuadrado c = new Cuadrado( );
Observar que Cuadrado es el nombre de la Clase. En cambio c es una variable y puede ser
cualquier identificador.
Tercero. Usar los métodos. (Previamente debe estar creado el objeto)
c.area( );
c.areados( 9);
c.areatres(6);
// llamada al método area( ) creado por el programador
// llamada al método areados(x) creado por el programador
// llamada al método areatres(x) creado por el programador
¿Cómo se codifican los métodos en una clase Java (formato de un método)? ¿Cuál es su
estructura?
TODO MÉTODO EN JAVA TIENE LA SIGUIENTE ESTRUCTURA
•
•
Si retorno es void se omite la palabra clave return. (void significa vacio)
Si retorno NO es void debe ubicar ahí un tipo de dato: int, double, boolean, String
o Debe añadir return, el valor o variable en return debe coincidir con el tipo de dato.
¿Qué tipos de datos puede recibir el método?
•
Los datos que recibe el método están dentro de los paréntesis (argumento)
o Cuando se crea el método debe especificarse el tipo de dato (parámetro)
10 de 18
o
Puede recibir int, double, boolean , String, objetos y otros
En caso de no recibir datos, en los paréntesis se deja con espacios o vacío.
Cuándo se está creando el método ¿Cómo realizo la codificación cuando se tiene varios datos que
puede recibir el método?
Cuando hay varios datos estos se separan con la coma (, ) indicando el tipo de dato de la variable.
Ejm public void mensaje( int dato1, double dato2, String dato3)
¿Qué tipos de datos puede retornar o no retornar el método?
•
•
Puede retornar int, double, boolean, String, char , objetos y otros.
Cuando es void (vacio) significa que NO retorna.
¿Qué diferencias hay entre que un método retorne y no retorne (void) valores?
Una de las diferencias es que un método que no retorna, nunca podrá asignarse a una variable.
En el ejercicio el método areatres( ) puede asignarse a una variable (porque tiene return).
double resultado = c.areatres( )
En cambio areados( ) y area( ) no pueden asignarse a una variable
double resultado = c.areados( ); //Esto es un error
¿Cómo se utiliza los métodos en un programa java?
FORMA PARA LLAMAR O UTILIZAR CUALQUIER MÉTODO.
Clase. metodo ( );
objeto. metodo ( );
¿Qué consideraciones hay entre las variables de los paréntesis cuando se utiliza el método
(argumentos) y cuando las variables de los paréntesis cuando se crea el método (parámetro?
Una de las diferencias es que cuando se crea el método va un tipo de dato y variable
Cuando se crea es de la siguiente forma en los paréntesis Ejm
public void areados ( double x )
Cuando se utiliza el método solo va la variable y/o valor. NUNCA va el tipo de dato
c.areados( m )
¿Cómo se crean los objetos en java?
CREAR TODO OBJETO
Clase objeto ;
Objeto = new Clase( );
11 de 18
o utilizando una línea
Clase objeto = new Clase( );
¿Qué es un atributo en java?
Los atributos son variables que se declaran como toda variable pero directamente en la clase, no
en el método. La ventaja es que puede ser utilizada en cualquier método.
public class Nombre
{
tipodato nombrevar;
}
12 de 18
Parte 2. b.
Clase: Rectangulo
Crear una clase Rectangulo que contenga como atributos base y altura. Calcular el área y
perímetro del mismo.
Utilice P.O.O para la solución del problema
Solución:
Crear la clase Rectangulo
public class Rectangulo
{
}
Crear dos atributos dentro de la clase Rectangulo
public class Rectangulo
{
double base;
double altura;
}
Nota: observar que se crean directamente en la clase NO en el método main ni en ningún otro
método
IMPORTANTE. Todos los métodos son dentro de la clase. Un método cuando se crea no puede
estar dentro de otro.
Crear un método llenarBase que , asigne el valor a la variable base (atributo)
public void llenarBase( double b)
{
base= b;
}
¿Cuál es la diferencia entre las variables dentro del método y variables atributos?
Crear un método llenarAltura que , asigne el valor a la variable altura (atributo)
public void llenarAltura( double a)
{
13 de 18
altura = a;
}
¿Cuál es el alcance, scope o ámbito de la variable base, altura , b y a?
Crear un método llenarTodo, que llene a la vez la base y la altura.
public void llenarTodo( double a, double b)
{
altura= a;
base= b;
}
Crear un método que no reciba datos en los paréntesis y que calcule el área del rectángulo:
area = base * altura
public double calcularArea( )
{
return base*altura;
}
Crear un método que no reciba datos en los paréntesis y que calcule el perímetro del rectángulo
P = 2*base + 2*altura
public double calcularPerimetro( )
{
return 2*base+2*altura;
}
Ejecute el programa ¿ Por qué no funciona?
Crear el método main
public static void main(String[ ] args)
14 de 18
{
Rectangulo r = new Rectangulo( );
r.llenarTodo(6 , 5 );
double x, y;
x= r.calcularArea( );
y= r.calcularPerimetro( );
System.out.println(“Area “ + x);
System.out.println(“Perimetro “ + y);
}
Ejercicio completo
public class Rectangulo
{
double base;
double altura;
public void llenarBase( double b)
{
base= b;
}
public void llenarAltura( double a)
{
altura = a;
}
public void llenarTodo( double a, double b)
{
altura= a;
base= b;
}
public double calcularArea( )
{
return base*altura;
}
public double calcularPerimetro( )
{
return 2*base+2*altura;
}
15 de 18
public static void main(String[ ] args)
{
Rectangulo r = new Rectangulo( );
r.llenarTodo(6 , 5 );
double x, y;
x= r.calcularArea( );
y= r.calcularPerimetro( );
System.out.println(“Area “ + x);
System.out.println(“Perimetro “ + y);
}
}//fin de clase
Describa las diferencias y similitudes entre la codificación del método main y otros métodos.
COMPARACIÓN DE MÉTODOS CON EL MAIN
16 de 18
SINTESIS
CREAR CUALQUIER OBJETO
Clase objeto = new Clase( );
FORMA PARA LLAMAR O UTILIZAR CUALQUIER MÉTODO.
Clase. metodo ( );
objeto. metodo ( );
FORMA PARA CREAR TODO METODO
public retorno nombre ( )
{
}
return si no es void
17 de 18
Parte 3. Taller
ACTIVIDAD AUTÓNOMA
Realizar un programa mediante Clases, atributos, métodos y objetos. P.O.O que:
Cree 5 personas y por cada una de ella, Ingrese el apellido, ingrese la edad, ingrese el sueldo y
muestre el dato concatenado de cada uno de sus atributos.
Requerimientos:
Clase : Persona
Ingreso y salida de datos con Scanner
MÉTODO 1
•
•
Realizar un método que retorne un String, el método se llame ingresarApellido, no reciba
parámetros en el método.
La operación es: Muestre un mensaje que ingrese el apellido y lo guarde en el atributo
apellido.
MÉTODO 2
•
•
•
•
•
•
Realizar un método que retorne un int,
El método se llama ingresarEdad
No hay parámetros en el método
La operación es:
Muestre un mensaje que ingrese la edad
Guarde en el atributo edad
Nota: no olvidar realizar la conversión.
MÉTODO 3
•
•
•
•
•
Realizar un método que no retorne nada
El método se llama ingresarSueldo
El método recibe una parámetro de tipo double para el sueldo inicial
La operación: ingresa un sueldo y lo suma al sueldo inicial.
Guarda el sueldo resultante en el atributo sueldo.
Nota: no olvidar realizar la conversión.
MÉTODO 4
•
•
•
Realizar un método que no devuelva nada
El método se llama mostrar
El método no tiene parámetros
La operación: Mostrar todos los atributos concatenados
18 de 18
Parte 4. Ponencia y debate
Agruparse de acuerdo al criterio del docente
Contestar las interrogantes.
El grupo con más puntos gana la prueba
Interrogantes:
1. Pregunta del mundo real. ¿Existirá diferencia entre usar un regulador de voltaje y crear el
regulador de voltaje?
2. Identifique: En el código ¿Cuáles son las clases, cuáles los métodos?
3. Identifique: En el código ¿Cuáles son las clases, cuáles los métodos, cuáles los objetos?
4. ¿Identificar si se está creando o utilizando los métodos?
5. ¿Qué es un método?
6. ¿Para qué sirven?
7. ¿Cuál es la estrategia de utilizar métodos?
8. Comparando los ejercicios. ¿Cómo se codifican los métodos en una clase Java (formato de
un método)? ¿Cuál es su estructura?
9. ¿Qué tipos de datos puede recibir el método?
10. En la creación del método ¿Cómo realizo la codificación cuando se tiene varios datos que
puede recibir el método?
11. ¿Qué consideraciones hay entre las variables de los paréntesis cuando se utiliza el método
y cuando se crea el método?
12. ¿Qué tipos de datos puede retornar o no retornar el método?
13. ¿Qué diferencias hay entre que un método retorne y no retorne (void) valores?
14. ¿Cómo se utiliza los métodos en un programa java?
15. ¿Cómo se crean los objetos en java?
16. ¿Qué es un atributo en java?
17. ¿Cuál es la diferencia entre las variables dentro del método y variables atributos?
18. ¿Cuál es el alcance, scope o ámbito de la variable atributos y las de los métodos?
19. Existirán ocasiones en que no se ejecuta un programa ¿Cuál es una de las probables
causas?
20. Describa las diferencias y similitudes entre la codificación del método main y otros
métodos.

Documentos relacionados