Sie sind auf Seite 1von 163

Tipos de estructura de los LP

Estructurado
Procedimientos variables y funciones
Parmetros (valor, referencia)

Tipos de estructura de los LP

Orientado a Objetos
Clases, objetos, mtodos y atributos
Mensajes, eventos respuestas

Orgenes y evolucin de JAVA


Los orgenes de Java se remontan al ao 1990, en que un equipo de Sun Microsystems dirigido por James Gosling estaba desarrollando software para dispositivos electrnicos de consumo.

Quin creo Java

En 1990, Sun Microsystems, de California, James Gosling, cre este LP para el control de los aparatos Electrnicos del hogar (Tostadores, hornos de microondas y TV).

Lenguaje interpretado Cdigo fuente


Ejecucin programa
Cada lnea es interpretada

Cada lnea interpretada es ejecutada

Java trata de conseguir tanto la eficiencia de los lenguajes compilados como la universalidad de los lenguajes interpretados.

Java
Pero esto implicaba la prdida de universalidad de las aplicaciones, pues la generacin de cdigo mquina para un ordenador particular hace necesario adaptar y recompilar las aplicaciones para cada plataforma existente, y para todas las futuras. De modo que se integraron las dos filosofas.

JAVA

El resultado de la compilacin no es un conjunto de instrucciones comprensibles por un cierto microprocesador, sino una representacin binaria genrica, llamada byte codes.

Cualidades principales de Java


Universalidad. Aunque hemos dicho que un programa interpretado no es en principio tan rpido como un programa equivalente compilado, las prestaciones de Java son sin embargo muchsimo mejores que las de cualquier lenguaje interpretado.

Cualidades principales de Java

Sencillez. Java es un lenguaje de gran facilidad de aprendizaje, pues en su concepcin se eliminaron todos aquellos elementos que no se consideraron absolutamente necesarios.

Cualidades principales de Java

Orientacin a objetos. Aunque C++ es tambin, como Java, un lenguaje orientado a objetos, la diferencia fundamental es que Java lo es desde su concepcin.

Cualidades principales de Java

Seguridad. En general, se considera que un lenguaje es tanto ms seguro cuanto menor es la posibilidad de que errores en la programacin, o diseos malintencionados de programas (virus), causen daos en el

Para que fue utilizado Java


Debido a que la implementacin de los chips de memoria con programacin estructurada elevaba el costo aun mas que el del propio componente electrodomstico.

Las pginas Web se disean con independencia de plataforma al igual que Java, esto para ser posible ver una pgina Web en una PC IBM, en una Macintosh o en una Sun Micrisystems.

Web y Java

Tecnologa de Programacin Orienta a Objetos


Se hizo popular en la dcada de los noventas. C++ desarrollado por AT&T a principios de la dcada de los ochentas se basa en dos lenguajes C y Simula. Que eran LP para la simulacin en Europa.

Programacin Orientada a Objetos

Se puede definir como POO como una tcnica o estilo de programacin que utiliza objetos como bloque esencial de construccin.

Programacin Orientada a Objetos


La programacin Orientada a Objetos (POO) es una forma especial de programar, ms cercana a como expresaramos las cosas en la vida real que otros tipos de programacin.

Programacin Orientada a Objetos


En la Programacin Orientada a Objetos tenemos dos elementos fundamentales, CLASES y OBJETOS.

Programacin Orientada a Objetos


Podemos definir a la clase como la generalizacin de los objetos y los objetos como la concrecin de la clase.

Programacin Orientada a Objetos


Esta metodologa, como se mencion antes, gira en torno a trminos tales como abstraccin, encapsulamiento, herencia y polimorfismo; para poder comprender lo que la POO (programacin orientada a objetos) significa, tenemos que tener estos trminos claros.

Cmo se piensa en objetos

Pensar en trminos de objetos es muy parecido a cmo lo haramos en la vida real. Por ejemplo vamos a pensar en un coche para tratar de modelizarlo en un esquema de POO.

Cmo se piensa en objetos

En un esquema O.O. el coche sera el objeto, las propiedades seran las caractersticas como el color o el modelo y los mtodos seran las funcionalidades asociadas como ponerse en marcha o parar.

