Programacin Orientada a Objetos Declaracin de Mtodos Una
Programación Orientada a Objetos Declaración de Métodos: Una clase está formada por: • datos (atributos). Estos pueden ser de tipos primitivos o referencias. • Métodos Para construir programas en java se combinan clases escritas por el programador con las clases que están disponibles en la biblioteca de clases de java Instituto Tecnológico de Altamira Los objetos se forman a partir de clases
Los métodos (conocidos también como funciones o procedimientos) son fragmentos de código que permiten al programador dividir un programa en módulos, por medio de la separación de sus tareas en unidades autónomas Ejemplo claro de ello son los métodos de la clase Math (ubicada en la biblioteca de clases de Java) que permiten realizar un conjunto de cálculos matemáticos Instituto Tecnológico de Altamira Programación Orientada a Objetos
Programación Orientada a Objetos Cómo se declara un método? Existen reglas sintácticas que determinan la forma en la que Java entiende la declaración de un método. Para declarar un método se tiene el siguiente formato: modificador_de_acceso tipo_de_retorno nombre_del_método ( lista_de_parámetros ) { // cuerpo_del_ método } Instituto Tecnológico de Altamira Para declarar un método en Java es necesario escribir, entre otras cosas, las instrucciones que contendrá y establecer su nombre.
Programación Orientada a Objetos modificador_de_acceso El public se utiliza en métodos de instancia para acceder a variables y constantes de clase(globales) y de instancia. El public static se utiliza en métodos de clase para acceder a los atributos de la clase (globales). private se utiliza en aquellos atributos que solo pueden ser accedidos por métodos públicos de la su propia clase. Instituto Tecnológico de Altamira El modificador de acceso de un método es el permiso de ese método de acceder a los atributos de una clase. Puede ser public o private.
tipo_de_retorno Especifica el tipo de dato devuelto por el método; puede ser cualquier tipo válido, incluso los tipos de clase que se generen (objetos). Si el método no devuelve un valor, su tipo de retorno deber ser void. nombre_del_método El nombre del método debe ser un identificador válido, diferente a los que ya usaron otros elementos dentro del ámbito actual. Normalmente se usa un nombre que describe la acción que el método realiza. Instituto Tecnológico de Altamira Programación Orientada a Objetos
lista_de_parámetros Es una secuencia de parejas: tipo e identificador, separados por comas. Los parámetros son básicamente variables que reciben el valor de los argumentos pasados al método cuando este se llama. Si el método no tiene parámetros, la lista de parámetros está vacía. cuerpo_del_ método Es un bloque encerrado entre llaves y contiene las instrucciones que va a ejecutar el método. En este bloque también se incluyen declaraciones de variables. Instituto Tecnológico de Altamira Programación Orientada a Objetos
Programación Orientada a Objetos Ejemplo: Tipo de retorno Cuerpo del método Nombre del método Lista de parámetros Instituto Tecnológico de Altamira Modificador de acceso class Tirar. Dado { public static void main( String[] args) { int frecuencia[] = new int[7]; String salida = "Tirar un dado 6000 veces. . "; System. out. println(salida); for ( int tiro = 1; tiro <= 6000; tiro++ ) ++frecuencia[ 1 + (int) (Math. random() * 6 ) ]; salida = "Carat. Frecuencia"; System. out. println(salida); for ( int cara = 1; cara < frecuencia. length; cara++) { salida = "n" + cara + "t" + frecuencia [ cara ]; System. out. print(salida); } } // fin de main } // fin de Tirar. Dado
Programación Orientada a Objetos Diseño de una clase de objetos objeto mensajes atributos métodos Normalmente, los atributos son la estructura mas interna del objeto; se ocultan a los usuarios del objeto, manteniendo como única conexión al exterior, los mensajes. Esto quiere decir que los atributos de un objeto solamente podrían ser manipulados por los métodos del propio objeto. Este conjunto de métodos recibe el nombre de interfaz: medio de comunicación con un objeto Instituto Tecnológico de Altamira Cuando escribimos un programa orientado a objetos, lo que hacemos es diseñar un conjunto de clases. Cada una de estas clases incluye dos partes fácilmente diferenciables: los atributos y los métodos.
Programación Orientada a Objetos Escribiendo una clase de objetos. Para declarar una clase hay que utilizar la palabra reservada class seguida del nombre de la clase y del cuerpo de la misma. El cuerpo de la clase entre { } sus miembros: atributos y métodos. class Ccuenta { //…… } Instituto Tecnológico de Altamira Podemos crear una clase de objetos llamada Ccuenta que represente una cuenta bancaria.
Programación Orientada a Objetos Elegimos los atributos que nos interesan para definir esta clase de objetos: Nombre: nombre del cliente del banco al que pertenece la cuenta Cuenta: numero de cuenta Saldo: saldo actual de la cuenta Tipo de Interes: tipo de interés en porcentaje class Ccuenta { private String nombre; private String cuenta; private double saldo; private double tipo. De. Interes; //… } En lo sucesivo, cuando utilice estos identificadores, debe respetar las mayúsculas y minúsculas. Un miembro declarado privado es accesible solamente por los métodos de su propia clase. Instituto Tecnológico de Altamira • •
Programación Orientada a Objetos El comportamiento define las acciones que el objeto puede emprender. q q q q q Asignar el nombre de un cliente del banco a una cuenta Obtener el nombre del cliente de una cuenta Asignar el numero de la cuenta Obtener el numero de cuenta Realizar un ingreso Realizar un retiro Asignar el tipo de interés Obtener el saldo (estado de cuenta) Instituto Tecnológico de Altamira Un objeto de clase Ccuenta, esto es, de una cuenta de un cliente de un banco, algunas de las acciones que pueden hacerse son:
Programación Orientada a Objetos Para definir el comportamiento hay que añadir métodos a la clase. Los métodos son rutinas de código definidas dentro del cuerpo de la clase. Instituto Tecnológico de Altamira Vamos a agregar a la clase Ccuenta un método que responda a la acción de asignar el nombre de un cliente a la cuenta.
Programación Orientada a Objetos Agreguemos un método mas para afianzar lo visto hasta ahora. ¿cuál será la respuesta de un objeto Ccuenta cuando reciba el mensaje “estado de cuenta”? , simplemente devolverá su saldo. Cuando hayamos escrito todos los métodos previstos, tendremos creada la clase Ccuenta que guardaremos en un fichero denominado Ccuenta. java Instituto Tecnológico de Altamira Podemos decir que los nombres de los métodos de una clase forman el conjunto de mensajes a los que un objeto de esa clase puede responder.
Programación Orientada a Objetos tipo de devolución int (se especifica antes del nombre del método) public static int adivina. Numero (int numero. Adivinar) {. . . . . return intentos; } instrucción de retorno que devuelve el valor de la variable de tipo int llamada intentos Instituto Tecnológico de Altamira Devolución de un valor desde un método. En la declaración de un método se puede establecer que nos regrese un valor. Los métodos que devuelven valores lo especifican en el encabezado del método exactamente antes del nombre del mismo.
Programación Orientada a Objetos Sintáxis: return expresión; La instrucción return debe ser la última instrucción de un método que regresa un valor. En ocasiones no es necesario que un método devuelva un valor. En estos casos se debe especificar, en el encabezado del método, void como tipo de retorno. Cuando se utiliza void como tipo de retorno NO es necesario utilizar la instrucción return al finalizar el método. Un método void finaliza cuando se encuentra el corchete de cierre. Instituto Tecnológico de Altamira Cuando un método tiene establecido un tipo de devolución es necesario utilizar una instrucción de retorno (return) antes de que el método termine. Un método que devuelve un valor termina su ejecución cuando se encuentra la instrucción return.
Programación Orientada a Objetos Escriba una clase, llamada Maximo, cuyo objetivo será calcular el mayor de los tres números por medio de un método, llamado calcula. Maximo(), que defina tres parámetros de tipo int, y devuelva el valor máximo de los 3 valores recibidos. El programa deberá leer desde el teclado 3 números de tipo int llamados “x”, “y” y “z”. , mandar llamar al método de la clase, y mostrar en pantalla el resultado obtenido (el numero mayor) Instituto Tecnológico de Altamira Ejercicio.
Programación Orientada a Objetos En muchas ocasiones al declarar una o más variables, las inicializamos manualmente, Java nos permite realizar esta tarea más fácilmente utilizando: el constructor. De igual forma al crear un objeto es necesario que al finalizar sea destruido. En muchos lenguajes de programación, esta tarea es realizada por el programador, Java por el contrario lo hace de manera automática sin necesidad de hacer la especificación o llamado al destructor. Instituto Tecnológico de Altamira Conceptos de métodos Constructor y Destructor
Programación Orientada a Objetos Un constructor es un método especial de una clase que es llamado automáticamente siempre que se crea un objeto de esa clase. Su función es crear el objeto. Cuando en una clase no escribimos explícitamente un constructor, Java asume uno por omisión. Un constructor por omisión de una clase es un constructor sin parámetros que no hace nada, sin embargo es necesario, ya que, será invocado cada vez que se construya un objeto sin especificar un argumento, en cuyo caso, el objeto será iniciado con los valores predeterminados por el sistema (los atributos numéricos a cero, los alfanuméricos a nulos, y las referencias a objetos a null). Instituto Tecnológico de Altamira Definición de constructor
Programación Orientada a Objetos q Se llama igual que la clase. q No devuelve nada, ni siquiera void. q Pueden existir varios, pero siguiendo las reglas de la sobrecarga de funciones. q De entre los que existan, tan sólo uno se ejecutará al crear un objeto de la clase. q Dentro del código de un constructor generalmente suele existir inicializaciones de variables y objetos, para conseguir que el objeto sea creado con dichos valores iniciales. Instituto Tecnológico de Altamira Un constructor es un método perteneciente a la clase que posee las siguientes características especiales:
Programación Orientada a Objetos class Circulo { int x, y, diametro; // el constructor public Circulo( ) { x=0; y=0; diámetro =0; }. . . } El constructor se invoca automáticamente cuando new crea un objeto de esa clase, como se muestra en seguida: Circulo mi. Circulo= new Circulo( ); mi. Circulo. imprimir(); // la salida sería 0 0 0 Instituto Tecnológico de Altamira Los constructores se declaran al momento de definir la clase como lo muestra el siguiente ejemplo:
Programación Orientada a Objetos class Circulo { int x, y, diametro; // el constructor con parámetros Public Circulo (int x. Inicial, int y. Inicial, int diametro. Inicial) { x=x. Inicial; y=y. Inicial; diámetro=diametro. Inicial; }. . . } Circulo mi. Circulo= new Circulo(20, 40); mi. Circulo. imprimir(); // la salida sería 20 20 40 Instituto Tecnológico de Altamira El constructor puede tener parámetros. En este caso, se deben colocar los argumentos respectivos al crear el objeto:
Se pueden colocar varios constructores. Durante la creación de un objeto, se invoca aquel que corresponde con los argumentos dados: class Circulo { int x, y, diametro; public Circulo( ) { x=0; y= 0; diametro=0; } public Circulo(int x. Inicial, int y. Inicial, int diametro. Inicial) { x=x. Inicial; y=y. Inicial; diametro=diametro. Inicial; } public Circulo (Circulo D) { x= D. x; y= D. y; diametro= D. diametro; } } Instituto Tecnológico de Altamira Programación Orientada a Objetos
Programación Orientada a Objetos Circulo c 1= new Circulo(); c 1. imprimir(); // la salida sería 0 0 0 Circulo c 3= new Circulo(c 2); c 3. imprimir(); // la salida sería 20 20 40 Instituto Tecnológico de Altamira Circulo c 2= new Circulo(20, 40); c 2. imprimir(); // la salida sería 20 20 40
Programación Orientada a Objetos Cuando una clase sobrecarga un método una o mas veces, ¿cómo sabe Java cual tiene que ejecutar cuando se invoque? . Pues esto lo hace comparando el numero y los tipos de argumentos especificados en la llamada, con los parámetros especificados en las distintas definiciones del método. Instituto Tecnológico de Altamira Cuando en una clase un mismo método se define varias veces con distinto numero de parámetros, o bien con el mismo numero de parámetros pero diferenciándose una definición de otra en que al menos un parámetro es de un tipo diferente, se dice que el método esta sobrecargado.
Programación Orientada a Objetos 1. 2. 3. 4. ¿Qué es un constructor? ¿Cuál es la función del constructor? ¿Cuál es la sintaxis para declarar un constructor en Java? ¿Que condición se debe cumplir para declarar el nombre del constructor? Instituto Tecnológico de Altamira Repasando…
Programación Orientada a Objetos Ejercicio 1 (constructores) Para esto será necesario crear una clase con el nombre “caja” la cual contendrá un constructor sin parámetros que inicialice todas las propiedades de la caja con un valor de 10; las propiedades que debe incluir serán: alto, ancho y fondo; y un método que calcule y regrese el volumen de la caja (ancho * alto * fondo) Ejercicio 2 (constructores) Modifique el programa anterior agregando un constructor con parámetros, el cual deberá tener la misma funcionalidad del anterior, solo que al crear los objetos se le mandaran al constructor los valores para inicializar los parámetros de las cajas. Instituto Tecnológico de Altamira Diseñe un programa en Java que cree 2 objetos de tipo “caja” e imprima en pantalla el volumen de ellos.
Programación Orientada a Objetos Diseñe una clase “coche” que represente coches. Incluya los atributos marca, modelo y color; y los métodos que simulen, enviando mensajes, las acciones de arrancar el motor, cambiar de velocidad, acelerar, frenar y parar el motor. coche Marca Modelo Color Encendido? Velocidad pos. Palanca arrancar. Motor() cambiar. Vel(pos) acelerar(inc) frenar(dec) apagar. Motor() estado() Instituto Tecnológico de Altamira Ejercicio 3 (constructores)
- Slides: 27