Вы находитесь на странице: 1из 28

FACULTAD DE INGENIERA INDUSTRIAL Y DE SISTEMAS

Lenguaje de Programacin Estructurada


MSc. Daniel Alejandro Yucra Sotomayor E-mail: daniel@agenciati.com

Clases y Objetos

Contenido
______________________________________________________________________________________

1. Justificacin POO 2. Clases 3. Ejemplo de Objetos y Clases 4. Diferencia clase y objeto 5. Caractersticas de las clases 6. Definicin de las clases 7. Determinacin de la Clase CPersona 8. Modificadores de la Clase 9. Variables, objetos y referencias 10. Control de acceso a las variables y mtodos 11. Creacin de instancias o ejemplares 12. Acceso a los atributos de un objeto 13. Declaracin de mtodos 14. Llamada a mtodos 15. Contructores 16. Representacin de Clases, objetos, mtodos y atributos

1. Justificacin POO
______________________________________________________________________________________

Permiten mantener los programas Fcil de agregar nuevas caractersticas al programa Se pueden crear clases para que se puedan reutilizar La POO es una tcnica de programacin que permite ver los conceptos del mundo real como una coleccin de objetos. Estas sesiones son de fundamentos a la POO.

2. Clases
______________________________________________________________________________________

Es la unidad fundamental de programacin en Java es la Clase Un programa Java est formado por un conjunto de clases Una clase es una plantilla que describe un conjunto de objetos con atributos y comportamiento similares Un programa Java en ejecucin crea y manipula (mediante llamadas a mtodos) objetos concretos (instancias) Cada objeto es un ejemplar de una clase Cuando se invoca un mtodo de un objeto, se mira en el cdigo de su clase las acciones a ejecutar

3. Ejemplo de Objetos y Clases


______________________________________________________________________________________

Empresa de prendas de vestir. Podemos encontrar clientes, proveedores, trabajadores, vendedores y empleados. Adems se manejan documentos como: Facturas, Boletas de venta, Guas de remisin, cuando se compran productos a los proveedores. Adems se producen productos como: camisas, pantalones, sacos de diferentes modelos tallas y colores. En resumen la informacin que maneja la empresa es compleja y esta informacin es para introducirnos a los conceptos de clases y objetos.

3. Ejemplo de Objetos y Clases


______________________________________________________________________________________

Determinar los objetos del ejemplo y a partir de ello construir el sistema Objetos del sistema propuesto: - Cliente - Producto - Proveedor - Factura, etc. Qu es un objeto? Un objeto es como una entidad que posee atributos y un conjunto de mtodos que actan sobre dichos atributos

3. Ejemplo de Objetos y Clases


______________________________________________________________________________________

Un cliente posee: Nombre o razn social Direccin RUC Telfono asignarCredito() obtenerListado() modificarDatos()

ATRIBUTOS

METODOS

4. Diferencia clase y objeto


______________________________________________________________________________________

Una clase es una generalizacin de un tipo especfico de objetos. Cuando se crea una aplicacin se definen clases Las clases se ven como plantillas para multiples objetos con caractersticas similares. Las clases se pueden utilizar como un tipo de dato referenciado. Entonces el problema consiste en determinar las CLASES del sistema y a partir de ellas crear los OBJETOS o crear SUBCLASES utilizando mecanismos de herencia.

5. Caractersticas de las Clases


______________________________________________________________________________________

Una definicin de clase comprende: Cabecera Campos o atributos: Variables Estado del objeto Constantes Mtodos: Funciones Comportamiento Constructores Bloques de inicializacin static Finalizador

6. Definicin de las Clases


______________________________________________________________________________________

