Está en la página 1de 11

MÉTODOS EN PROGRAMACIÓN ORIENTADA A OBJETOS

JAIRO ENRIQUE BARRERA GÓMEZ


LENGUAJE DE PROGRAMACIÓN AVANZADA I
INGENIERO JAIRZINIO BARON RODRIGUEZ

INGENIERÍA DE SISTEMAS
CORPORACIÓN UNIVERSITARIA REMINGTON
SOGAMOSO
2021
ACTIVIDAD DE CONSULTA 1

Consulte el tema de métodos en programación orientada a objetos, de los cuales


existen sin asignación
a variable de retorno (que es el ejemplo que les voy a dejar), con asignación a
variable de retorno, sin
envío de parámetros, con envío de parámetros, con retorno, sin retorno.
Deben crear o consultar un (1) ejemplo de cada una de las opciones descritas
arriba.
A manera de ejemplo:
package EJEMPLOS;
public class Ejemplo1 {
public static void main (String[] args) {

Mensaje();
}
public static Mensaje()
{
System.out.print(“Hola mundo”);
}
}
Si se dan cuenta dentro del Main se invoca al método Mensaje(), el cual es creado
en la parte inferior
y por fuera del Main, el cual puede llevar el código que se quiera.

DESARROLLO

Para abarcar de una mejor manera la temática requerida en la actividad es


pertinente hacer referencia de algunos conceptos para una mejor comprensión del
desarrollo de la actividad:
¿Que es la programación orientada a objetos?:
La Programación Orientada a Objetos (POO) es un paradigma de programación,
es decir, un modelo o un estilo de programación que nos da unas guías sobre
cómo trabajar con él. Se basa en el concepto de clases y objetos. Este tipo de
programación se utiliza para estructurar un programa de software en piezas
simples y reutilizables de planos de código (clases) para crear instancias
individuales de objetos.
Con el paradigma de Programación Orientado a Objetos lo que buscamos es dejar
de centrarnos en la lógica pura de los programas, para empezar a pensar en
objetos, lo que constituye la base de este paradigma. Esto nos ayuda muchísimo
en sistemas grandes, ya que, en vez de pensar en funciones, pensamos en las
relaciones o interacciones de los diferentes componentes del sistema.
¿Qué es un objeto?:
Los objetos son abstracción de Python para data. Toda la data en un programa
Python es representado por objectos o por relaciones entre objectos. Cada objeto
tiene una identidad, un tipo y un valor. Una identidad de objecto nunca cambia una
vez es creada; usted puede pensar eso como la dirección de objeto en memoria.
El operador in compara la identidad de dos objetos; la función id() devuelve un
número entero representando la identidad.
Los objetos son la clave para entender la POO. Si mira a nuestro alrededor
encontrará un sin fin de objetos de la vida real: perro, escritorio, televisor, bicicleta,
etc…
En Python puede definir una clase con la palabra reservada class, de la siguiente
forma:
class Persona:
pass
En el ejemplo anterior, el nombre de la clase es Persona y dentro del bloque de
código usa la sentencia pass. Aunque no es requerido por el intérprete, los
nombres de las clases se escriben por convención capitalizadas. Las clases
pueden (y siempre deberían) tener comentarios.
¿Que son atributos?:
Los atributos o propiedades de los objetos son las características que puede tener
un objeto, como el color. Si el objeto es Persona, los atributos podrían ser: cedula,
nombre, apellido, sexo, etc…
Los atributos describen el estado de un objeto. Pueden ser de cualquier tipo de
dato.
class Persona:
"""Clase que representa una Persona"""
cedula = "V-13458796"
nombre = "Leonardo"
apellido = "Caballero"
sexo = "M"

¿Que son métodos?:


Los métodos describen el comportamiento de los objetos de una clase. Estos
representan las operaciones que se pueden realizar con los objetos de la clase,
La ejecución de un método puede conducir a cambiar el estado del objeto.
Se definen de la misma forma que las funciones normales pero deben declararse
dentro de la clase y su primer argumento siempre referencia a la instancia que la
llama, de esta forma se afirma que los métodos son funciones, adjuntadas a
objectos.
Teniendo en claro estos conceptos abordaremos de lleno las consultas propuestas
para el desarrollo completo de la actividad propuesta:
1. Con asignación de variable de retorno:
return valorRetorno;

