POO Pildoras

Embed Size (px)

DESCRIPTION

hrfdhg

Citation preview

el metodo, es como darle el estado inicial(valores a sus atributos) del objetominuto 23public class Coche{//siempre mayusint ruedas;int largo;int ancho;int motor;int peso;String color;int peso_total;boolean asientos_cuero,climatizador;public Coche(){// constructorruedas=4;largo=2000;ancho=300;motor=1600;peso=500;}asta aqui, la plataforma", ya esta hecha,las caracteristicas basicas, por ejem}otra clase:public class Uso_Coche{psvm(){Coche renault=new Coche();//instancia de claseSystem.out.println("el coche tiene "+renault.ruedas+" ruedas");}-------fin clas y objetos---------------------------------------------------------------------modularizacion y encapsulamiento1.- dividir un program en trozos, en ves de elaborar un gran codigo, dividir en clasesen el ejm anterior, las 2 clases, es ejem de modularizacion, uno depende de otra.se dividio en 2 partes2.- la encapsulacion: cada variablepor ejem de una clase, se modificara alli mismo, no en otro lado, si en constructor, tieen su valor inicial, solo se modificara, en esa misma clase, no en otra.Para no modificar la spropiedades o variables, s el pone private en la clase correspondiente de esa var., se podra invocar ese valor, pero NO modificarlo en otra clase.------------fin----------encapsulacion-modif propiedades, setter y getters----------------------------la forma de comunicarse las clases, es a traves de metodosse usa getters y setter por ejem.getter:para devolver valor de las propiedades del objetopublic String dime_largo(){//GETTER:--string , pues solo pa mostrarloreturn "el largo del coche es "+ largo;}luego en el main:sout(renault.dime_largo());//muestra el largoSETTER:modifica el valor de las propiedadesse usa el void.public void establece(){//settercolor="azul";}public string dime_color(){//otro getterreturn "el color del coche es" +color;}}-------paso de parametros-----------------a la vez, q llams a un metodo,le pasas parametros,para q opereen setter:public void establece_color(string color_coche){//settercolor=color_coche;}en main va:micoche.establece_color("amarillo");el this, va hacer referencia a la variable, pero de la clase misma:this.asientos_cuero=asientos_cuero;pero esto es error!!,porq el this, es un boolean, el otro es string,entonces en el metodo:public void configurasientos(string asientos_cuero){//setterif(asientos_cuero=="si"){this.asientos_cuero=true;}else{this.asientos_cuero=false;}}// el getter, q nos devuelve el dato:public string dime_asientos(){if(asientos_cuero==true){return "el coche tiene asientos de cuero"}else{return "el coche tiene asientos de serie";}}-----ejem empleado---------------GregorianCalendar,esta en la apicrea fecha con el dia,mes ao(definido en constructor)herencia:si queremos crear jefes nuevos?las secretarias, la sordenanzas, no tienen incentivos, y los jefes SI.lo mas adecuado es crear clase nueva para diferencia los jefes y empleadosjefe, tiene q heredar de la clase empleado!!se tiene q preguntar:un jefe ES UN empleado?, SIentonces jefe es subclasepolimorfismo:un objeto puede comportar de diferente forma dependiendo del contexto.las variables objeto son polimorficasmetodo abstracto: debe ir el public abstractMODIFICADORES DE ACCESO:1.-PUBLIC, funciona en CLASE,PACKAGE,SUBCLASE,TODOS(etc)2.-PORTECTED:CLASE,PACKAGE,SUBCLASE(aunq sean de package diferentes).3.-private:funcona dentro de clasepor defecto: en clase,package.-------interfaces-----conjunto de directrices q deben cumplir las claseslos directrices son metodos:cuando una CLASE implementa!! un interfaz,debe tener esas directrices alli mismalos interfaces establecen los comportamiento(metodos) que haran las clasesla interfaz no se instanciasus metodos son public y abstract no se usara!.tiene constantes y no variablesla clase abstracta tiene metodo no abstractto y SIla sinterfaces si tiene abstract--------video 50-temas:instanceof y principio_sustitucion-------instanceof ver con un if si es instancia si o noEmpleado director=new jefatura("sandra",..,..)SE PUEDE HACER ESTO:con sustitucion:Comparable ejemplo=new Empleado("elisabeth",95000,2011,06,07); el comparable esta cn implements ,entonces se puede hacer crear objeto :"ejemplo"------video51:crearinterfaz:trabajadores------esta interfaz se implmenta en empleado, sirve para dar bonus a todos los empleados y sus herederos tmb.porque usar clases internas?--para acceder a campos privados de una clase desde otra clas--para ocultar una clase de otras pertenecientes al mismo paq--para gestionar eventos y retrollamadas--para cuando solo uan clase debe acceder a los campos de ejemplar de otra clase.--> clases internas locales:una clase dentro de un metodo.es necesario usarlo cuando:--cuando solo se va utilizar(instanciar),la clase interna una vez.(con el objetivo de simplificar mas el codigo).su ambito queda restringido al metodo donde son declaradasVENTAJAS:--->estan encapsuladas.Ni La clase a la q pertenece puede acceder a ella.Tan solo a ella el metodo dond estan declaradas--codigo mas simpleno lleva el modif de acceso como el public ni private, solo el defecto.el codig de clase externa no puede entrar a esa clase intern localpero esa clase local, puede acceder a clase externa y las variables del metodo afuera.-------------------------------------------------------SWING:video 55trae las clas, para hacer graficas, esta basado en el paq AWT.el AWT delega creacion de interfaz al SO huesped(win,macintosh,etc)en cambio swing las dibuja sobre una ventanaes hacerlo desde codigo, y cuesta masel AWT tiene el class Frame, y hereda a la clase:JFrame de swing del paquete javax.swingel frame=ventanacaracteristicas:nacen invisibles.nacen con tamao cero pixelconviene decir q deben hacer cuando se cierren.q hacer cuando ese marco se cierra.