Los principios de la definicin de objetos


Ayudan a los programadores a hacer cdigo ms robusto y seguro; porque se pueden aislar a cada uno de esos objetos y tratarlo como un ente nico, con su propia personalidad, sin que haya cientos de caractersticas que tengamos que tener presentes, tal como se haca en la programacin orientada a procedimiento o estructurada.

Los principios de la definicin de objetos

Los principios de la definicin de objetos Los LP tales como (Pascal, Basic, C) se basan en acciones (verbos), en lugar de cosas u objetos (sustantivos).

Los principios de la definicin de objetos


Ahora con la disponibilidad de los LP Orientados a Objetos, tales como Java y C++ los programadores siguen un proceso natural, viviendo en un mundo Orientado a Objetos. Lo cual les permite reflejar de manera sencilla y efectiva el mundo real.

Con gran frecuencia los programadores deben comenzar de nuevo cada nuevo proyecto y escribir cdigo similar desde cero. Esto significa gasto de tiempo y dinero, ya que la gente debe de reinventar la rueda.

Los principios de la definicin de objetos

Los principios de la definicin de objetos

Mediante la Tecnologa orientada Objetos, las entidades creadas llamadas CLASES, si se disean apropiadamente, pueden ser reutilizables en proyectos futuros.

Los principios de la definicin de objetos entidad del mundo En POO los objetos pueden se cualquier
real: - Objetos fsicos * automviles en una simulacin de trfico * aviones en un sistema de control de trfico areo * animales mamferos, etc - Elementos de interfaces grficos de usuarios * ventanas * iconos * mens * ratones

Los principios de la definicin de objetos


En POO los objetos pueden se cualquier entidad del mundo real: - Estructuras de datos * arrays * pilas * rboles binarios

- Tipos de datos definidos por el usuario * nmeros complejos * hora del da

Atributos
Algunas cosas no son objetos, sino atributos, valores o caractersticas de objetos. Es decir, no todas las cosas son objetos, ni son consideradas normalmente como objetos.

El objeto coche
Para la discusin sobre objetos, se va a retomar el ejemplo de la introduccin y utilizar la definicin de coche (automvil) para definir algunos conceptos.

El objeto coche
Para definir el objeto coche, hay que ser capaces de abstraer las funciones y atributos de un coche; es decir, hay que ser capaz de definir coche en trminos de qu puede hacer y qu caractersticas lo distinguen de otros objetos.

Abstraccin funcional Funcionalmente, un coche puede realizar las siguientes acciones:


Ir Parar Girar a la derecha Girar a la izquierda Reversa

Abstraccin de datos De forma semejante a la anterior, un coche tiene las siguientes caractersticas o atributos:
Color Velocidad Tamao Combustible

Encapsulacin de Objetos
Los objetos encapsulan sus operaciones y su estado, son islas de estado y comportamiento.
El comportamiento del objeto est definido por las operaciones El estado est definido por los datos o atributos del objeto

Encapsulacin de Objetos

Realizar para el objeto Avin Abstraccin funcional


.vuela, planea .despegar, se eleva aterriza .gira(der, izq, arriba, abajo) .Acelera, disminuye velocidad

Abstraccin de datos
.Tamao .Capacidad de pasajeros, en asientos .cabina de control Alas piloto Turbinas Tren de aterrizaje Combustible(Turzinc)

Realizar para el objeto Celular Abstraccin funcional



.realizar/recibir Llamas Finalizar llamada(colgar) .enviar/recibir msn .encender/apagar .Cargar .Jugar Hora, Alarma, cronometro Agenda(inserta, elimina, busca registros) Fecha(calendario)
.tamao .teclado/touch .Color .Pila/bateria Pantalla/Display Modelo Bocina/Microfono Memoria interna Tipo de red/seal No. De pin/IMEI/ID

Abstraccin de datos

Realizar para el objeto Reloj Abstraccin funcional


.Dar la hora .Dar minutos Dar segundos .cambio de dia(24hrs) .ajuste(hora,min,seg) .pulsera/pared/bolsillo(forma) .tamao/color/modelo .manecillas/digital .Numeros Sonido(segundero, alarma)

Abstraccin de datos