El tipo de dato del valor de retorno deberá coincidir con el tipo de retorno de
la declaración del método. No se puede retornar un valor integer, a un
método en el que en su declaración aparece como valor de retorno, un
boolean.

package com.edu4java.Tutorial11;
import java.util.Scanner;
public class Tutorial11 {
public static void main(String[] args) {
int[] array = new int[5];
Scanner scanner = new Scanner(System.in);
insertarDatosArray(array, scanner);
sumarArray(array);
int max = maxArray(array);
System.out.println("Max= " + max);
double promedio = promedioArray(array);
System.out.println("Promedio= " + promedio);
}
private static void insertarDatosArray(int[] array, Scanner scanner) {
for (int i = 0; i < array.length; i++) {
System.out.print("insertar array[" + i + "]:");
array[i] = scanner.nextInt();
}
}
private static void sumarArray(int[] array) {
System.out.print("Suma: ");
int acumulador = 0;
for (int i = 0; i < array.length; i++) {
acumulador = acumulador + array[i];
System.out.print("+" + array[i]);
}
System.out.println("= " + acumulador);
}
private static int maxArray(int[] array) {
int max = 0;
for (int i = 0; i < array.length; i++) {
if (array[i] > max) {
max = array[i];
}
}
return max;
}
private static double promedioArray(int[] array) {
double promedio = 0;
for (int i = 0; i < array.length; i++) {
promedio = promedio + array[i];
}
promedio = promedio / array.length;
return promedio;
}
}

2. Sin asignación de variable retorno:


En algunas ocasiones, no es necesario que el método estático tenga que
devolver un valor al finalizar su ejecución. En este caso, el tipo de dato que
debe indicar en la cabecera de
declaración del método es el tipo void y la sentencia return no viene
seguida de ninguna expresión.
Sintaxis:

return;

En el siguiente código se incluye un ejemplo de método que no devuelve un


valor (de tipo void):

/**
* Demostracion del metodo tabla
*/
public class PruebaTabla {
public static void main (String [] args){
tabla(4);
tabla(7);
}
public static void tabla (int n) {
// ejemplo de llamada
// de tipo void
System.out.println("Tabla de multiplicar del numero " + n);
for (int i=0; i<=10; i++)
System.out.println(n + " x " + i + " = " + producto(n,i));
return; // No devuelve ningun valor
}
public static int producto (int a, int b) {
return a*b;
}
}

Si no hay sentencia return dentro de un método, su ejecución continúa


hasta que se alcanza el final del método y entonces se devuelve la
secuencia de ejecución al lugar dónde se invocó al método.
Un método cuyo tipo de retorno no es void necesita siempre devolver algo.
Si el código de
un método contiene varias sentencias if debe asegurarse de que cada una
de las posibles
opciones devuelve un valor. En caso contrario, se generaría un error de
compilación. Por
ejemplo:

/**
* Demostracion de la funcion esPositivo
*/
public class PruebaPositivo {
public static void main (String [] args) {
for (int i=5; i>=-5; i--)
System.out.println(i + " es positivo: " + esPositivo(i));
}
public static boolean esPositivo(int x) {
if (x<0) return false;
if (x>0) return true;
// Error: retorno perdido si x es igual a cero.
}
}

3. Con envío de parámetros:


Es posible pasar uno o más valores a un método cuando se llama al
método. Recuerde que un valor pasado a un método se llama argumento.
Dentro del método, la variable que recibe el argumento se llama parámetro.
Los parámetros se declaran dentro de los paréntesis que siguen al nombre
del método. La sintaxis de declaración de parámetro es la misma que la
utilizada para las variables.

Un parámetro está dentro del alcance de su método, y aparte de su tarea


especial de recibir un argumento, actúa como cualquier otra variable local.
Aquí hay un ejemplo simple del uso de parámetros. Dentro de la clase
ComprobarNumero, el método esPar() devuelve true si el valor que se pasa
es par. Devuelve false de lo contrario. Por lo tanto, esPar() tiene un tipo de
retorno booleano.

//Un ejemplo siemple del uso de parámetros


class ComprobarNumero {
//Retorna true si x es par
boolean esPar(int x){
if ((x%2)==0) return true;
else return false;
}
}
class ParametroDemo {
public static void main(String[] args) {
ComprobarNumero e=new ComprobarNumero();
if (e.esPar(10)) System.out.println("10 es par.");
if (e.esPar(9)) System.out.println("9 es par.");
if (e.esPar(8)) System.out.println("8 es par.");
}
}
Salida:

