SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6

Slides:



Advertisements
Presentaciones similares
Curso de java básico (scjp)
Advertisements

FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Curso de Java Capitulo 7: Continuación Poo Profesor:
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
Definición de Clases y Variables de referencia.
POLIMORFISMO UNIDAD 4.
Herencia en C#.
Lenguaje de programación Java
SCJP Sun Certified Programmer for Java 6
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Arquitectura CLARO-TECNOTREE
REFERENCIA AL OBJETO DE LA CLASE BASE
Inner classes CAPITULO 8.
Informática II Prof. Dr. Gustavo Patiño MJ
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
Aplicación del paradigma orientado a objetos
Diseño y programación de
PROGRAMACION ORIENTADA A OBJETOS
Programación Orientada a Objetos en Java
HERENCIA.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Medio de tele-comunicación
Modificadores.
Polimorfismo Lenguajes de Programación II Corporación Universitaria del Caribe CECAR.
Introducción a Java II.
Lic. Rosemary Torrico Bascopé
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA CINCO CONSOLE.
Tema 6: Clases Antonio J. Sierra.
1 Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA OCHO THREADS.
SCJP Sun Certified Programmer for Java 6
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA OCHO THREADS.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA TRES ASIGNACION.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Capitulo # 4 herencia PROGRAMACION III UNIVERSIDAD
Clases y objetos. La unidad fundamental del lenguaje Java es la clase, que proporciona la estructura de los objetos y mecanismos para fabricarlos, a partir.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA DOS ORIENTACION A OBJETOS.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA CUATRO CONTROL DE FLUJOS, EXCEPCIONES Y ASERSIONES.
Herencia y tipos ● Cuanta memoria se debe asignar a un objeto cuando se asigna en la pila ● La asignación debe hacerse antes de que se conozca la cantida.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA OCHO THREADS.
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2008.
UNIDAD VI Recursos esenciales de Java LSC. Natalia Rodríguez Castellón.
Constructor  Un constructor es un método que inicia un objeto inmediatamente después de su creación. De esta forma nos evitamos el tener que iniciar.
Metodología de Programación Ayudantía 5 lelagos.ublog.cl 2009.
Informatica II1 Clases Extendidas La clase extendida hereda los campos y métodos de la clase que ha sido extendida. La clase original se conoce como superclase.
1 Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos.
Clases y Objetos en Java ELO329: Diseño y Programación Orientados a Objetos.
Programación Orientada a Objetos
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
Unidad 2.1: INTRODUCCIÓN A LA ORIENTACIÓN A OBJETOS.
Detalles Generales sobre Java
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA SEIS DESARROLLO, INNER CLASSES.
Programación orientada a objetos
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
Herencia y Clases Abstractas
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
HERENCIA.
Programación orientada a objetos Capítulo 9 Algo mas sobre herencias.
Tipo de relación entre clases Es uno de los aspectos que distinguen el paradigma de orientación a objetos frente a otros paradigmas. Mecanismo que,
Clases “ Es una Abstracción de un elemento del mundo real ”
Herencias Conceptos básicos i
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Prof. Manuel B. Sánchez. Declaración de Objetos Una vez que la clase ha sido implementada se pueden declarar objetos como variables locales de métodos.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Concepto de Tipo y Subtipo Diseño e Implementación Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 10 Versión.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Transcripción de la presentación:

SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6 1

SEMANA DOS ORIENTACION A OBJETOS CONSTRUCTORES Y CREACION DE INSTANCIAS

CONSTRUCTORES Todos los objetos son creados. No podemos crear un objeto sin invocar al constructor de la clase Los constructores son el codigo que se ejecuta cuando usamos la keyword new

Constructores Todas las clases, incluso las abstractas, deben de tener un constructor. Constructor común. Como podemos observar, el constructor no tiene tipo de retorno y tiene el mismo nombre de la clase

CONSTRUCTORES Constructor personalizado (sobrecarga de constructor) El constructor anterior es un constructor sin argumentos. ¿Qué pasa si ejecuto la siguiente linea? Foo foo=new Foo();

CONSTRUCTORES ¿Qué pasa cuando instanciamos un objeto? Supongamos que Horse extends Animal y Animal extends Object y tenemos la siguiente linea. Horse h = new Horse(); El constructor de Horse es invocado. Cada constructor invoca al constructor de sus superclass con una implícita llamada a super() a menos que el constructor invoque a un constructor sobrecargado. El constructor de Animal es llamado El constructor de Object es invocado

CONSTRUCTORES Las variables de instancia de Object se inicializan con sus valores explícitos (si no tienen toman los valores por default). El constructor de Object termina su ejecucion Las variables de instancia de Animal se inicializan con sus valores explícitos (si no tienen toman los valores por default) El constructor de Animal se ejecuta y termina Las variables de instancia de Horse se inicializan con sus valores explícitos (si no tienen toman los valores por default) El constructor de Horse se ejecuta y termina

CONSTRUCTORES

REGLAS PARA LOS CONSTRUCTORES Pueden usar cualquier modificador de acceso incluso private El nombre del constructor debe ser igual al de la clase No debe tener valor de retorno Es legal pero no practico tener un método con el mismo nombre de la clase. Si no se declara un constructor explícitamente Java crea uno implícito por default El constructor default siempre es sin argumentos Si se ha declarado un constructor con argumentos y se quiere usar un constructor sin argumentos se debe declarar, ya que en este caso Java no lo provee

