le, ei, profesor ramón castro liceaga universidad latina (unila) clases y objetos

38
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

Upload: evita-bernabe

Post on 06-Feb-2015

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

LE, EI, Profesor Ramón Castro Liceaga

UNIVERSIDAD LATINA (UNILA)

CLASES Y OBJETOS

Page 2: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

Definición de clase y objetoDefinición de clase y objeto

• Clase: definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas. Una clase permite la creación de objetos.

• Objeto: entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos).

Page 3: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

Clases de objetos

•Clases .- Es una descripción para producir objetos de esa clase o tipo. Esta formada por los métodos y los datos que definen las características comunes a todos los objetos de esa clase. (Un conjunto de objetos del tipo de la clase)

•Una clase equivale a la generalización de un tipo específico de objetos. Una instancia (objeto) es la concreción de una clase.

Clase X

Page 4: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

Creación de clases en Java (Modelo básico)

/* * Programa : Persona.java * Ejemplo de programacion de la clase persona en Java */ class Persona{

// Métodos y atributos de los objetos

}

Page 5: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

EI, Profesor Ramón Castro Liceaga

Creación de objetos en Java: Constructores

• Para crear un nuevo objeto, se utiliza el operador new seguido por el nombre de la clase + parentesis.

Ejem.nombreObjeto = new NombreClase();

psrPersona = new Persona(“Ramon Castro”,45);

Nota: pasa los valores del nombre y la edad.

Page 6: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

