semana_ii

32
POO con Java POO con Java Profesor Ing. Euler Tito Chura [email protected] ESCUELA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA 2 UNIVERSIDAD JOSE CARLOS MARIATEGUI UNIVERSIDAD JOSE CARLOS MARIATEGUI

Upload: julio-cesar-corasi-flores

Post on 13-Sep-2015

219 views

Category:

Documents


5 download

DESCRIPTION

protitulo ii

TRANSCRIPT

  • POO con JavaPOO con JavaProfesor Ing. Euler Tito Chura

    [email protected]

    ESCUELA DE INGENIERA DE SISTEMAS E INFORMTICA

    2

    UNIVERSIDAD JOSE CARLOS MARIATEGUIUNIVERSIDAD JOSE CARLOS MARIATEGUI

  • Ing. Euler Tito Chura

    PROGRAMACIN ORIENTADA A OBJETOS (POO)

  • Ing. Euler Tito Chura

    INTRODUCCIN

    La programacin orientada a objetos (POO) divide programas grandes y complejos en unidades semi-autnomas que son fcilmente identificables.Se fundamentan en el lema: Divide y vencers.Los objetos funcionan de la siguiente manera: ocultan los detalles de su implementacin al resto del programa. Lo nico importante es su funcionalidad.

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    INTRODUCCIN (..continuacin)

    En este enfoque interesa el qu se hace mas no el cmo se hace.Los objetos slo presentan una interfaz (que no necesariamente es grfica) para comunicar mensajes.La interfaz viene definida por un mtodo que pasa mensajes a los atributos de una clase.

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    CLASES

    Son plantillas para construir o fabricar objetos.La definicin de una clase incluye las especificaciones de qu atributos y mtodosvan a formar parte de la clase, y por consiguiente, de los objetos.

    Ejm.: si la clase es un molde para fabricar chips, los objetos que se crean a partir de ellas sern chips.

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    CLASES (...continuacin)

    La definicin de una clase en C++ sera:

    class Alumno {//miembros datos//funciones miembro}

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    CLASES (...continuacin)

    La definicin de una clase en Java sera:

    public class Alumno {//atributos//mtodos

    }

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    ATRIBUTOS

    Son las variables que forman parte de la definicin de una clase y que van a servir para almacenar los datos que manejen los objetos creados a partir de esa clase.En el caso del Alumno, los atributos seran: nombre, edad y cdigo.

    private String nombre, codigo;private int edad;

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    ATRIBUTOS

    En C++ se denominaran miembros dato y se declararan as:

    char *nombre, *codigo;int edad;

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    MTODOS

    Son funciones o procedimientos implementados en la clase y cuya finalidad es manipular los atributos.Ejm: si quisiera establecer el nombre de mi Alumno usara el mtodo setNombre:

    public void setNombre(String nom) {nombre = nom;

    }

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    MTODOS

    En C++ se denominaran funciones miembro y se declararan as:

    void setNombre(char *nom) {nombre = new char[strlen(nom)+1];strcpy(nombre,nom);

    }

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    MTODOS (...continuacin)

    Luego, la clase quedara as:

    //declaracin de la clasepublic class Alumno {

    private String nombre, codigo;private int edad;publicvoid setNombre(String nom)

    { nombre = nom; };

    }

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    OBJETOS

    Son instancias de una clase, as como una variable es una instancia de un tipo de dato.Los objetos presentan tres caractersticas:

    PROGRAMACIN ORIENTADA A OBJETOS

    OBJETOS

  • Ing. Euler Tito Chura

    OBJETOS (...continuacin)

    Los objetos contienen miembros dato y funciones miembro que actan sobre esos atributos. (C++)Los objetos encapsulan sus datos y stos slo pueden ser accesados y manipulados a travs de las funciones miembro adecuados.Pueden crearse muchos objetos a partir de una clase, siendo cada objeto diferente (sus miembros dato slo pertenecen a ese objeto).

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    OBJETOS (...continuacin)

    En JAVA:

    z Los miembros dato se denominan atributos

    z Las funciones miembro, mtodos.

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    OBJETOS (...continuacin)

    Creamos en C++C++ dos objetos de la clase Alumno:

    Alumno alu_1, alu_2;

    Ntese la similitud con la declaracin formal de variables que se conoce:

    tipo_de_dato nombre_de_identificador

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    OBJETOS (...continuacin)

    Declaramos en JavaJava dos objetos de la clase Alumno:

    Alumno alu_1, alu_2;

    En Java, esta operaciEn Java, esta operacin NO crea a los objetos.!n NO crea a los objetos.!

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    OBJETOS (...continuacin)

    Para crear los objetos:

    alu_1 = new Alumno();alu_2 = new Alumno();

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    RECORDAR!

    El operador new permite crear objetos.

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    OBJETOS (...continuacin)

    Encapsulamiento: los atributos y los mtodos forman una unidad nica. Los atributos estn ocultos y slo es posible accederlos mediante mtodos que actan sobre ellos.

    Herencia: permiten utilizar los mtodos de una clase base en una clase derivada.

    Polimorfismo: reaccionan con comportamientos diferentes ante idnticos mensajes.

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    MODIFICADORES DE ACCESO (JAVA)

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    CASO

    Se pretende desarrollar un programa que proporcione los atributos y mtodos para implementar una clase llamada Triangulo. A continuacin se presenta el desarrollo completo de la clase en Java.Notar con atencin la forma en que se construyen los mtodos, prestando especial inters a los parmetros pasados, as como a los valores de retorno.

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    DECLARACIN DE LA CLASE

    public class Triangulo {private double a, b, c;private double Area; }

    Consta de 4 atributos. Son los necesarios para continuar con la implementacin pedida.Ahora hay que implementar los mtodos.

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    MTODOS SIN VALOR DE RETORNO

    public void setLadoA(double A) { a=A;}

    public void setLadoB(double B) { b=B;}

    public void setLadoC(double C) { c=C;}

    public void setLados(double A, double B, double C) {a=A; b=B; c=C;}

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    MTODOS CON VALOR DE RETORNO

    public double getLadoA(){ return a; }

    public double getLadoB(){ return b; }

    public double getLadoC(){ return c; }

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    MTODOS CON VALOR DE RETORNO (...cont)

    public double calculaSemiPerimetro() { return ((a+b+c)/2); }

    public double calculaPerimetro() { return (a+b+c); }

    public double calculaArea() { double p = calculaSemiPerimetro();return Math.sqrt(p*(p-a)*(p-b)*(p-c));

    }

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    MTODOS CON VALOR DE RETORNO (...cont)

    public boolean esTriangulo(){

    if ((aa-b))

    return true;

    elsereturn false;

    }

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    INSTANCIACIN

    Ahora bien, mi nuevo objeto debe ser usado en el programa principal. Esto es, debo crear una instancia de la clase Triangulo.

    public static void main(String[] args) {

    Triangulo tri;tri = new Triangulo();// variablesdouble ladoA, ladoB, ladoC;double Area;

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    COMUNICACIN (PASO) DE MENSAJES

    Seguidamente invocamos a los mtodos del objeto creado.

    ladoA= 3;ladoB= 4;ladoC= 5;

    tri.setLadoA(ladoA);tri.setLadoB(ladoB);tri.setLadoC(ladoC);

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    COMUNICACIN (PASO) DE MENSAJES (...cont)

    if (tri.esTriangulo()) {Area = tri.calculaArea();System.out.println(El rea del tringulo es: + Area);}

    else {System.out.println( Error, los lados ingresados no

    forman un tringulo!);}

    return 0; }

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    COMUNICACIN (PASO) DE MENSAJES (...cont)

    Los objetos se comunican con el exterior por medio de mensajes, los cuales son pasados a travs de sus mtodos, que son los NICOS que pueden consultar/modificar los atributos privados.

    PROGRAMACIN ORIENTADA A OBJETOS

  • Ing. Euler Tito Chura

    GRACIAS POR SU ATENCIN

    Preguntas?

    POO con JavaPROGRAMACIN ORIENTADA A OBJETOS (POO)PROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSPROGRAMACIN ORIENTADA A OBJETOSGRACIAS POR SU ATENCINPreguntas?