Aprende JAVA

download Aprende JAVA

of 24

description

sssss

Transcript of Aprende JAVA

CaractersticasCompletamente orientado a objetos

Distribuido, buen tratamiento para redes, programacin para Internet

Seguro, ni tanto jejejejee, porque no permite desbordad la pila de ejecucin, corrupcin de memoria, leer o escibir ficheros sin permiso

Multihilo (Varios procesos en paralelo)

Neutro importante porque es multiplataforma

Adaptable,

Interpretado

Alto rendimiento

PATHest variable debe contener la ruta donde se encuentran las herramientas para la compilacin y ejecucin de aplicaciones CLASSPATHEs una variable de entorno donde deben contener las direcciones donde se encuentran las clases que van hacer utilizadas para el desarrollo de aplicaciones

Entender el concepto de COMPILACIN Y LUEGO EJECUCINCompila el codigo fuente a travs del paquete de herramientas necesarioas para la compilacin JDK luego si se establecio correctamente la variable de entorno PATH ejecutara el archivo desde la ruta de ubicacin del archivo, luego entra el classpath para utilizar las clases del codigo fuente y ejecutar el programa

IMPORTANTE!Los operadores de comparacin < > => 0)this.alto=alto;}public int getAlto(){return this.alto;}}

Siguiendo el convenio de que setNombre es para mtodos que permitan la escritura de un atributo y getNombre para lectura de un atributoel puntero this se utliliza en el interior de una clase para invocar a mtodos y atributos del propio objeto, solo ser necesario usarlo cuando se quiera invocar un miembro del propio objeto u variables locales.

FACILIDAD DE MANTENIMIENTO DE LA CLASECreada la clase se opta por cambiar el valor de los atributos se podra solo modificar el cdgio de los mtodos de acceso y distribuir la nueva versin de la clase, sin que los programadores que la utilicen tengan que cambiar un solo cdigo en el main.

SOBRECARGA DE MTODOSEs utilizar mtodos con el mismo nombre pero ojo con diferentes parmetros estos mtodos pueden hacer lo mismo pero ellos van a recibir diferentes parmetros, los argumentos le permiten al compilador identificar cada mtodo

CONSTRUCTORESSe crea un constructor para poder dar valores iniciales a los atributos como ejemplo, por le momento no se mas aplicaciones, se utiliza para aadr tareas que deban realizarce en el momento de inicializar un objeto. Es importante que una clase tenga como mnimo un constructor, adems deber cumplr con las reglas que ya sabemos y si se sobrecarga deber cumplir las mismas reglas de sobrecarga, el uso de constructore puede reducir cdigo y si se dispone de muchos atributos se tendr dificultada para saber cual es el correcto.

Se puede decir que los lenguajes de programacin estn divididos en estos dos principales grupos los antiguos que son orientados a procedimientos y los actuales que son orientados a objetos, la diferencia entre estos dos lenguajes es que si un cdigo hecho por un programador y luego modificarlo por otro sera difcil, y la reutilizacin de cdigo o aplicaciones en otro parecido, nace la POO por un intento en simplificar el cdigo de programacin, lo que se trata es de orientar todo a objetos lo que nos rodea por lo que si se requiere modificar una funcin que haga otra tarea es simplemento modificar una clase para que siga funcionando correctamente Pilar Modularizacin ( varias clases que tiene caracterstica y mtodos)CLASEEs un modelo donde se redactan las caractersticas de un grupo de objetosEjemplo