Encapsulacin
Encapsulacin: Describe la vinculacin de unas operaciones y estado a un objeto particular. La encapsulacin est ntimamente relacionada con la ocultacin de la informacin, definiendo qu partes de un objeto son visibles y qu partes estn ocultas.

Encapsulacin La encapsulacin abarca a la ocultacin de la informacin:


Algunas partes son visibles (el interfaz pblico) Otras partes son ocultas (o privadas)

Encapsulacin

Definicin de Objetos
Miembros Pblicos Los miembros pblicos (interfaz o mtodos) de una clase describen qu es lo que pueden hacer los objetos de esa clase.

Partes pblicas: Llamadas mtodos Qu puede hacer el objeto Qu es el objeto, su abstraccin

Definicin de Objetos
Miembros Privados Los miembros privados de una clase describen la implementacin, el cmo lo hace.

Partes privadas: La implementacin Cmo hace lo que hace Detrs de la barrera de encapsulacin

Clases
Las clases representan el tipo al que pertenecen los objetos. Definen tanto los miembros operaciones como el estado, especificando cules son pblicos y cules privados.

Interacciones entre Objetos Los objetos contribuyen al comportamiento del sistema colaborando con otros objetos. Por ejemplo: El volante interacciona con el objeto intermitente El objeto acelerador interacciona con el objeto motor

Intercambio de Mensajes
Los objetos interaccionan envindose mensajes unos a otros. El mtodo de envo de mensajes depende de la naturaleza de los objetos modelados. Los objetos interaccionan por paso de mensajes

Intercambio de Mensajes
Un objeto enva un mensaje a otro El otro puede contestar, cambiar su estado, o reaccionar de la manera apropiada Los objetos slo pueden interaccionar a travs de su interfaz pblica.

Intercambio de Mensajes

HERENCIA

Herencia
La herencia significa que el comportamiento y los datos asociados con las clases hijas son siempre una extensin (es decir, un conjunto estrictamente mas grande) de las propiedades asociadas con las clases paternas.

Herencia Una subclase debe reunir todas las propiedades de la clase paterna y otras ms. Por otra parte ya que una clase hija es una forma especializada (restringida) de la clase paterna en cierto sentido es una contraccin del tipo paterno.

Herencia
Semejante contraposicin entre herencia como expansin y herencia como contraccin es fuente de mucha de la fuerza inherente a la tcnica, pero al mismo tiempo origina mucha de la confusin en lo que toca a su uso.

Herencia
Cuando una clase deriva de otra, hereda todas sus variables y mtodos. Estas funciones y variables miembro pueden ser redefinidas (overridden) en la clase derivada o aadir nuevas variables y mtodos. En cierta forma es como si la sub-clase (la clase derivada) contuviera un objeto de la super-clase; en realidad lo ampla con nuevas variables y mtodos.

Herencia

Herencia

Hay dos tipos de herencia:


Herencia Simple Herencia Mltiple. Java slo permite herencia simple.

HERENCIA SENCILLA O SIMPLE

Indica que se pueden definir nuevas clases solamente a partir de una clase inicial

HERENCIA MULTIPLE

Indica que se pueden definir nuevas clases a partir de dos o ms clases iniciales

Una clase tiene un solo ascendente o dicho de otro modo, una subclase puede heredar datos y mtodos de una solo clase.

Tipos de datos Definidos

JAVA

Variables

Las variables se utilizan en la programacin Java para almacenar datos que varan durante la ejecucin del programa.

Variables

Para usar una variable, hay que indicarle al compilador el tipo y nombre de esa variable, declaracin de la variable.

Variables

El tipo de la variable determinar el conjunto de valores que se podrn almacenar en la variable y el tipo de operaciones que se podrn realizar con ella.

Tipos Primitivos de datos


Como tipos primitivos entendemos aquellos tipos de informacin ms usuales y bsicos. Son los habituales de otros lenguajes de programacin.
Enteros: Difieren en las precisiones y pueden ser positivos o negativos.
Byte: 1 byte. Int: 4 bytes. Short: 2 bytes. Long: 8 bytes.

Tipos Primitivos de datos