[Modificadores] class NombreClase [extends SuperClase] { // definicin de los atributos de la clase tipo1 identificador1; tipo2 identificador2; .. // definicin de los mtodos de la clase tipoDevuelto nombreMetodo1 (listaParametros) { //instrucciones del mtodo1 } tipoDevuelto nombreMetodo2 (listaParametros) { //instrucciones del mtodo2 } .. }
Algunos mtodos no necesitan parametros, los que necesitan debe definir con el tipo void

7. Determinacin de la Clase CPersona


______________________________________________________________________________________

Del ejemplo planteado los objetos trabajadores de planta, vendedores y empleados tienen algo en comn: nombres, apellido-paterno, apellido-materno, direccin. Con esas caractersticas es posible crear un clase denominada CPersona que tenga estos atributos en comn que comparten los diferentes objetos. Los mtodos sern las funcionalidades de la clase, ah se escribe el cdigo. Los mtodos de la clase Cpersona: obtenerNombre() obtenerAPaterno() obtenerAMaterno() obtenerNombreCompleto() obtenerListado()

7. Determinacin de la Clase CPersona


______________________________________________________________________________________

Sintaxis ms simple: class nombreClase { //.. // cuerpo de la clase //.. }

7. Determinacin de la Clase CPersona


______________________________________________________________________________________

Sintaxis ms simple: class CPersona { private String nombre; private String apPaterno; private String apMaterno;

- La clase contiene 3 variables - La clase contiene 2 mtodos - Void y String son tipos de datos para mtodos

public void asignarNombre(String nuevoNombre) { nombre = nuevoNombre; } public String obtenerNombre() { return nombre; } }

7. Determinacin de la Clase CPersona


______________________________________________________________________________________

1. CPersona empleado1; Permite crear una variable denominada empleado1 del tipo Cpersona Cpersona es la clase creada en el paquete modelo de la aplicacin. Para poder utilizar se debe importar lo que permite declarar variables del tipo Cpersona. 2. empleado1 = new Cpersona(); Esta lnea permite utilizar el operador new. Este operador permite crear un nuevo objeto. Cuando se utiliza el operador new se crea una nueva instancia de la clase especificada y se le asigna memoria. Se crea el objeto empleado1 y esto se realiza invocando el mtodo que tiene el mismo nombre que la clase, Cpersona(). Este mtodo es especial denominado constructor

7. Determinacin de la Clase CPersona


______________________________________________________________________________________

3. empleado1.asignarNombre(Juan); Como ya existe objeto empleado1, ahora es posible utilizar sus mtodos. En este caso se invoca al mtodo asignarNombre() Empleado1.asignarNombre(Juan); Public void asignarNombre(String nuevoNombre) { Nombre = nuevoNombre; }

7. Determinacin de la Clase CPersona


______________________________________________________________________________________

4. System.out.println(empleado1.obtenerNombre() El mtodo obtenerNombre() lo que realiza es devolver el contenido de la variable privada nombre. El efecto de la intruccin System.out.println(), imprime en pantalla el contenido de la variable privada nombre, en este caso Juan.

8. Modificadores de la Clase
______________________________________________________________________________________

Modificadores: public class NombreClase // visible fuera del paquete Normalmente la clase se almacena en un fichero NombreClase.java En un fichero .java puede haber como mucho una clase public class C extends superclase // la clase hereda de otra Slo herencia simple (una sla superclase) Si no aparece extends la clase definida hereda (es una subclase) de un objeto general del sistema llamada Object

9. Variables, objetos y referencias


______________________________________________________________________________________

Una variable de un determinado tipo simple proporcion Capacidad para almacenar un valor simple Un conjunto predifinido de operadores Un objeto de una determinada clase proporciona Capacidad para almacenar diversos valores (atributos) Define su propio conjunto de mtodos para operar sobre las instancias o ejemplares de esa clase Cuando se declara un objeto de una clase se crea una referencia a una instancia de dicha clase Inicialmente toma el valor null porque no existe objeto al que referirse No son punteros con los que se pueda trabajar directamente int num = 5; Rectangulo rect; num 5 rect null

10. Control de acceso a las variables y mtodos


______________________________________________________________________________________

private: slo pueden ser accedidos desde dentro de la clase (no desde las subclases) protected: slo pueden ser accedidos dentro de la clase, las subclases de la clase y las clases del paquete public: cualquier clase desde cualquier lugar puede acceder a las variables y mtodos friendly o package (opcin por defecto si no se indica nada): son accesibles por todas las clases dentro del mismo paquete, pero no por los externos al paquete (es como si fuese public, pero slo dentro del package)

10. Control de acceso a las variables y mtodos


______________________________________________________________________________________

11. Creacin de instancias o ejemplares


______________________________________________________________________________________

Operador new Crea una instancia o ejemplar de la clase indicada y devuelve una referencia a dicho objeto Se reserva espacio de memoria para los datos del objeto Un ejemplar es una copia individual de la plantilla de la clase que tiene su propio conjunto de datos
int num = 5; // crea una referencia Rectangulo rect; // reserva la memoria rect = new Rectangulo(); Rectangulo otroRect; otroRect = rect; // otroRect se refiere al mismo // rectangulo que rect

12. Acceso a los atributos de un objeto


______________________________________________________________________________________

Desde un objeto se puede acceder a los atributos o miembros con la siguiente sintaxis referenciaObjeto.atributo;
public class Rectangulo { int x; int y; int ancho; int alto; //faltan las funciones miembro public static void main(String args[]) { Rectangulo rect; rect = new Rectangulo(); rect.x = 5; rect.y = 7; rect.ancho = 4; rect.alto = 3; System.out.println("x = " + rect.x + " y = " + rect.y); System.out.println("ancho = " + rect.ancho + " alto = " + rect.alto); } }

13. Declaracin de mtodos


______________________________________________________________________________________

Funciones declaradas en la clase y que determinan su comportamiento


Sintaxis: tipoDevuelto nombreMetodo (listaParametros) { //instrucciones del mtodo }

// calcula la superficie y la devuelve como un nmero entero int calcularSuperficie(){ int area; area = ancho * alto; return area; }

// muestra los valores por pantalla pero no devuelve nada void mostrarValores(){ System.out.println( "x = " + x + " y = " + y ); System.out.println( "ancho = " + ancho + " alto = " + alto ); }

14. Llamada a mtodos


______________________________________________________________________________________

La invocacin a los mtodos desde una instancia se hace mediante el operador de acceso ( . ) - Los argumentos de tipos simples se pasan por valor - Los objetos se pasan por referencia
public class Rectangulo { int x; .. int calcularSuperficie(){ .... } void mostrarValores(){.} public static void main(String args[ ]) { Rectangulo rect; rect = new Rectangulo(); rect.x = 5; rect.y = 7; rect.ancho = 4; rect.alto = 3; int area = rect.calcularSuperficie(); rect.mostrarValores(); System.out.println( "Superficie: " + area ); System.out.println( "x = " + rect.x + " y = " + rect.y ); System.out.println( "ancho = " + rect.ancho + " alto = " + rect.alto ); } }

15. Contructores
______________________________________________________________________________________

Mtodo que inicializa el objeto en su creacin Se llama automticamente cuando se crea un objeto Su nombre es igual que el de la clase y no tiene tipo de retorno Java proporciona un constructor sin parmetros por defecto que deja de estar disponible cuando se aade algn constructor

public class Rectangulo{ int x; .... // constructor public Rectangulo(int x1, int y1, int w, int h){ x=x1; y=y1; ancho=w; alto=h; } public static void main(String args[ ]) { .... Rectangulo rect; rect = new Rectangulo(5, 7, 4, 3); int area = rect.calcularSuperficie(); rect.mostrarValores(); System.out.println( "Superficie: " + area ); . } }

16. Representacin de Clases, objetos, mtodos y atributos

16. Representacin de Clases, objetos, mtodos y atributos

Вам также может понравиться