Upload
mariano-galvez
View
2.623
Download
3
Embed Size (px)
Citation preview
Titulo de la clases
Objeto, métodos y funciones
Java Dr. Juan Pedro Febles
Del tema anterior
Clases en Java
Java Dr. Juan Pedro Febles
Sobre Clases diga:
Una definición general
¿Qué es un atributo?
Los tipos de clases en Java
Java Dr. Juan Pedro Febles
Sobre Herencia explique:
Una definición
¿Cómo se define?
¿Cuáles variables se heredan y cuáles no?
Java Dr. Juan Pedro Febles
Temas
1.Definición de Objeto 2.Comparación de Objetos y Clases3.Determinación de la clases de un Objeto4.Definición general de métodos 5.Llamada a métodos6.Métodos de clase 7.El operador instanceof 8.La función mostrar9.La función cambiarDimensiones 10.La Duplicación de objetos11.El constructor
Java Dr. Juan Pedro Febles
Objetivos
1.Definir objeto en programación.2.Establecer la relación de objeto método y clases
en Java3.Evaluar cuando dos objetos son iguales y cuando
no4.Escribir programas para modificar objetos 5.Conocer la clonación de Objetos6. Identificar los métodos en Java y utilizarlo en la
transformación de objetos7.Trabajar con algunas funciones básicas
Java Dr. Juan Pedro Febles
Java Dr. Juan Pedro Febles
Una definición de objeto
Un elemento independiente de un programa de computadora que representa un numero de recursos relacionados y es proyectado para cumplir tareas específicas.
Java Dr. Juan Pedro Febles
¿Y los métodos?
El comportamiento de los objetos de una clase se implementa mediante funciones miembro o métodos.
Java Dr. Juan Pedro Febles
Una definición de método
Es un conjunto de instruccionesque realizan una determinadatarea.
Son similares a las funciones de loslenguajes estructurados.
Métodos de instancia y de clase
De instanciaUn objeto llama a
un método para
realizar una
determinada
tarea
Métodos
De clase
El método
se llama
desde la
propia clase.
Java Dr. Juan Pedro Febles
Java Dr. Juan Pedro Febles
class mamifero {String color; String sex;boolean hambre;} void alimentarMamifero () {
If (hambre == true) {System.out.printl (“dale comida al animalito”);hambre=false;
}elseSystem.out.printl (“El animal esta en forma”);
}//Hay mas
Hasta ahora tenemos
Java Dr. Juan Pedro Febles
Falta un método
void showAttributes () {System.out.printl (“Este es un” + sexo+””
+color+”mamifero”);If (hambre == true) System.out.printl (“El animal esta con
hambre”); else
System.out.printl (“El animal esta lleno”);}
La implementación de un método consiste
de dos partes, la declaración (firma) y el
cuerpo del método.
declaraciónDeMétodo {
cuerpoDeMétodo
}
Implementación de Métodos
Java Dr. Juan Pedro Febles
Aspectos de la declaración
El nombre del método
El tipo de retorno
Tipos y cantidad de argumentos
Quién puede Llamar al método
Java Dr. Juan Pedro Febles
Ejemplo, el código siguiente declara un método llamado
estaVacio() en la clase Pila que devuelve un valor booleano
(true o false):
class Pila {
. . .
boolean estaVacio() {
. . .
}
}
Obligatorio: el nombre y el tipo de retorno del método.
Java Dr. Juan Pedro Febles
No devuelve valor
void
Devuelve valor
Dato primitivo
Referencia
Devolver un Valor desde un Método
Java Dr. Juan Pedro Febles
Su nombre es igual que el de la clase
Inicializa un objeto de la clase
Son llamados mediante el operador new
El método constructor
Java Dr. Juan Pedro Febles
Java Dr. Juan Pedro Febles
Se usa para crear un nuevo objeto
Ejemplo:
String teamName = new String();
Radom randInfo = new Random();Mamifero A = new mamifero();
Nota: Los paréntesis pueden estar vacíos pero son
importantes
El operador New
Precisión sobre constructores
Todas las clases Java tienen métodos especiales llamados Constructores que se utilizan para inicializar un objeto nuevo de ese tipo.
Los constructores tienen el mismo nombre que la clase --el nombre del constructor de la clase Rectangle es Rectangle(), el nombre del constructor de la clase Thread es Thread(), etc...
Java Dr. Juan Pedro Febles
Una clase puede sobrescribir un
método de sus superclases.
Debe tener el mismo, nombre, tipo
de retorno y lista de parámetros que
el método al que ha sobrescrito.
Sobre escritura de métodos
Java Dr. Juan Pedro Febles
Java Dr. Juan P Febles
Creando la jerarquía
Animal
Terrestre Acuático
Bípedos reptiles Voladores
Java Dr. Juan P Febles
Localización de métodos en una jerarquía
Definición del método Clase
Clase Clase
ClaseClase
ObjetoObjeto
Se envía el mensaje, recorre verticalmente la jerarquía hasta que una definición sea encontrada
Java Dr. Juan P Febles
El método es anulado por esta definición
Definición del método
inicial
Clase
ClaseClase
ObjetoObjeto
Se envía el mensaje, recorre verticalmente la jerarquía hasta que una definición sea encontrada
Clase
Este procedimiento es llamado anulación de método
En Java, se puede utilizar el mismo nombre
para varios métodos pasándole un tipo de
parámetro diferente a cada uno de los
métodos.
Ejemplo: La clase de dibujo, se podrán
declarar tres métodos llamados draw<() y que
cada uno aceptara un tipo de parámetro
diferente:
Nombre de método
Java Dr. Juan Pedro Febles
class DibujodeDatos {
void draw(String s) {
. . .
}
void draw(int i) {
. . .
}
void draw(float f) {
. . .
}
}
Java Dr. Juan Pedro Febles
private
Niguna otra clase puede crear un objeto de su clase.
protected
Sólo las subclases de la clase pueden crear ejemplares de
ella.
public
Cualquiera pueda crear un ejemplar de la clase.
package-access
Nadie externo al paquete puede construir un ejemplar de
su clase.
Especificadores de acceso
Java Dr. Juan Pedro Febles
Java Dr. Juan Pedro Febles
Variables de clase
class MiembroDeFamilia {
static String apellido = Perez;
String name;
int edad;
}
Nota: Si una clase tiene una variable declarada static , todo objeto de esa clase tendrá el mismo valor para esa variable.
Java Dr. Juan Pedro Febles
Comparación de objeto y clase
•Comparación de objetos
•Descubrir a que clase pertenece un objeto
•Comprobación si un objeto es una instancia de una clase determinada
Java Dr. Juan Pedro Febles
Comparación de objeto
•La mayoría de los operadores de comparación trabajan solo con tipos primitivos de datos.
•Las excepciones son == y !=, pero no comprueban si los valores son iguales,
sino si los objetos son los mismos.
•Ejemplo: Comparar dos objetos de la clase String.
Java Dr. Juan Pedro Febles
class EqualsTest{
public static void main (String args[]){
String str1,str2;
str1=“La vida sigue igual”;
str2=str1;
System.out.println(“String1:”+str1);
System.out.println(“String2:”+str2);
System.out.println (“El mismo Objeto”+(str1==str2));
str2= new String(str1);
System.out.println(“String1:”+str1);
System.out.println(“String2:”+str2);
System.out.println (“El mismo Objeto”+(str1==str2));
System.out.println (“El mismo valor”+ str1.equals (str2));
}
}
Uso del método equals de la clase String.
Java Dr. Juan Pedro Febles
Salidas
String1: La vida sigue igual.
String2: La vida sigue igual.
El mismo Objeto? true
String1: La vida sigue igual.
String2: La vida sigue igual.
El mismo Objeto? False
El mismo valor? true
Java Dr. Juan Pedro Febles
Determinar la clase de un objeto
Modo de hacerlo
String name = obj.getClass().getName();
El método getClass() está definido en la clase
Object y como tal esta definido para todos los
objetos. El resultado del método es un objeto
llamado Class que posee un método llamado
getName que devuelve un String representando el
nombre de la clase.
Java Dr. Juan Pedro Febles
El operador instanceof
Posee dos operandos: Un objeto a la izquierda y un nombre de clase a la derecha: la expresión devuelve true o false, dependiendo de si el objeto pertenece a la clase o a cualquiera de las subclase de esa clase.
Ejemplo:
“perro” instanceof String //
Point pt = new Point(10,10);
Pt instanceof String //
true
false
Java Dr. Juan Pedro Febles
Inspeccionando una clase con el método de reflexión.
Este método permite que una clase
aprenda detalles sobre cualquier otra clase.
Un programa puede cargar una clase sobre
la cual el nada conoce, encontrar las
variables, métodos y constructores de esa
clase y trabajar con ellos.
Java Dr. Juan Pedro Febles
import java.lang.reflect.*;
import java.util.Random;
class SeeMethods {
public static void main (String[] arguments) {
Random = new Random ();
Class clasName = rd.getMetods();
Method[] methods =className.getMethods();
for (int i = 0; i < methods.length; i ++ {
System.out.println (“Method:” +methods[i];
}
}
}
El método SeeMethods.java
La clase import java.lang.reflect.* ofrece información sobre atributos, metodos y contructores de cualquier clase.
Java Dr. Juan Pedro Febles
1. Method: public final native java.lang.Classjava.lang.Object.getClass()
2. Method: public native int java.lang.Object.hashCode()
3. Method: public boolean java.lang. Object.equals(java.lang.Object)
4. Method: public java.lang.String java.lang.Object.toString()
5. Method: public final native void java.lang.Object.notify()
6. Method: public final native void java.lang.Object.notifyAll()
7. Method: public final native void java.lang.Object.wait(long) trhows
Java .lang.InterruptedExeption
8. Method: public final void java.lang.Object.wait(long,int) throws Java .lang.InterruptedExeption
9. Method: public final void java.lang.Object.wait() throws java.lang. InterruptedExeption
10. Method: public synchronized void java.util.Random.setSeed(byte[])
11. Method: public void java.util.Random.nextBytes(byte[])
12. Method: public int java.util.Random.nexInt()
13. Method: public long java.util.Random.nexLong()
14. Method: public float void java.util.Random.nextFloat()
15. Method: public double java.util.Random.nextDouble()
16. Method: public synchronized double java.util.Random.nextDouble()
Salida de la ejecución de SeeMethods
Java Dr. Juan Pedro Febles
Cada línea da la siguiente información sobre un metodo
•Si es public.
•Que tipo de objeto o variable retorna.
•Si el método es de la clase actual o de una de sus superclases.
•El nombre del método.
•El tipo de objeto y variables utilizadas como argumentos al llamar al método.
Java Dr. Juan Pedro Febles
Próximo tema
APLETS