Download Diapositiva 1 - Docencia FCA-UNAM

Document related concepts
no text concepts found
Transcript
UNIVERSIDAD LATINA (UNILA)
CLASES Y OBJETOS
LE, EI, Profesor Ramón Castro Liceaga
Definició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).
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
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
}
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.
EI, Profesor Ramón Castro Liceaga
• 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 ****");
}
}
Ejemplo de la clase “ManoDerecha”
Clase: Mano
Objeto: ManoDerecha
Datos o Características
- Numero de dedos
- Color de la Mano
- Tamaño
- Fuerza
Rutinas o Acciones
- Abrir Mano
- Mover Mano
- Mover Dedos
- Sujetar algo
- Hacer Puño
- Mover Puño
- Cerrar Mano
Relaciones con otros objetos
- Puede ser de una Persona
- Puede ser de un robot
- Es parecida a mano izquierda
- Se puede relacionar con un pie
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()
LE, EI, Profesor Ramón Castro Liceaga
Programación de una clase en Java..
File, New Project…
LE, EI, Profesor Ramón Castro Liceaga
Programación de una clase en Java..
Java, Java Application, Next>…
LE, EI, Profesor Ramón Castro Liceaga
Programación de una clase en Java..
Create Main Class: MiMano, Finish…se crea el proyecto
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”
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”
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
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
LE, EI, Profesor Ramón Castro Liceaga
Programación de una clase en Java..
Crea la clase publica Mano y ya podemos crear 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
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
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
LE, EI, Profesor Ramón Castro Liceaga
Pasamos a la clase principal MiMano para crear el objeto
ManoDerecha y tenga vida.
LE, EI, Profesor Ramón Castro Liceaga
Pasamos a la clase Mano para inicializar el constructor del objeto.
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.
LE, EI, Profesor Ramón Castro Liceaga
Podemos ejecutar cualquier acción de la ManoDerecha de la siguiente
manera.
LE, EI, Profesor Ramón Castro Liceaga
Tarea: Completa el Programa
agregando los objetos Mano Izquierda
y Mano Robot…!
LE, EI, Profesor Ramón Castro Liceaga
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.
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.
.
Métodos
• Los métodos son los algoritmos asociados a un objeto y
acciones o comportamiento de la clase.
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
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++.
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.
Métodos y atributos (nivel de análisis UML)
UML
Nombre de la Clase
Atributos
Métodos u
Operaciones
JAVA
Persona
Nombre,
Edad..etc
Lee y muestra
Nombre, edad
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”);
}
EI, Profesor Ramón Castro Liceaga
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){}
Mensaje
• 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ó.
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
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
EI, Profesor Ramón Castro Liceaga
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.
2.
3.
4.
Un constructor, tiene el mismo nombre de la clase a la cual pertenece.
No puede ser Heredado.
No retorna ningún valor (Ni void), por lo cual no debe especificarse ningún tipo de dato.
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();
public Datos(int Edad)
EdadM=Edad;
}
}
//constructor sin parametros
{//Constructor con parámetros
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.