fundamentos de programación unidad 6
TRANSCRIPT
VI. Modularidad.
La modularidad es la capacidad que tiene un sistema de ser estudiado, visto o entendido
como la unión de varias partes que interactúan entre sí y que trabajan para alcanzar un
objetivo común, realizando cada una de ellas una tarea necesaria para el cumplimiento de
dicho objetivo. Cada una de esas partes en que se encuentre dividido el sistema recibe el
nombre de módulo. Idealmente un módulo debe poder cumplir las condiciones de caja
negra, es decir, ser independiente del resto de los módulos y comunicarse con ellos (con
todos o sólo con una parte) a través de unas entradas y salidas bien definidas.
Las programación modular aplicada a la programación orientada a objetos se le denomina
Modularidad a la propiedad que permite subdividir una aplicación en partes más pequeñas
(llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible
de la aplicación en sí y de las restantes partes.
En Java existen dos clases de módulos: las clases y los métodos. Para escribir un
programa se tienen que combinar estos dos módulos.
VI.1. Declaración de métodos
Los métodos (también llamados funciones o procedimientos en otros lenguajes de
programación) son mini programas dentro de un programa. Por medio de los métodos se
realizar tareas de un proyecto. Los métodos tienen las siguientes propiedades:
Un bloque de código que tiene un nombre,
Recibe unos parámetros o argumentos (opcionalmente),
Contiene sentencias o instrucciones para realizar algo (opcionalmente) y
Devuelve un valor (opcionalmente).
La sintaxis global es:
acceso static tipo NombreDelMétodo ([Lista de Argumentos]) {
Declaración de variables del método
Sentencias del método
[return tipo;]
Donde:
acceso Cada método tiene asociado un tipo que se utiliza para controlar el acceso al
método. Entre estos se encuentran:
public Este método público se puede llamar de cualquier código que tenga
acceso a la clase.
private Este método privado solo puede ser llamado desde otros métodos
dentro de la clase en que se definió el método privado.
protected Este método protegido se puede llamar desde otros métodos de la clase
en que el método está definido y por cualquier otro método de las clases
que heredan de la clase en que está definido el método. También está
disponible en cualquier objeto de las clases pertenecientes al mismo
paquete en donde está definida la clase.
defecto Si no especifica ningún tipo de acceso, se utiliza el acceso por defecto,
esto significa que el método es accesible a todas las clases contenidas
en le mismo paquete, pero no está accesible fuera de ese paquete.
static Declara el método como método de la clase y no como método del
objeto (no hereda el método).
Nota: Un método declarado como static solo puede ser llamado por otro método static y
hacer referencia a variables static.
tipo Es el tipo de datos que regresara el método. Si se estipula un tipo de
dato void indica el método no regresa ningún valor (void indica ausencia
de valor). Dentro del método para retornar el valor se utiliza la palabra
reservada return y posteriormente el valor, si el tipo de dato del método
se declara void no es necesario utilizar la sentencia return.
NombreDelMétodo Es el nombre que distingue al método y debe estar formado por un
identificador.
Lista de Argumentos Son los valores que se pasarán al método para que realice su tarea.
Para cada argumento se tiene que declarar su tipo de dato. Por ejemplo,
el siguiente método se llama suma2Numeros, recibe como parámetro
dos valores tipo long y regresa un valor long con la suma de los valores
que recibe como parámetro.
static long suma2Numeros( long a, long b) {
return (a + b);
}
Parámetros:
Como ya se dijo los parámetros son las variables definidas en el encabezado del método
que toman los valores que se mandan para que realice un proceso o tarea, además
existen dos tipos de argumentos:
Por valor: Se realiza una copia del tipo de dato (solo para los datos
primitivos) y se utiliza la copia dentro del método.
Por referencia: Se envía la referencia de un objeto y se utilizar esta referencia,
si el objeto es modificado, se modifica el dato original.
Sobrecarga
En Java es posible definir dos o más métodos dentro de una misma clase que compartan
el mismo nombre y que las declaraciones de sus argumentos sean diferentes. En este
caso se dice que los métodos están sobrecargados y el fenómeno se conoce como
sobrecarga de métodos. La sobrecarga es uno de los procedimientos mediante el cual se
implementa el polimorfismo.
En la llamada a los métodos sobrecargados, el compilador determina cual es el método
involucrado basándose en el número o tipo de argumentos. Por consiguiente los métodos
sobrecargados deben diferenciarse en el número o tipos de argumentos. Cuando Java
encuentra una llamada a un método sobrecargado, ejecuta la versión del método cuyos
argumentos (número y tipo) coincidan con los argumentos utilizados en la llamada.
Nota: La declaración de los métodos sobrecargados no deben ser ambigua, de modo
que el compilador pueda decidir inequívocamente cuál método ejecutar.
Ejercicios:
o Elabore un programa que lea los lados de un triangulo rectángulo y mediante un
método calcule la hipotenusa.
o Elabore un programa que lea el radio de un círculo y mediante un método llamado
calculaArea calcule el área del círculo, además mediante otro método llamado
calculaVolumen calcule el volumen del círculo.
VI.2. Métodos de clase
Los métodos de clase al igual que las variables de clase, se aplican a la clase como un
todo y no a sus instancias. Para declarar un método como “Método de la clase” se utiliza
la palabra reservada static:
acceso static tipo nombreMetodoClase (Lista de Argumentos) {
Declaración de variables del método
Sentencias del método
[return tipo;]
Para acceder a las variables o métodos de clase se utiliza el operador punto ( . ).
nombreClase.nombreVarClase;
nombreClase.nombreMetodoClase();
VI.3. Métodos de instancia
Los métodos de instancia o variables de instancia, los adquieren los objetos al ser
instanciados (creados). Para declarar un método de instancia se declara sin la palabra
reservada static:
acceso tipo nombreMetodoInstancia (Lista de Argumentos) {
Declaración de variables del método
Sentencias del método
[return tipo;]
Para acceder a las variables o métodos de instancia se utiliza el operador punto ( . ).
Objeto.nombreVarinstancia;
Objeto.nombreMetodoInstancia();
Producto de Aprendizaje 6.1: Elabore los siguientes ejercicios como métodos de
clase y métodos de instancia
1. Elabore un programa que lea los grados Celsius y por medio de un método
llamado convierteAFahrenheit convierta los grados Celsius a grados Fahrenheit.
2. Elabore un programa que mediante los métodos conversionAPies y
converionApulgadas cambie una cantidad en metros a pies y a pulgadas (1 metro
= 39.37 pulgadas, 1 pie = 12 pulgadas)
3. Una tonelada métrica equivale a 35,273.92 onzas. Elabore un programa que lea el
peso de un paquete de cereal para el desayuno en onzas y mediante un método
calcule el número de cajas necesarias para llenar una tonelada métrica de cereal.
4. Elabore un programa que lea tres calificaciones y mediante un método calcule el
promedio y determine si el alumno esta “Aprobado” o “Reprobado”.
5. Escriba un programa que lea un número entero y mediante un método le envíe
como argumento ese número entero y regrese P si el número es positivo, N si fue
negativo y C si fue cero.
6. Elabore un programa que lea dos números y mediante un método determine si un
numero divide al otro exactamente regresando true, en caso contrario regrese
false.
7. Escriba un programa que mediante un método determine si una cadena es
palíndromo (un palíndromo es una palabra que se lee igual en sentido directo
como inverso, por ejemplo radar).
8. Escriba un programa que lea dos enteros positivos n y b que llame a un método
cambiarBase para calcular y visualizar la representación del número n en la base
b.
9. Escriba un programa que tenga un método inverso que se le envíe un argumento
numérico y regrese su inverso, por ejemplo 1847, el inverso es 7481.
10. Escriba un programa que lea un valor x != 0 y por medio de método regrese el
valor de la siguiente expresión:
1
1435.1
5
x
ex
11. Escriba un programa que mediante un método que reciba dos argumentos x y n
devuelva el siguiente valor:
011
02
11
2
xsin
x
n
x
xsix
x
n
xx
nn
nn
12. Escriba un programa que mediante un método que tome como argumentos las
longitudes de los tres lados de un triangulo (a, b y c), devuelva el área del
triangulo.
2
))()((
cbapdonde
cpbpappArea