FUNDAMENTOS DE SISTEMAS DISTRIBUIDOS Departament d’Arquitectura de Computadors INTRODUCCIÓN A PROGRAMACIÓN ORIENTADA A OBJETOS Programación orientada a objetos (POO) Programación estructurada tradicional: Los datos y los procedimientos están separados y sin relación Programación orientada a objetos: Pensar cómo en la vida real (datos + procedimientos juntos) • Coche: elemento principal • Características: color, modelo y marca • Funcionalidades: arrancar, parar, aparcar… Expresa un programa como un conjunto de objetos, que colaboran entre ellos para realizar tareas. Permite mantener, reutilizar y programar aplicaciones fácilmente. La POO es útil en cualquier sistema que se pueda “modelar” en componentes más o menos independientes. v.2007.02 FUNDAMENTOS DE SISTEMAS DISTRIBUIDOS Departament d’Arquitectura de Computadors - UPC 2 Programación orientada a objetos (POO) Un objeto es básicamente: – Los datos (variables) que representan una “entidad” en el mundo real. – Las funciones que actúan sobre estos datos. Los objetos son ejemplares de una clase Clases: son declaraciones (definiciones) genéricas de objetos – Propiedades de una clase: • Atributos / Propiedades / Variables – Métodos de una clase • Funciones asociadas a los objetos Ejemplo de objeto de la clase coche: – Coche miCoche=new Coche( ); Con new creamos un objeto (una instancia) de la clase que le sigue. FUNDAMENTOS DE SISTEMAS DISTRIBUIDOS Departament d’Arquitectura de Computadors - UPC v.2007.02 3 Un ejemplo de clase: Coche Nombre del tipo de objeto (clase) Datos (atributos) Coche String marca String modelo Funciones (métodos) void mostrarCoche() v.2007.02 FUNDAMENTOS DE SISTEMAS DISTRIBUIDOS Departament d’Arquitectura de Computadors - UPC 4 Un ejemplo de clase: Coche.java public class Coche { String marca = “”; String modelo = “”; public void mostrarCoche() { System.out.println(“Marca: "+marca); System.out.println(“Modelo: "+modelo); } } FUNDAMENTOS DE SISTEMAS DISTRIBUIDOS Departament d’Arquitectura de Computadors - UPC v.2007.02 5 Otro ejemplo de clase: Persona Nombre del tipo de objeto (clase) Datos (atributos) Persona int dni Funciones (métodos) int obtenerDni() void modificarDni(int dni) void mostrarPorPantalla() v.2007.02 FUNDAMENTOS DE SISTEMAS DISTRIBUIDOS Departament d’Arquitectura de Computadors - UPC 6 Otro ejemplo de clase: Persona.java public class Persona { int dni; public Persona(){ this.dni = -1; } public int obtenerDni() { return dni; } public void modificarDni(int dni) { this.dni=dni; } public void mostrarPorPantalla() { System.out.println("DNI: "+dni); } } FUNDAMENTOS DE SISTEMAS DISTRIBUIDOS Departament d’Arquitectura de Computadors - UPC v.2007.02 7 Otro ejemplo de clase: MiObjetoCoche.java public class MiObjetoCoche { public static void main(String args[]){ Coche miCoche = new Coche(); miCoche.mostrarCoche(); } } v.2007.02 FUNDAMENTOS DE SISTEMAS DISTRIBUIDOS Departament d’Arquitectura de Computadors - UPC 8 Otro ejemplo de clase: MiObjetoPersona.java public class MiObjetoPersona { public static void main(String args[]){ Persona pablo = new Persona(); // Acceso a atributos pablo.dni = 12341234; // Acceso a métodos pablo.obtenerDni(); pablo.modificarDni(12345678); pablo.mostrarPorPantalla(); } } v.2007.02 FUNDAMENTOS DE SISTEMAS DISTRIBUIDOS Departament d’Arquitectura de Computadors - UPC 9