10 es par.
8 es par.
En el programa, esPar() se llama tres veces y cada vez se pasa un valor
diferente. Miremos este proceso de cerca. Primero, observe cómo se llama
esPar(). El argumento se especifica entre paréntesis.

Cuando se usa esPar() la primera vez, se pasa al valor 10. Por lo tanto,
cuando esPar() comienza a ejecutarse, el parámetro x recibe el valor de 10.
En la segunda llamada, 9 es el argumento, y x, entonces, tiene el valor de
9.
En la tercera llamada, el argumento es 8, que es el valor que recibe x.

4. Sin envío de parámetros:


Básicamente crear métodos con o sin uso de parámetros radica en los
valores que «pasamos» para hacer un proceso y generar una salida, todo
depende de la finalidad de tu
método, ejemplo: Si necesitas un método que sume 2 números lo más
acertado es pasar a tu método los dos números que se necesita.
Ejemplo de un método sin parámetros
Utilizar métodos sin parámetros es muy similar, hasta un poco más fácil ya
que no debes
enviar ningún valor, pero si obtienes un resultado de vuelta, igual que al
utilizar métodos
con parámetros.

static String Metodo1(){


return "Hola";
}

El método anterior está declarado sin parámetros, lo que indica que puede
funcionar solo
invocando su nombre.

5. Método con retorno:


Puede usar un valor de retorno para mejorar la implementación de rango().
En lugar de mostrar el rango, un mejor enfoque es hacer que rango()
calcule el rango y devuelva este valor. Una de las ventajas de este enfoque
es que puede usar el valor para otros cálculos.

Ejemplo:

El siguiente ejemplo modifica rango() para devolver el rango en lugar de


mostrarlo.

//Usando return
class Vehiculo {
int pasajeros; //números de pasajeros
int capacidad; //capacidad del combustible en galones
int mpg; //combustible consumido en millas por galon
//Retornando o devolviendo el rango
int rango (){
return capacidad*mpg;
}
}
class RetornandoMetodo {
public static void main(String[] args) {
Vehiculo minivan = new Vehiculo();
Vehiculo sportscar = new Vehiculo();
int rango1, rango2;
//Asigando valores a los campos en minivan
minivan.pasajeros=9;
minivan.capacidad=15;
minivan.mpg=20;
//Asigando valores a los campos en minivan
sportscar.pasajeros=10;
sportscar.capacidad=25;
sportscar.mpg=30;
//Obteniendo los rangos
rango1=minivan.rango();
rango2=sportscar.rango();
System.out.println("La Minivan puede llevar " +minivan.pasajeros +".
Con rango de: "+rango1);
System.out.println("El Sportscar puede llevar " +minivan.pasajeros +".
Con rango de: "+rango2);
sportscar.rango();
}
}

Salida:
La Minivan puede llevar 9. Con rango de: 300
El Sportscar puede llevar 9. Con rango de: 750

En el programa, observe que cuando se llama a rango(), se coloca en el


lado derecho de una instrucción de asignación. A la izquierda hay una
variable que recibirá el valor devuelto por rango(). Por lo tanto, después de
que se ejecuta, el rango del objeto minivan se almacena en el rango1.

Observe que rango() ahora tiene un tipo de retorno int. Esto significa que
devolverá un valor entero a quién lo llama. El tipo de devolución de un
método es importante porque el tipo de datos devueltos por un método
debe ser compatible con el tipo de devolución especificado por el método.

6. Método sin retorno:


Vamos a ver un ejemplo práctico de una función, pero primero recordad que
hay que
declararla antes del "main"; y luego podrá ser llamada cuando se necesite
desde el "main".

Veamos como se construye la función:


En este caso he creado una muy facilita, una función que simplemente
suma dos números recibidos por parámetro y muestra el resultado de la
suma por pantalla:
Esto es solo el código de la función

<tipo_de_dato_a_devolver> <nombre_funcion> (<parametros>)

En este caso, la función no devolverá nada, por eso escribo "void". Luego el
nombre de la
función, en este caso le puse Suma, y entre paréntesis las variables que
recibe (las que
necesitará la función). Son dos números tipo "int", o sea, que esta función
solo nos valdría
para sumar dos números enteros. Si quisiéramos sumar dos números
decimales no nos
valdría... en esto C es muy estricto.

También podría gustarte