REGLAS PARA LOS CONSTRUCTORES Cada constructor debe tener como primera linea de codigo una llamada a algun constructor sobrecargado( con this()) o una llama a un constructor de la superclase( super()) esta ultima es insertada por el compilador implicitamente Lo que se inserta por default en un constructor personalizado es una llamada a (super()) como primera linea del constructor Una llamada a super() puede ser con o sin argumentos Si es sin argumentos, no es necesario declarar super() No se puede llamar a un metodo de instancia o a alguna variable hasta que el constructor super termine. Solo variables y metodos estaticos pueden ser accesados como parte de la llamada a super() o this(). (super(Animal.NAME))

REGLAS PARA LOS CONSTRUCTORES Las clases abstractas tienen constructores Interfaces no tienen constructores, no son parte del arbol de herencia de los objetos La unica forma de invocar un constructor es dentro de otro constructor

Como sabre como se ve mi constructor default Tiene el mismo modificador de acceso de la clase No tiene argumentos El constructor default tiene una llamada implicita a super()

Como se vera el constructor al compilar las lineas de codigo?

CONSTRUCTORES ¿Que pasa con el siguiente codigo?

CONSTRUCTORES SOBRECARGADOS Significa que una clase tiene múltiples versiones de su constructor La única condición es tener una la lista de argumentos diferente. Ejemplo: class Foo { Foo() { } Foo(String s) { } } Recuerda: La primer linea de codigo en un constructor debe de ser una llamada a super() o a this()

STATICS

Variables y métodos estáticos La palabra reservada static tiene un impacto muy profundo en métodos y variables. Se les llama variables y métodos de clase. Los métodos estáticos no pueden acceder a métodos o variables de instancia. Las variables estáticas pueden ser accedidas por métodos estáticos y de instancia ¿Como puedo saber cuantas instancias de mi clase se han creado?

VARIABLES Y MÉTODOS ESTÁTICOS Ejemplo:

¿Por qué falla la compilacion?

ACCESANDO A ELEMENTOS STATIC Ejemplo:

EFECTOS DE STATIC EN VARIABLES Y METODOS

Metodos estaticos Los métodos estáticos no pueden ser sobreescritos, pueden ser redefinidos pero no sobre-escritos

COHESION Y ACOMPLAMIENTO Los buenos diseños orientados a objetos tienen poco acoplamiento(loose coupling) y alta cohesion( high cohesion) Lo que se consigue aplicando estos principios es: Fácil creación Fácil mantenimiento Fácil mejoras

ACOPLAMIENTO Se define como el grado en el que una clase conoce a otra. Si 2 clases se conocen solo mediante una interface se dice que son clases poco acopladas Teoricamente si todas las clases de un sistema estan bien diseñadas, solo se deberian comunicar mediante sus APIs Un buen aspecto del diseño de clases deberia ser el buen encapsulamiento

Cohesión Mientras el acoplamiento se basa en verificar como interactúan las clases, la cohesión se basa solamente en como esta diseñada una clase El termino cohesión se usa para indicar el grado en que una clase hace su trabajo. La clase mas enfocada es la clase que tiene un nivel mas alto de cohesión Son mucho mas fáciles de modificar. Si tienen un proposito mas espefico son mas faciles de reutilizar

Ejemplo de poca cohesion

Ejemplo de alta cohesion

RESUMEN Encapsulacion Herencia Polimorfismo Variables privadas Metodos getter y setter publicos y con estandar JavaBean Herencia IS-A, HAS-A Polimorfismo Aunque el tipo de dato cuando se declara una referencia no cambia se le puede asignar un subtipo Diferencias entre sobre-carga y sobre-escritura de métodos Sobree-escritura de métodos En tiempo de ejecución la JVM invoca la versión de los métodos de una subclase si se hace una instancia de esta Los métodos abstractos deben ser implementados siguiendo las reglas de la sobre-escritura En la sobre-escritura de métodos debe tener la misma lista de argumentos, el mismo tipo de retorno( a excepción de los covariant return) y el modificador de acceso no puede ser mas restrictivo Los métodos sobre escritos no pueden lanzar mas uncheked exeptions Los métodos originales pueden ser llamados mediante super.metodoHeredado();

RESUMEN Sobre-carga de métodos Interfaces Return types La sobre-carga permite usar el mismo nombre del método en una clase pero con diferentes argumentos A diferencia de la sobre-escritura , la sobre-carga debe cambiar la lista de argumentos, cualquier otro elemento puede cambiar Interfaces Define el contrato que las clases que la implementen deben cumplir Las reglas son las mismas con respecto al heredar una clase abstracta Una clase puede implementar mas de una interface Return types Un método sobre-escrito debe tener el mismo tipo o un subtipo con respecto al método de donde heredo. Es legal regresar un valor siempre y cuando se pueda convertir implicitamente

RESUMEN Constructores El compilador genera un constructor default si este no se proporciona El constructor default es siempre sin argumentos, tiene una llamada implícita a super() y tiene el mismo modificador de acceso que la clase El constructor default no es creado si se ha proporcionado al menos un constructor Si se necesita un constructor sin argumentos y ya se proporciono uno con argumentos es necesario proporcionar el constructor sin argumentos Los constructores no son heredados. Los constructores se pueden sobre-cargar y pueden ser invocados entre si con this() Los constructores deben tener this() o super() como primer elemento

RESUMEN Statics Acoplamiento Cohesión Los miembros estáticos de una clase pertenecen a la clase no a las instancias Acoplamiento Poco acoplamiento es lo que se desea entre clases que interactúan, esto se logra atreves del acceso de APIs Mucho acoplamiento es lo que no se desea entre las, ellas no deben saber como hacen las cosas otras clases Cohesión Alta cohesión es lo que se desea tener en cada una de las clases esto es que tengan un propósito especifico y bien enfocado.