• Hacer la compilación de la clase persona./* * Programa : Persona.java * Ejemplo de programacion de la clase persona en Java */ class Persona{

String m_sNombre;int m_iEdad;

Persona(String sNuevoNombre, int iNuevaEdad){

m_sNombre = sNuevoNombre;m_iEdad = iNuevaEdad;

}

void MuestraPersona(){

System.out.print(" Hola, mi nombre es " + m_sNombre);System.out.println(" Tengo " + m_iEdad + " años ");

}

public static void main (String args[]){

Persona psrPersona;psrPersona = new Persona("Ramon Castro Liceaga ", 45);psrPersona.MuestraPersona();System.out.println("********************");psrPersona = new Persona("Juan Perez ", 35);psrPersona.MuestraPersona();System.out.println("*** Fin de programa ****");

}

Page 7: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

LE, EI, Profesor Ramón Castro Liceaga

Ejemplo de la clase “ManoDerecha”Clase: Mano

Objeto: ManoDerecha

Datos o Características-Numero de dedos-Color de la Mano-Tamaño-FuerzaRutinas o Acciones-Abrir Mano-Mover Mano-Mover Dedos-Sujetar algo-Hacer Puño-Mover Puño-Cerrar ManoRelaciones con otros objetos-Puede ser de una Persona-Puede ser de un robot-Es parecida a mano izquierda-Se puede relacionar con un pie

Page 8: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

LE, EI, Profesor Ramón Castro Liceaga

Diagrama de la Clase “ManoDerecha”

Mano

-Numero de dedos-Color de la Mano-Tamaño-Fuerza

-Abrir Mano()-Mover Mano()-Mover Dedos()-Sujetar algo()-Hacer Puño()-Mover Puño()-Cerrar Mano()

Page 9: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

LE, EI, Profesor Ramón Castro Liceaga

Programación de una clase en Java..

File, New Project…

Page 10: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

LE, EI, Profesor Ramón Castro Liceaga

Programación de una clase en Java..

Java, Java Application, Next>…

Page 11: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

LE, EI, Profesor Ramón Castro Liceaga

Programación de una clase en Java..

Create Main Class: MiMano, Finish…se crea el proyecto

Page 12: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

LE, EI, Profesor Ramón Castro Liceaga

Programación de una clase en Java..

Crea la clase principal MiMano…Tenemos que crear la clase “Mano”

Page 13: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

LE, EI, Profesor Ramón Castro Liceaga

Programación de una clase en Java..

En el paquete “mimano”, new, java class para crear la clase “Mano”

Page 14: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

LE, EI, Profesor Ramón Castro Liceaga

Programación de una clase en Java..

En la siguiente pantalla poner en Class Name Mano y click en Finish

Page 15: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

LE, EI, Profesor Ramón Castro Liceaga

Programación de una clase en Java..

En la siguiente pantalla poner en Class Name Mano y click en Finish

Page 16: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

LE, EI, Profesor Ramón Castro Liceaga

Programación de una clase en Java..

Crea la clase publica Mano y ya podemos crear objetos

Page 17: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

LE, EI, Profesor Ramón Castro Liceaga

Programación de una clase en Java..

Primero creamos el constructor de objetos mismo nombre de la clase

Page 18: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

LE, EI, Profesor Ramón Castro Liceaga

Después pondremos los métodos o acciones:AbrirMano,MoverMano,MoverDedos,SujetarAlgo,HacerPuño,MoverPuño y CerrarMano

Page 19: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

LE, EI, Profesor Ramón Castro Liceaga

Después pondremos los métodos o acciones:AbrirMano,MoverMano,MoverDedos,SujetarAlgo,HacerPuño,MoverPuño y CerrarMano

Page 20: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

LE, EI, Profesor Ramón Castro Liceaga

Pasamos a la clase principal MiMano para crear el objeto ManoDerecha y tenga vida.

Page 21: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

LE, EI, Profesor Ramón Castro Liceaga

Pasamos a la clase Mano para inicializar el constructor del objeto.

Page 22: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

LE, EI, Profesor Ramón Castro Liceaga

Para ejecutar el programa desde la clase main “MiMano”. Que indica que se ha construido el objeto Mano Derecha.

Page 23: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

LE, EI, Profesor Ramón Castro Liceaga

Podemos ejecutar cualquier acción de la ManoDerecha de la siguiente manera.

Page 24: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

LE, EI, Profesor Ramón Castro Liceaga

Tarea: Completa el Programa agregando los objetos Mano Izquierda y Mano Robot…!

Page 25: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

Atributos

• Los atributos son adjetivos ( palabra clave que acompaña al sustantivo para determinarlo o calificarlo; lo que expresa sus características o propiedades atribuidas a un sustantivo, ya sean concretas (el articulo ligero, el articulo grande) o ya sean abstractas (el articulo calculado, el articulo dibujado, etc) serán los atributos de clases que se vas a considerar en la programación orientada a objetos.

Page 26: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

Atributos

• Los atributos son las características individuales que diferencian un objeto de otro y determinan su apariencia, estado u otras cualidades. •Los atributos se guardan en variables denominadas de instancia, y cada objeto particular puede tener valores distintos para estas variables.•Las variables de instancia también se les conoce como datos miembros, son declaradas en la clase pero sus valores son fijados y cambiados en el objeto..

Page 27: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

Métodos

• Los métodos son los algoritmos asociados a un objeto y acciones o comportamiento de la clase.

Page 28: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

Métodos y los verbos

• Cuando hablamos de verbos o acciones hablamos también de métodos

•Para desarrollar los métodos se recomienda hacer una lista de verbos (actividades humanas del sistema) que contienen las relaciones que tendrán los objetos y las clases entre si

Page 29: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

Métodos y comportamiento de los objetos

• El comportamiento de los objetos de una clase se implementa mediante funciones miembro o métodos. Un método es un conjunto de instrucciones que realizan una determinada tarea y son similares a las funciones o procedimientos de los lenguajes estructurados como en C o C++.

Page 30: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

Métodos de instancia y clase

• Del mismo modo que hay variables de instancia y de clase, también hay métodos de instancia y de clase. En el primer caso, un objeto llama a un método para realizar una determinada tarea, en el segundo, el método se llama desde la propia clase.

Page 31: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

Métodos y atributos (nivel de análisis UML)

UML

Nombre de la Clase

Atributos

Métodos u Operaciones

Persona

Nombre,Edad..etc

Lee y muestraNombre, edad

JAVA

Page 32: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

EI, Profesor Ramón Castro Liceaga

Atributos y Métodos

•Atributos o Propiedades.- Características individuales que definen y diferencian a un objeto de otro (Nombre, edad, color, peso, etc).

• Métodos. Controlan el comportamiento de la clase. Son funciones que especifican las acciones de los objetos.

Ejem.-

Void MuestraPersona() {System.out.print(“Hola, mi nombre es:”+m_sNombre);System.out.println(“Tengo”+m_iEdad+”años”);

}

Page 33: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

Sobrecarga de Métodos

•Un método sobrecargado se utiliza para reutilizar el nombre de un método pero con diferentes argumentos (opcionalmente un tipo diferente de retorno). Las reglas para sobrecargar un método son las siguientes:

+ Los métodos sobrecargados deben de cambiar la lista de argumentos.+ Pueden cambiar el tipo de retorno.+ Pueden cambiar el modificador de acceso.+ Pueden declarar nuevas o más amplias excepciones.+ Un método puede ser sobrecargado en la misma clase o en una subclase.

Ejemplo:

public void cambiarTamano(int tamano, String nombre, float patron){ }

Los siguientes métodos son sobrecargas legales del método cambiarTamano():

public void cambiarTamano(int tamano, String nombre){}public int cambiarTamano(int tamano, float patron){}

Page 34: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

MensajeMensaje

• Es una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó.

Page 35: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

Encapsulación: Protección de variables y métodos accesos

• Para implementar el encapsulamiento de las clases Java utiliza:

public Si un método o variable se define así, será accesible para cualquier otra clase (cualquiera accesarla) package Solo el que especifique el paquete de clases de que trate private Solo son visibles en la propia clase protected Publico para sus clases derivadas unicamente Estos especificadores de acceso preceden a las definiciones de los métodos y variables de las clases

Page 36: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

EI, Profesor Ramón Castro Liceaga

Maquina Virtual de Java (MVJ)

• La Máquina Virtual Java es el núcleo del lenguaje de programación Java. • Siempre que se corre un programa Java, las instrucciones que lo componen no son ejecutadas directamente por el hardware sobre el que subyace, sino que son pasadas a un elemento de software intermedio, que es el encargado de que las instrucciones sean ejecutadas por el hardware. Es decir, el código Java no se ejecuta directamente sobre un procesador físico, sino sobre un procesador virtual Java

Page 37: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

Constructores.

Un Constructor es una función o método, de las clases, la cual es llamada automáticamente cuando se crea un objeto de esa clase.

Por ser métodos, los constructores también aceptan parámetros. Cuando en una clase no especificamos ningún tipo de constructor, el compilador añade uno público por omisión sin parámetros, el cual NO hace nada.

Características de los Constructores

1. Un constructor, tiene el mismo nombre de la clase a la cual pertenece. 2. No puede ser Heredado. 3. No retorna ningún valor (Ni void), por lo cual no debe especificarse ningún tipo de dato. 4. Debe declararse como public, sólo en casos realmente extraordinarios será de otro tipo.

Supongamos una clase llamada Datos

public class Datos { //declaracion de atributos public Datos(); //constructor sin parametros public Datos(int Edad) {//Constructor con parámetros EdadM=Edad; } }

Page 38: LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) CLASES Y OBJETOS

Destructores: Liberación automática de memoria en Java

• Java no necesita destructores

• Cuando una porción de memoria ya no se esta utilizando por el programa, el sistema automáticamente la devuelve.