Como tipos primitivos entendemos aquellos tipos de informacin ms usuales y bsicos. Son los habituales de otros lenguajes de programacin.
Boolean: No es un valor numrico, solo admite los valores true o false. Char: Usa el cdigo UNICODE y ocupa cada carcter 16 bits.

Tipos Primitivos de datos


Como tipos primitivos entendemos aquellos tipos de informacin ms usuales y bsicos. Son los habituales de otros lenguajes de programacin.
Reales en punto flotante: igual que los enteros tambin difieren en las precisiones y pueden ser positivos o negativos.
Float: 4 bytes. Double: 8 bytes.

Expresiones
Se componen de sentencias, que a su vez estn compuestas en base a expresiones. Una expresin es una determinada combinacin de operadores y operandos que se evalan para obtener un resultado particular. Los operandos pueden ser variables, constantes o llamadas a mtodos.

Expresiones
Una llamada a un mtodo evala el valor devuelto por el mtodo y el tipo de una llamada a un mtodo es el tipo devuelto por ese mtodo. Java soporta constantes con nombre y la forma de crearlas es: final float PI = 3.14159;

Arrays
En Java, al ser un tipo de datos verdadero, se dispone de comprobaciones exhaustivas del correcto manejo del array; por ejemplo, de la comprobacin de sobrepasar los lmites definidos para el array, para evitar el desbordamiento o corrupcin de memoria.

Arrays
En Java hay que declarar un array antes de poder utilizarlo. Y en la declaracin hay que incluir el nombre del array y el tipo de datos que se van a almacenar en l. La sintaxis general para declarar e instanciar un array es:
tipoDeElementos[ ] nombreDelArray = new tipoDeElemetos[tamaoDelArray];

Se pueden declarar en Java arrays de cualquier tipo:

char s[ ]; int iArray[ ] new int[5];

Al igual que los dems objetos en Java, la declaracin del array no localiza, o reserva, memoria para contener los datos. En su lugar, simplemente localiza memoria para almacenar una referencia al array. La memoria necesaria para almacenar los datos que componen el array se buscar en memoria dinmica a la hora de instanciar y crear realmente el array.
Para crear un array en Java hay dos mtodos bsicos. Crear un array vaco:

int lista[ ] = new int[50];


o se puede crear ya el array con sus valores inciales

