Está en la página 1de 36

Clases, métodos e interfaces

Algoritmia y programación
Ángela Villota Gómez
Marzo de 2010
Programas: clases
• Al principio del curso vimos que un
programa tiene:
– Nombre
– Variables
– Instrucciones
Programas: clases
• Programa: Clase:
import javax.swing.*;

inicio de triangulo public class Triangulo{

 public static void main(String 
a[ ]){
declaraciones      int base , altura;
   
Instrucciones    //intrucciones
 }
}
Programas: clases
• Programa: • Clase:
import javax.swing.*;
public class Triangulo{
 public static void main(String 
Declaración del a[ ])
programa {  //inicio main
principal     int base , altura;
 
   //intrucciones
 }//fin main
}
Subprogramas: métodos
• Partir un programa en subprogramas es una
buena práctica cuando el programa es muy
complejo. Por ejemplo:
– Programa Alquiler (laboratorio de condicionales)
se puede partir en 3 subprogramas:
– Ingresar entrada
– Calcular el precio del alquiler
– Mostrar la salida
Estos 3 subprogramas se llamarán desde el
programa principal
Subprogramas: métodos
• Entonces el programa principal en vez de tener
todo el código tendrá llamados:
– Programa principal:
public static void main(String a[ ]){
// Instancia
Alquiler miAlquiler = new Alquiler();
miAlquiler.ingresarEntrada();
miAlquiler.calcularPrecioAlquiler(); llamados
miAlquiler.mostrarAlquiler();
System.exit(0);
}
Subprogramas: métodos
• Los subprogramas en la programación
Orientada a objetos se llaman también
métodos:
– Clase Alquiler:
– Metódos:
– main
– ingresarEntrada
– calcularPrecioAlquiler
– mostrarAlquiler
Cómo se declaran los métodos
• Los métodos llevan:
visibilidad tipo-retorno nombre (parámetros) {
}
Cómo se declaran los métodos
• Los métodos llevan:
visibilidad tipo-retorno nombre (parámetros) {
}
• Public: son visibles por otras clases
• Private: no son visibles por otras clases
Cómo se declaran los métodos
• Los métodos llevan:
visibilidad tipo-retorno nombre (parámetros) {
}
• Es el tipo del dato de salida, puede ser
cualquiera de los conocidos
• ¿y si no tiene salida?
t
Decimos que es void, que quiere decir
vacío.
Cómo se declaran los métodos
• Los métodos llevan:
visibilidad tipo-retorno nombre (parámetros) {
}
• Puede ser cualquier nombre, debe empezar por
minúsculas.
• No deben existir espacios en los nombres
Cómo se declaran los métodos
• Los métodos llevan:
visibilidad tipo-retorno nombre (parámetros) {
}
• Los parámetros son las entradas
• Se escriben separados por comas, y se dice
cuál debe ser su tipo
• A veces no hay parámetros, en ese caso no se
escribe nada entre los paréntesis
Cómo se declaran los métodos
• Los métodos llevan:
visibilidad tipo-retorno nombre (parámetros) {
}
• Ejemplo:
– public void ingresarEntrada()
– public int retornarTarifa()
Cómo se declaran los métodos
• Los métodos llevan:
visibilidad tipo-retorno nombre (parámetros) {
}
• Return: solo aquellos métodos que retornan
algo tienen la instrucción return.
Cómo se declaran los métodos
• Return (ejemplo):
public int retornarTarifa(){
//condicion: si el tipo de consola es
// igual a "x-box"
if (tipoConsola.equals("x-box"))
return 3000;
else { //---> sino es "x-box"

if (tipoConsola.equals("wii")
return 3500;
else{ //en el caso en que tampoco sea wii

if (tipoConsola.equals("play-station"))
return 2500; // si es así retorno 2500
else
return 0;
}
}
¿Y cómo funcionan los
programas?
• Al igual que en los programas anteriores,
los programas principales son
secuencias de instrucciones
• Las instrucciones se ejecutan en el
orden en el que se escriben.
• ¿Pero y el programa principal no
estaba lleno de llamados?
¿Y cómo funcionan los
programas?
• Los llamados también son instrucciones.
Veamos de nuevo el programa principal

public static void main(String a[ ]){


// Instancia
Alquiler miAlquiler = new Alquiler();
// llamados
miAlquiler.ingresarEntrada();
miAlquiler.calcularPrecioAlquiler();
miAlquiler.mostrarAlquiler();
System.exit(0);
}
¿Y cómo funcionan los
programas?
• Los llamados también son instrucciones.
Veamos de nuevo el programa principal
La primera instrucción es
public static void main(String a[ ]){ la declaración de la
// Instancia instancia
Alquiler miAlquiler = new Alquiler();
// llamados
miAlquiler.ingresarEntrada();
miAlquiler.calcularPrecioAlquiler();
miAlquiler.mostrarAlquiler();
System.exit(0);
}
¿Y cómo funcionan los
programas?
• Los llamados también son instrucciones.
Veamos de nuevo el programa principal

public static void main(String a[ ]){


// Instancia Luego vienen los llamados
Alquiler miAlquiler = new Alquiler();
// llamados
miAlquiler.ingresarEntrada();
miAlquiler.calcularPrecioAlquiler();
miAlquiler.mostrarAlquiler();
System.exit(0);
}
¿Y cómo funcionan los
programas?
• Los llamados también son instrucciones.
Veamos de nuevo el programa principal

El llamado hace que se


public static void main(String a[ ]){
ejecuten las instrucciones
// Instancia
Alquiler miAlquiler = new Alquiler();
del método.
// llamados
miAlquiler.ingresarEntrada();
miAlquiler.calcularPrecioAlquiler();
miAlquiler.mostrarAlquiler();
System.exit(0);
}
¿Y cómo funcionan los
programas?
• Los llamados también son instrucciones.
Veamos de nuevo el programa principal
Este llamado hace que ahora se
ejecuten las siguientes instrucciones:
public static void main(String a[ ]){
tipoConsola=
// Instancia JOptionPane.showInputDialog("Ingrese
Alquiler miAlquiler = new Alquiler(); el tipo de la consola\n ( x-box, wii,
// llamados play-station )");
accesorio=
miAlquiler.ingresarEntrada(); JOptionPane.showInputDialog("Ingrese
miAlquiler.calcularPrecioAlquiler(); el tipo de accesorio \n ( control,
miAlquiler.mostrarAlquiler(); guitarra, tapete, ninguno )");
HorasAlquiler=
System.exit(0); Integer.parseInt(JOptionPane.showInput
} Dialog("Ingrese la cantidad de horas
de alquiler\n( número entero )"));
MinutosAdicionales=
Integer.parseInt(JOptionPane.showInput
Dialog("Ingrese la cantidad de minutos
adicionales\n ( número entero entre 1
y 60 )"));
¿Y cómo funcionan los
programas?
• ¿Y si el método tiene parámetros?
• Vemos un ejemplo:

public double calcularArea(int base, int altura)


{
double area; •Método que calcula el
area= (base * altura) /2 área de un triángulo,
return area;
•Tiene dos entradas
}
(números enteros)
•Tiene una salida de tipo
double
¿Y cómo funcionan los
programas?
• Veamos el llamado en el programa
principal:

El llamado hace que se


public static void main(String a[ ]){
ejecuten las instrucciones del
// Instancia
Triangulo ejemplo = new Triangulo();
método.
// llamados
...
ejemplo.calcularArea( 10, 20);
...
System.exit(0);
}
¿Y cómo funcionan los
programas?
• Veamos el llamado en el programa
principal: Este es el cuerpo del método:
double area;
area= (base * altura) /2
return area;
public static void main(String a[ ]){
Las instrucciones que se ejecutan
// Instancia
son:
Triangulo ejemplo = new Triangulo();
double area;
// llamados
... Area= (10 * 20) /2
ejemplo.calcularArea( 10, 20); return area;
...
System.exit(0); ¿Por qué?
}
¿Y cómo funcionan los
programas?
• Veamos el llamado en el programa
principal: Este es el cuerpo del método:
double area;
area= (base * altura) /2
return area;
public static void main(String a[ ]){
Las instrucciones que se ejecutan
// Instancia
son:
Triangulo ejemplo = new Triangulo();
double area;
// llamados
... Area= (10 * 20) /2
ejemplo.calcularArea( 10, 20); return area;
...
System.exit(0); Porque se reemplazó en el cuerpo
} del método el valor de base por 10
y el valor de altura por 20
¿Y cómo funcionan los
programas?
• Veamos el llamado en el programa
principal: Este es el cuerpo del método:
double area;
area= (base * altura) /2
return area;
public static void main(String a[ ]){
Las instrucciones que se ejecutan
// Instancia
son:
Triangulo ejemplo = new Triangulo();
double area;
// llamados
... Area= (10 * 20) /2
ejemplo.calcularArea( 10, 20); return area;
...
System.exit(0); ¿Pero por qué en ese orden (base =
} 10 y altura = 20)?
¿Y cómo funcionan los
programas?
• Veamos el llamado en el programa
principal:

public static void main(String a[ ]){


// Instancia
Triangulo ejemplo = new Triangulo();
// llamados
...
ejemplo.calcularArea( 10, 20);
...
System.exit(0);
}

Esta es la declaración del método:

public double calcularArea(int base, int altura)


¿Y cómo funcionan los
programas?
• Veamos el llamado en el programa
principal:

public static void main(String a[ ]){


// Instancia
Triangulo ejemplo = new Triangulo();
// llamados
...
ejemplo.calcularArea( 10, 20);
...
System.exit(0);
}

Esta es la declaración del método:

public double calcularArea(int base, int altura)


Y las instancias?
¿Porque hay que declarar una instancia en el
programa principal?
… Para responder esto vamos a ver qué es la
programación orientada a objetos...
Clases: son solo una forma de
escribir el programa?
• No, las clases son una forma de hacer
plantillas de objetos.
• Los objetos son una forma de proponer
una solución al problema.
• En programación existen los Paradigmas,
que son los estilos o formas en que se
aborda un problema.
• La programación orientada a objetos, es
una forma especial de hacer programas.
La programación orientada a
objetos
• Es un paradigma de programación.
• La solución a un problema no se modela
como un conjunto de instrucciones,
sino como una interacción de objetos.
• Un objeto es una entidad del problema.
La programación orientada a
objetos
• ¿Clase es lo mismo que objeto?
No, una clase es una plantilla, o una
forma para definir las características
de todos los objetos de un mismo tipo.
• ¿ Y una instancia es un objeto?
Sí, instancia es la forma de llamar a un
objeto de una clase
Ejemplo:
Clase
Estudiante

Codigo: 0403579
Plan: 3745
Nombre: Anita Gómez

Objetos de la clase ConsultarMaterias()


estudiante Matricular()

Estudiante Estudiante

Codigo: 0934049 Codigo: 1083569


Plan: 3748 Plan: 3750
Nombre: Lukas Ruiz Nombre: Lucy Ramirez

ConsultarMaterias() ConsultarMaterias()
Matricular() Matricular()
Ejemplo:
instancia3
Clase
Estudiante

Codigo: 0403579
Plan: 3745
Nombre: Anita Gómez

ConsultarMaterias()
Matricular()
instancia1 instancia2
Estudiante Estudiante

Codigo: 0934049 Codigo: 1083569


Plan: 3748 Plan: 3750
Nombre: Lukas Ruiz Nombre: Lucy Ramirez

ConsultarMaterias() ConsultarMaterias()
Matricular() Matricular()
Partes de una clase

Atributos: datos que


comparten todos los
objetos de la clase
(variables globales)

Métodos: operaciones de
los objetos de una clase.
(subprogramas)
POO vs PE
• POO: programación • PE: programación
orientada a objetos
estructurada
• Permite hacer modelos
más cercanos a la vida • Útil para
real -programas más
• Los métodos los vamos a sencillos
implementar usando
PE:

También podría gustarte