USO DE LOS PAQUETES, permiten mejorar el almacenamiento del programa, en esos paquetes se guardan todas las clases usadas en el paqueteUSO DE CLASES EJEMPLOpackage POO;public class Coche {// Se especifican las caracteristicas comunes de los coches

int Ruedas=0; //Caracterstica comun las ruedas (todos)int Largo=0; // Caracteristica todos la tienenint Ancho=0; // otra caracteristica comunint Peso=0; // caracteristica comnint Motor=0; //caraacteristicas comunes

// Siguiente paso describir las caracteristicas, mediante un mtodo// Mtodo constructorSe usa este mtodo constructor que se encarga de dar un estado inicial a un objetopackage POO;

public class Uso_Coche {

public static void main(String[] args){Coche Renault=new Coche(); // Instanciar una clase }}Se crea una instancia llamada Renault que pertenece a la clase coche

CLASELa clase contiene todos los mtodos y caractersticas que van a exponer los objetos.

MODULARIZACIN Y ENCAPSULACINModularizacin Trata de dividir en trozos el programa, en vez de laborar un enorme programa trata de dividir en clases , estas clases estn conectadas entre si (GENERALMENTE NO SIEMPRE)

Importante la clase pblica es la que debe contener el MAIN las dems deben ser privadas o protegidas todo depende del programa, es decir si se tiene una clase principal que es comn para todos es debe ser pblicaEncapsulacinLas clases se interconectan en Java mediante Mtodos, cuando eso ocurre se debe utilizar el encapsulamiento Los mtodos de cada clases deben ser encapsulados cada clase cumple su funcin principal, es decir que tareas que solo se deben poder hacer dentro de la clase, mientras que otras cosas se puedan hacer de la clase principal. Hay datos que se deben encapsular y funciones tambinAhora se cean mtodos para que agreguen comportamientos a los objetos y puedan intercambiar estos entre si dentro de las clases

PAQUETESSe utiliza para dar mas orden al cdigo

METODOS Y CAMPOS o ATRIBUTOSLos mtodos definen el comportamiento de los objetos de una clase y usar campos y atributos para guardar el comportamiento del objeto (son variables )MTODOS ESTATICOSSe define a los mtodos estticos como metodos en comn puesto que no dependen de un objeto o una clase se los puede invocar sin necesidad de crear objetos por ejemplo, se tiene un mtodo genrico para un televisor obtenerprecio() cuya ejecucin generara el mismo resultado para cualquier objeto. Es decir existe un mtodo comn

Mtodo constructorsirve para darle un estado inicial a las clases ModularizacinConsiste en dividir el programa en clases aplicaciones complejas se reduzcan para poder depurar el error sera mas sencilloEncapsulacin Una vez creada la modularizacin las clases se podran comunicar entre si por medio de mtodos, es lo mas oblitorio encapzular, si se tiene una clase con tareas globales es decir que otras clases pueden para funcionar correctamente deben funcionar con los mtodos de otra clases es correcto, pero hasta cierto punto porque no es conveniente acceder a los mtodos de clases diferentes. Consisten en que la funcionalidad de cada clase se haga desde la propia clase, por lo tanto no es lgico modificar un valor desde otra clase teniendo un constructor con valores inicializados, por lo tanto se deben encapzular.Para ello se usa un modificador de accesoPRIVATE

MTODOSPermiten que las clases interacten entre si formando una unidad para que un programa funcioneMTODOS SETTERS Y GETTERSLo que se trata es que las clases no puedan modificar las funciones principales de las clases, pero si se comuniquen a travs de mtodos, para poder imprimirlas para ello los mtodos Setters y Getters (definidores y captadores respectivamente) Es decir de un setters se modifica el valor de na propiedad y de los getters se capta ese valor modificadoGetterssintxis: public dato a devolver nombre_mtodo() {fuente return}SettersUna vez teniendo las caractersticas comunes si es necesario se puede cambiar el valor de cada caracterstica en funcin de las caractersticas iniciales, a estas caractersticas se las llama cambiantes porque pueden modificarse dependiendo del requerimiento ( en pocas palabras modifica el valor de una propiedad)sintaxis: public void nombre del metodo(){}

setter solo modifica el dato, mientras que el getter solo muestra por lo tanto debe tener un return osea que debe devolver un valorGetter indicamos el tipo de valor que va a devolver con su respectivo returnSetter no devuelve dato por lo que lleva void solo modifica el dato Ahora lo que se debe hacer es instanciar un objeto para luego mostrar los setter primero porque son los que modifican el comportamiento del objeto luego los getter para poder mostrar la modificacin del objeto respecto a su comportamiento

IMPORTANTE PRIMERO DECLARAR CARACTERISTICAS COMUNES PARA TODAS LAS CLASES Y LEUGO LAS NO COMUNES PARA CADA UNA DE LAS CLASES

PASAR PARMETROS A UN MTODO

Consiste a la vez que se llama un mtodo se le pasa un parmetro o valor para que ese mtodo recoja el valor y opere con el Es importante crear funciones con parmetros para darle un ajuste determinado para poder modificar antes de mostrar los datos con eso se puede usar los atributos para modificarlos y darles un valor de retorno a los mtodos, para darle caracterizacin al objeto

NUNCA DEJAR CAMBIAR LAS VARIABLES O ARGUMENTOS DE UNA CLASE POR FAVOR !!!!!!!IMPORTANTE LAS CADENAS DE CARACTERES SE COMPARAN CON LOS MTODOS EQUALS DE LA CLASE STRING

CREACIN DE OBJETOS EN VEZ DE TRABAJAR CON FICHEROS FUENTES, O TRABAJAR CON UN UNICO FICHERO FUENTE

Significa crear todas las clases en un solo fichero .java, es decir solo una clase ser publica las dems deben tener un modificador de acceso, no considero oportuno usar este mtodo.

Crear un constructor con parmetros1) debe tener un acceso publico para tener acceso a diferentes clases

Se puede ver en la api de java que muchas paqutes pueden tener el mismo nombre es decir sobrecargar paquetes

// clases predefinidasGregorianCalendarLo que hace es construir una fecha con el da mes y ao//cuando se va a verificar el paquete dispone de varios cosntructors como mtodos para su uso especfico para este ejemplo se uso el segundo cosntructor con un mtodo que es para obtener el tiempo

USO DE LA APISe puede observar para este caso que la clase usad tiene doble herencia, eso se puede verificar en la api en la parte superior de la descripcin de la claseEn el ejercicio se vio como almacenar datos, que es mejor por arrayDonde se podr almacenar los empleados y luego un bucle for para subir sueldo recorrer los empleados y consultarlos

en java no s posible crear array de varios datos, para ello se usa el concepto de clases que permite crear array de varios datos como el ejemplo con la primera posicin se da un array que recibe string enterios y tiempoUTILIZAR SIEMPRE SIEMPRE EL FOR EACH PARA USAR MATRICEZ REDUCE MUCHO EL CDIGO USARLOS NO OLVIDAR

USO DE LA COSNTANTE FINALSi es necesario que un dato se conserve constante y que no se pueda modificar una vez establecido su valor se deber optar por modificar la variable con el especificador FINAL para que bloquee cualquier cambio de la variable.

EXPLICACIN SOBRE LA PALABRA STATICEs aplicable tanto a constantes, mtodos y variables

Cuando nosotros creamos un constructor o un mtodo y se le asignan unos parmetros cada vez que se instancia un objeto el hace una copia de cada uno de esos mtodos y variables, entonces cada copia es diferente por ejemplo si se llama o crea un objeto llamado x y otro llamado y cada uno va a llamar a los diferentes mtodos y variables al llamarlos ser diferente el llamado para cada uno har una copia de cada mtodo y variables y clases, por lo tanto para que java asigne automticamente y correlativamente un numero o un ID se debe usar la palabra: STATICEnTONCES LO QUE SE har es que no halla una copia de cada variable solo exista una copia, tampoco es posible crear un objeto y llamar a un STATCI ees importante tener esa aclaracin.

Por ejemplo si tenemos la variable llamada ID, posteriormente instanciamos un objeto de la clase que alberga esa variable lo que hace esa clase es compartir la variable pero ojo, para usar la variable es necesario llamar a la clase, con los objetos no es posible llamar a las variables STATIC, lo mismo ocurre con los mtodos solo ser posible llamarlos con las clases ms no con los objetos es como una especia de encapsulacin.Otro ejemplo es el mtodo MAIN, este no actua sobre ning objeto.Otra consideracin es que los mtodos static no pueden acceder a los campos de las clases es decir a ninguna caracteristica de la clases (variables)

Consideraciones del mtodo Static- No actan sobre Objetos-No acceden a campos de ejemplares (variables/constntes declaradas en la clases) a menos que estas tambin sean static- Para llamarlos se utiliza el nombre de la clase. Mtodo.

SOBRECARGA DE CONSTRUCTORES

Ya sabemos que los constructores se encargan de darle un estado inicial a nuestros objetosEsto implica que una misma clase puede contener variosmtodos con el mismo nombre de la clase es decir varios constructores, se debe tener diferentes argumentos.Por ejemplo si creamos un objeto con un constructor lo obligaremos a que si el constructor tenga unos parmetros ese objeto tendra esos parmetros iniciales, para llamar a los constructores debemos saber cuantos parmetros y que parmetros necesitamos La sobrecarga de constructores simplemente sirve para dar diferentes comportamientos a los objetos (iniciales)Cmo eliminar los dems parmetros de los anteriores constructores que evidencian retornos nulos , para darle valores a esos parmetros de los otros constructores se procede as :usando el thisthis(los parmetros faltantes) lo que hace el this es llamar al otro constructor, entonces si existe varios constructores el this busca el constructor con los mismos numeros de parmetros.

HERENCIA (CARACTERSTICA MS IMPORTANTE EN POO)Heredar caracteristicas y mtodos de las diferentes clases ya creadas, por ejemplo si una clase COCHE tiene similares comportamientos se podra crear una Furgoneta que herede sus comportamiento por ejemplo las ruedas el color etc etc as como los diferentes mtodos, es decir se comparte algnas caractersticas

-PARA EVITAR QUE UNA CLASE SEA HEREDARA SE DEBERA CODIFICAR EL MODIFICADOR FINAL DELANTE DE LA CLASE

PUBLIC CLASS CLASE FINAL

PROBLEMA PARA LLAMAR A SUPERCLASES PARA HEREDAR (CONSTRUCTOR)

Cuando tenemos la herencia de una superclase, se sabe que se puede heredar los mtodos pero no tiene acceso a ello puesto que el modificador private no permite dicha accin, Cmo acceder a dichos datos desde la clase deriva ?, en el caso de que la superclase tenga mtodos set/get se pueden heredar pero para la inicializacin e atributos es decir CONSTRUCTORES se deber hacer una tcnica diferentesEJECUCIN DE CONSTRUCTORES CON LA HERENCIACmo norma general cada vez que se ejecute un programa con clases que heredan de una super clase, la creacin de un objeto antes de ejecutarse el constructor de dichas clases dervias se ejecutara el primero de la superclase.La instruccin SUPER(); llama ya sea implicitamente o explicitamente a la super clase para que se ejecute su primer constructor luego ejecutar los constructor de las subclases

Solucin para la falta de conocimiento (Ignorancia sobe el tema)Es necesario cuando se hereda de la superclase crear en la sublclase un constructor para despus llamar a super el constructor de la superclase, luego se crea un objeto para llamar a la clase del objeto.

MTODOS Y ATRIBUTOS PROTEGIDOSExiste un modificador que es aplicable a mtodos y atributos de una clase que se utiliza especialmente con la herencia. ProtectedProtected cualquier clase, mtodo y atributo que lo preceda de una clase tendr acceso desde cualquier otra subclase independientemente de los paquetes en que se encuentren

package varios;public class persona(){private Strinf Fecha_Nacimiento;public Persona(String F){Fecha_Naciemiento=F;}Protected int getEdad(){

//implementacin del mtodo}}

SI tendramos una subclase en otro paquete por eemplo package basico;import basico.Persona; asi se podra acceder al atributo protegido, solo se podra acceder a travs de la herencia mas no por una referencia de un objetop.getEdad() // saldra error de compilacionPARA ACCEDER A LOS METODOS DE LAS SUPERCLASES SE DEBE USAR LA PALABRA SUPER. NOMBRE DE LA CLASE.

SOBREESCRITURA Y SOBRECARGA EN HERENCIACuando se tiene un mtodo de una superclase y es necesario obtener una sublclase que necesita ese mtodo pero con nuevo codigo se puede hacer mediante la sobreescritura se debe seguir una nocin de reglas:- la sobreescritura de mtodos debe tener el mismo tipo de retorno, y los mismos parmetros

CLASES ABSTRACTAS //

es un tema muy relacionado con el POLIFORMISMO.Es decir que se declara un mtodo y queda definido es decir se especifica su nombre, parmetros, tipo de devolucin y retorno pero no contiene ningn cdigo alguno, a estos tipos de mtodos se les denomina abstraactos.

Entendido.... Un mtodo abstracto se caracteriza porque su cdigo est vacio es decir no tiene caractersticas, no tiene IMPLEMENTACIN, por lo tanto puede que las subclases hagan uso de es mtodo para sobreescribirlo y usarlo para suplir su tarea.Sobre este tema se debe tener las siguientes consideraciones:-Si tengo una clase abstracta esta puede tener tanto mtodos abstractos como no abstractos, el hecho de que tenga un solo mtodo abstracto la vuelve a la clase abstracta.-No es posible crear objetos de una clase abstracta, al haber mtodos que no estan definidos en la clase, no est permitido crear objetos por ella.

Como ya sabemos el proposito de las clases abstractas es servir de base para subclases futuras para que los mtodos abstractos puedan modificar mediante sobreescritura las caracteristicas mismas de los mtodos ( realizar implementaciones)

- Las subclases de una clase abstracta estn obligadas a sobreescribir los mtodos abstractos que heredan, si no es necesario utilizar un mtodo abstracto de una clase, igual la subclase deber ser declarada como abstracta.- Una clase abstracta puede tener consructores, puede que la clase herede a mas clases, la cual si podra crear objetos para inicializarlos con el constructor.POLIFORMISMOEs una de las principales aplicaciones de la herencia y las clases abstractas.ASIGNACIN DE OBJETOS A VARIABLES DE SU SUPERCLASESCuando tenemos una herencia, obviamente tenemos una superclase esta super clase hereda mtodos y caracteristicas a las subclases, existe la posibilidad de crear una expresin con la superclase como viene a continuacin

superclase expresin;Herencia_1 f;en la anterior definicin crearmos una variable f para asignarle los objetos de las diferentes subclases, para que con dicha variable se pueda invocar a los mismos mtodos pero de diferentes objetos; (JAVA DETERMINA EN EL TIEMPO DE EJECUCIN EL MTODO QUE DEBE EJECUTAR)

VENTAJAS DE LA UTILIZACION DEL POLIMORFISMOEl simple hecho de que una variable pueda invocar a varios mtodos de la superclase para los diferentes objetos hace que la REUTILIZACIN DE CDIGO SEA MAS EVIDENTE.

TIPO DE RETORNO COVARIANTES

Existe la posibilidad de realizar sobreescritura conservando siempre las reglas de sobreescritura a expcepcin de el valor de retorno