Upload
julio-cesar-corasi-flores
View
219
Download
5
Embed Size (px)
DESCRIPTION
protitulo ii
Citation preview
POO con JavaPOO con JavaProfesor Ing. Euler Tito Chura
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?