String nombres[ ] = { "Juan","Pepe","Pedro","Maria};

Strings
Un String o cadena se considera a toda secuencia de caracteres almacenados en memoria y accesibles como una unidad. C/C++ no soportan un tipo String, sino que simplemente disponen de un formato de almacenamiento de caracteres que se puede tratar como un String. Sin embargo, Java implementa cadenas a travs de las clases String y StringBuffer, a las que se dedicar un amplio estudio.

Expresiones y Operadores

Expresiones y Operadores
Una expresin es un conjunto variables unidos por operadores. Son rdenes que se le dan al computador para que realice una tarea determinada Una expresin es una combinacin de variables, operadores y llamadas de mtodos construida de acuerdo a la sintaxis del lenguaje que devuelve un valor.

Expresiones y Operadores
Los operadores son smbolos especiales que realizan una funcin particular sobre otros elementos llamados operandos. Dichos operandos pueden ser literales, variables, constantes o funciones. Cada operador puede a su vez clasificarse en:
Unario Binario

Tipos de operadores
Operadores aritmticos Operadores de asignacin Operadores relacionales Operadores lgicos Operadores unarios Operadores incrementales Operador condicional ?: Operador instanceOf Operador de concatenacin de cadenas caracteres (+) Operadores que actan a nivel de bits

de

Operadores Aritmticos
Operador Utilizacin Significado

+
* /

op1 + op2
op1 op2 op1 * op2 op1 / op2

Suma
Resta Multiplicacin Divisin

op1 % op2

Mdulo

Operadores de Asignacin
Operador += -= Utilizacin op1 += op2 op1 = op2 Expresin equivalente op1 = op1 + op2 op1 = op1 - op2

*=
/= %=

op1 *= op2
op1 /= op2 op1 %= op2

op1 = op1 * op2


op1 = op1 / op2 op1 = op1 % op2

Operadores Relacionales
Operador > >= < <= == != Utilizacin op1 > op2 op1 >= op2 op1 < op2 op1 <= op2 op1 == op2 op1 != op2 El resultado es true
Si op1 es mayor que op2 Si op1 es mayor o igual que op2 Si op1 es menor que op2 Si op1 es menor o igual que op2 Si op1 y op2 son iguales Si op1 y op2 son diferentes

Operadores Lgicos
Operado Nombre r Utilizaci n
op1 && op2

Resultado True si op1 y op2 son true. Si op1 es false ya no se evala op2

&& ||

And Or

op1 || op2 True si op1 u op2 son true. Si op1 es true ya no se evala op2

&
|

Negaci n And
Or

! op
op1 & op2

True si op es false y false si op es true.

True si op1 y op2 son true. Siempre se evala op2


True si op1 u op2 son true. Siempre se evala op2

op1 | op2

Estructuras de Control 10

Secuencial Selectiva Iterativa

Secuencial
Las instrucciones de este tipo de estructura se ejecutan una detrs de la otra, exactamente en el mismo orden en que aparecen en el programa fuente.

Selectiva
Simple
Existe una condicin que se evala a cierto o falso; si resulta cierto, entonces se ejecutan las instrucciones que se encuentran entre llaves; en caso contrario, no se ejecutan

Selectiva
if ( expresin condicion-- ) { instruccin (es) : : } siguiente instruccin

Ejemplo
Considrese la siguiente proposicin: if ((calif >= 90) | | (calif < 60)) System.out.println (Extrema) else System.out.println (Media)
Qu se exhibir si calif es igual a 90? Qu se exhibir si calif es cero? Qu se exhibir si calif es igual a 70?

Ejemplo
Considrese la siguiente proposicin IF anidada: if (a > b) if (a > c) System.out.println (A es el mayor) Escrbase una sola proposicin IF que sea equivalente a ste pero que no est anidada.

Ejemplo
Considrese el siguiente segmento de programa: a = 4; b = 5; if (a > b){ c = 999; d = 999; }
Despus de ejecutarse este segmento, cul de las siguientes afirmaciones es cierta?

Ni c ni d quedan definidas. La variable c = 999 y d no est definida. La variable d = 999 y c no est definida. c = 999 y tambin d = 999.

Selectiva
Doble
Si expresin se evala a true, entonces se ejecuta instruccin1; en caso contrario se ejecuta instruccin2. En cualquier caso, el control pasa despus a la siguiente instruccin

Selectiva
if (expresin condicion--){ instruccion1 } else{ instruccion2 } siguiente instruccin

Ejemplo
Considrese el siguiente segmento de programa:

x = 7; y = 8; if (x > y) x=x+1 else y = y +1; y = y 2; x = x 2;


Determnese el valor de cada una de las variables despus de la ejecucin.

Ejemplo
x = 10; y = 11; z = 12; if ((x > y) | | (z > y)) if (x > z) if (y > z) System.out.println(Termin) else System.out.println (No termino an.) else System.out.println (Nunca llega aqu);

Determnese si se exhibe alguno de los mensajes cuando se ejecuta el segmento, y cul es.

Ejemplo
Qu se exhibe cuando se ejecuta el siguiente segmento de cdigo? a = 0; b = -1; if (a > 0) System.out.println(A) else if (b < 0) System.out.println(B) else System.out.println(C)

Selectiva
Mltiple
La sentencia switch se utiliza para seleccionar una de entre mltiples alternativas Si el valor de la expresin es igual a una de las etiquetas case entonces la ejecucin comenzar con la primera sentencia y continuara hasta encontrar la sentencia break

Selectiva
switch ( selector ) { case etiqueta1 : sentencias1; break; case etiqueta2 : sentencias2; break; : case etiqueta n: sentencias n; break; default : } sentencias;

Ejemplo
int opcion; System.out.println("captura un numero del 1-5"); opcion=in.nextInt();

switch (opcion) { case 1 : System.out.println("El valor es A"); break; case 2 : System.out.println ("El valor es E"); break; case 3 : System.out.println ("El valor es I"); break; case 4 : System.out.println ("El valor es O"); break; case 5 : System.out.println ("El valor es U"); break; }

Iterativa
Un bucle se utiliza para realizar un proceso repetidas veces. Se denomina tambin lazo o loop. Java proporciona tres formas bsicas de bucle:
la instruccin while, la instruccin for y la instruccin do-while

Iterativa
while
Las instrucciones dentro de las llaves se ejecutan mientras la expresin sea verdadera. El bloque de sentencias puede ejecutarse ninguna vez.

Iterativa
while (expresin condicion--){ instruccion } siguiente instruccin

Ejemplo
while ((opcion > 0) && (opcion < 6)){ System.out.println("Se cumplio la condicion"); System.out.println("captura un numero del 1-5"); opcion=in.nextInt(); } System.out.println ("No se cumplio la condicion");

Iterativa
for
Se usa principalmente para la iteracin simple. Es el ms adecuado para implementar bucles controlados por contador, que son bucles en los que un conjunto de sentencias se ejecutan una vez por cada valor de un rango especificado.

Iterativa
for (valor inicial; condicin; incremento/decremento){ sentencias }

For (int i=1; i<=10; i++) { System.out.println(mensaje); }

do while

Iterativa

En algunos casos nos gustara garantizar que el cuerpo del bucle se ejecuta al menos una vez. Esto se puede conseguir usando la instruccin do while
boolean ban=true; Int a =1; While (ban){ System.out.println(Mensaje); If (a == 10) ban=false else a++ }

Iterativa
do{ sentencias; } while (condicion--); siguiente instruccin

Clases y objetos
Una clase describe una plantilla o plano maestro para crear cualquier cantidad de los mismos objetos (instancias). La clase es la generalizacin del objeto

Clases y objetos
La clase es lo genrico: es el patrn o modelo para crear objetos. Una clase es un prototipo o modelo que define las variables y mtodos comunes a todos los objetos de un cierto tipo.

Clases y objetos
Un objeto en general es algo con masa, un peso, un volumen, algo que se puede se puede tocar y que permite su descripcin fiel, y en algunos casos tiene acciones que describen su funcin.

Clases y objetos
Los elementos declarados de una clase se denominan objetos de la clase. De una nica clase se pueden declarar o crear numerosos objetos. Un objeto (en ingls, instance) es un ejemplar concreto de una clase.

Atributos y mtodos 10
Una clase es una agrupacin de datos (variables o campos) y de funciones (mtodos) que operan sobre esos datos.

Atributos y mtodos
A estos datos y funciones pertenecientes a una clase se les denomina : atributos

Automvil marca modelo color frenar ( ) acelerar ( ) retroceder ( )

mtodos o funciones miembro

Atributos y mtodos
Son sinnimos de mtodo: procedimiento, funcin, rutina, en algunos lenguajes de programacin. El trmino mtodo distingue las propiedades especiales que adquiere un programa en el entorno POO. Se invocan a travs de un mensaje

Atributos y mtodos
Mtodo es un conjunto de instrucciones referenciadas por un solo nombre que realizan alguna accin determinada. Los mtodos se definen en dos partes en el programa: la cabecera (firma) y el cuerpo del mtodo (conjunto de instrucciones).

Atributos y mtodos
La primera lnea de la definicin de un mtodo se llama cabecera, declaracin o header. El cdigo comprendido entre las llaves {} es el cuerpo o body del mtodo.

Paso de parmetros 5
Un parmetro es una forma de enviar informacin a un mtodo. El conjunto de parmetros constituyen la firma de un mtodo.

Paso de parmetros
En Java los argumentos de los tipos primitivos se pasan siempre por valor. Que quiere decir esto? El mtodo recibe una copia del argumento actual; si se modifica esta copia, el argumento original que se incluy en la llamada no queda modificado.

Paso de parmetros
La forma de modificar dentro de un mtodo una variable de un tipo primitivo es incluirla como variable miembro (atributo) en una clase y pasar como argumento una referencia a un objeto de dicha clase. Las referencias se pasan tambin por valor, pero a travs de ellas se pueden modificar los objetos referenciados.

Paso de parmetros
Los arreglos y los objetos por ser entidades dinmicas pasan siempre por referencia.

Constructores y mtodos
En un programa escrito en Java identifique

Los constructores Los mtodos sobrecargados El uso de this para ejecutar constructores sobrecargados

Constructores
Existen dos formas de incluir constructores en un programa Java Utilice el constructor por defecto
Agregue uno o ms constructores explcitamente

Control de acceso
Modificador (Modifier) public protected
Misma clase Mismo paquete Subclases Universo

si si

si si

si si

si

<default>
private

si
si

si

Sobrecarga de mtodos
Se puede utilizar el mismo nombre para definir varios mtodos de la siguiente manera:
public void println(int i) public void println(float f) public void println(String s)

Los argumentos deben diferir Los tipos de retorno pueden ser diferentes

Constructores sobrecargados
public Employee(String name, double salary, Date DoB) public Employee(String name, double salary) public Employee(String name, Date DoB)

Los argumentos deben diferir La referencia this puede utilizarse en la primera linea de un constructor para ejecutar otro constructor

Constructores
Declaracin de constructores

<constructor_declaration> ::= <modifier> <class_name> (<parameter>*) { <statement>* }

Constructores
public class Thing { private int x; public Thing() { x = 47; } public Thing(int new_x) { x = new_x; } public int getX() { return x; } public void setX(int new_x) { x = new_x; } }

Constructores
public class TestThing { public static void main(String[] args) { Thing thing1 = new Thing(); Thing thing2 = new Thing(42); System.out.println("thing1.x is " + thing1.getX()); System.out.println("thing2.x is " + thing2.getX()); } } Output: thing1.x is 47thing2.x is 42

El constructor por defecto


Siempre existe al menos un constructor en cada clase Si el programador no proporciona algn constructor entonces el constructor por defecto se agrega automticamente
-El constructor por defecto no tiene argumentos -El constructor por defecto tiene un cuerpo vacio

El constructor por defecto permite crear instancias escribiendo new Xxx()

Sobrecarga de constructores
public class Employee { private static final double BASE_SALARY = 15000.00; private String name; private double salary; private Date birthDate; public Employee(String name, double salary, Date DoB) { this.name = name; this.salary = salary; this.birthDate = DoB; } public Employee(String name, double salary) { this(name, salary, null); } public Employee(String name, Date DoB) { this(name, BASE_SALARY, DoB); } public Employee(String name) { this(name, BASE_SALARY); }

Los paquetes
Identifique en un programa escrito en Java El enunciado package Los enunciados import Las clases, los mtodos y los atributos Los constructores

Los paquetes
Los paquetes ayudan a manejar los archivos de sistemas grandes Los paquetes contienen clases

Los paquetes

Los paquetes
Especificar la declaracin del paquete al inicio del archivo fuente A lo ms debe existir una declaracin de paquete en cada archivo fuente Si no se agrega la definicin de un paquete entonces la clase pertenece al paquete por defecto que corresponde al directorio raz del proyecto Los nombres de paquetes deben estar separados por puntos

Los paquetes

Esquema de un archivo fuente

<source_file> ::= [<package_declaration>] <import_declaration>* <class_declaration>+

Archivo fuente
package shipping.reports.Web; import shipping.domain.*; import java.util.List; import java.io.*;

public class VehicleCapacityReport { private List vehicles; public void generateReport(Writer output) { ... } }

Ocultamiento de informacion

Ocultamiento de informacion

Encapsulamiento
Ocultar los detalles de implantacin de una clase Obligar al usuario a utilizar una interfaz para accesar los datos Generar cdigo de ms fcil mantenimiento

Encapsulamiento

Excepciones
Utilizar los enunciados try, catch, and finally Ubicar las categoras de excepciones Identificar las excepciones mas comunes Crear sus propias excepciones

Excepciones
La clase Exception define condiciones de error recuperables que un programa puede encontrar Las excepciones pueden ocurrir cuando:
El archivo que se desea abrir no existe La conexin de red esta inoperativa Los operandos utilizados no estan permitidos

La clase error define condiciones serias de terminacin del programa

Excepciones
public class HelloWorld { public static void main (String args[]) { int i = 0; String greetings [] = { "Hello world!", "No, I mean it!", "HELLO WORLD!!" }; while (i < 4) { System.out.println (greetings[i]); i++; } } }

Excepciones
try { // cdigo que puede generar alguna excepcin } catch (MyExceptionType myExcept) { // cdigo de recuperacin de la excepcin // indicada } catch (Exception otherExcept) { // cdigo que atrapa otra excepcin } finally { // cdigo que siempre se ejecuta despus // de atrapar la excepcin }

Excepciones: control del stack


Si una excepcin no es manejada dentro de un mtodo entonces se lanza la excepcin al mtodo que lo invoc Si la excepcin alcanza el mtodo main y no se maneja ah, entonces el programa termina anormalmente

Excepciones
public class HelloWorld2 { public static void main (String args[]) { int i = 0; String greetings [] = { "Hello world!", "No, I mean it!,"HELLO WORLD!! }; while (i < 4) { try { System.out.println (greetings[i]); } catch (ArrayIndexOutOfBoundsException e){ System.out.println("Re-setting Index Value"); i = -1; } finally { System.out.println("This is always printed"); } i++; } } }

Excepciones comunes
StackOverflowError NullPointerException FileNotFoundException ArrayIndexOutOfBoundsException SecurityException

Categorias de excepciones

La regla de manejar o declarar


Manejar la excepciones utilizando el enunciado try-catch-finally Declarar que el mtodo genera excepciones modificando el encabezado del mtodo Un mtodo puede declarar que genera mas de una excepcin

JERARQUAS DE CLASES

La herencia es uno de los conceptos ms cruciales en la POO. La herencia bsicamente consiste en que una clase puede heredar sus variables y mtodos a varias subclases (la clase que hereda es llamada superclase o clase padre). Esto significa que una subclase, aparte de los atributos y mtodos propios, tiene incorporados los atributos y mtodos heredados de la superclase. De esta manera se crea una jerarqua de herencia.

Por ejemplo, imaginemos que estamos haciendo el anlisis de un Sistema para una tienda que vende y repara equipos celulares.

En general, podemos tener una gran jerarqua de Clases tal y como vemos en el siguiente grfico:

REDEFINICIN DE MTODOS (SOBRECARGA)

Al igual que C++, Java permite mtodos sobrecargados (overloaded), es decir, mtodos distintos que tienen el mismo nombre, pero que se diferencian por el nmero y/o tipo de los argumentos.

A la hora de llamar a un mtodo sobrecargado, Java sigue unas reglas para determinar el mtodo concreto que debe llamar: 1. Si existe el mtodo cuyos argumentos se ajustan exactamente al tipo de los argumentos de la llamada (argumentos actuales), se llama ese mtodo. 2. Si no existe un mtodo que se ajuste exactamente, se intenta promover los argumentos actuales al tipo inmediatamente superior (por ejemplo char a int, int a long, float a double, etc.) y se llama el mtodo correspondiente.

3. Si slo existen mtodos con argumentos de un tipo ms restringido (por ejemplo, int en vez de long), el programador debe hacer un cast explcito en la llamada, responsabilizndose de esta manera de lo que pueda ocurrir.
4. El valor de retorno no influye en la eleccin del mtodo sobrecargado. En realidad es imposible saber desde el propio mtodo lo que se va a hacer con l. No es posible crear dos mtodos sobrecargados, es decir con el mismo nombre, que slo difieran en el valor de retorno.

ACCESO PROTEGIDO

Las variables miembro pueden ir precedidas en su declaracin por uno de los modificadores de acceso: public, private, protected y package (que es el valor por defecto y puede omitirse). Junto con los modificadores de acceso de la clase (public y package), determinan qu clases y mtodos van a tener permiso para utilizar la clase y sus mtodos y variables miembro.

Las variables miembro de una clase declaradas como public son accesibles a travs de una referencia a un objeto de dicha clase utilizando el operador punto(.). Las variables miembro declaradas como private no son accesibles directamente desde otras clases. Las funciones miembro de una clase tienen acceso directo a todas las variables miembro de la clase sin necesidad de anteponer el nombre de un objeto de la clase. Sin embargo las funciones miembro de una clase B derivada de otra A, tienen acceso a todas las variables miembro de A declaradas como public o protected, pero no a las declaradas como private. Una clase derivada slo puede acceder directamente a las variables y funciones miembro de su clase base declaradas como public o protected.

Das könnte Ihnen auch gefallen