0% encontró este documento útil (0 votos)
6 vistas

Exposicoin Java

Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
6 vistas

Exposicoin Java

Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 38

4.

EXTENSIONES
DE CLASES
Composición ■ EJEMPLO
La clase vehículo esta compuesta de objetos de
tipo string. Los atributos matricula, marca,
modelo y color en realidad son objetos de la
clase string.

Consiste en crear una clase nueva agrupando


objetos de clases ya existen.

Una composición agrupa uno o mas objetos


para construir una clase, de manera que las
instancias de esta nueva clase contienen uno
o más objetos de otras clases
Composición

La nueva clase vehiculoAlquilado relaciona


Definir la clase cliente formara junto con una instancia de la clase cliente y crea objetos
vehículo la clase de vehículo alquilado que almacenan relaciones entre clientes y
utilizando la composición vehículos de alquiler
Composición
Esto significa que para instanciar un
objeto de la clase VehiculoAlquilado es
necesario tener referencias a objetos de La clase contenedora es
las clases cliente y vehículo VehiculoAlquilado y de las clases
contenidas son cliente y vehículo
HERENCIA
La capacidad que tienen los lenguajes orientados a objetos para extender sus clases.
La clase original se le denomina superclases o clase base, la nueva clase se le llama
clase derivada o subclase.
Extensión de clases

■ La extensión de clases se le llama herencia por que la nueva clase hereda todos los
atributos y los métodos de la superclase a la que extiende.
■ La herencia es un mecanismo muy importante ya que permite la reutilización de codigos
POLIMORFISMO
Este método también se ha declarado superclase. Este significa
getAtributos()
Compatibilidad de tipos

■ En una relación de tipo herencia, un objeto de la superclase puede almacenar un objeto


de cualquiera de sus subclases.

■ Por ejemplo, un objeto de la clase Vehículo puede almacenar un objeto de la clase


Turismo, Deportivo o Furgoneta.

■ Esto significa que la clase base o superclase es compatible con los tipos que derivan de
ella, pero no al revés.
Conversión ascendente de tipos

■ Cuando un objeto se asigna a una referencia distinta de la clase a la que pertenece, se


hace una conversión de tipos.
■ Java permite asignar un objeto a una referencia de la clase base.

■ Por ejemplo, si un objeto de la clase Turismo se asigna a una referencia de la clase


Vehículo, se hace una conversión ascendente de tipos, denominada “upcasting”. La
conversión ascendente de tipos siempre se puede realizar.
Conversión descendente de tipos

■ Si una instancia de la clase base Vehiculo almacena una referencia a un objeto de una de
sus clases derivadas, entonces es posible hacer una conversión descendente de tipos,
denominada “downcasting”.

■ El objeto miVehiculo de la clase base Vehiculo almacena una referencia a un objeto de


la clase derivada Turismo. En este caso, está permitido hacer una conversión
descendente de tipos. La conversión se debe hacer de forma explícita, indicando el
nombre de la clase a la que se desea convertir.
Jerarquía de
herencia

La clase derivada que se obtenga, puede a su


vez, ser extendida de nuevo. La relación de
herencia es transitiva y define una jerarquía.

En Java todas las clases están relacionadas


en una única jerarquía de herencia puesto
que toda clase hereda explícitamente de otra
o bien implícitamente de Object.
5. AMPLIACIÓN DE
CLASES
Haga clic en el icono para agregar una imagen

Elementos de
clase (Static)

Los atributos y métodos de una clase


precedidos con la palabra static se
denominan elementos de clase. Solo existe
un elemento estático para todos los objetos
de una misma clase. Esto significa que los
elementos de clase son compartidos por
todas las instancias de la clase.
Derechos de acceso

Acceso privado. Acceso de paquete.


■ Los elementos privados solo se ■ El acceso a estos componentes es
pueden utilizar dentro de la clase que libre dentro del paquete en el que se
los define. Para indicar el acceso define la clase. El acceso de paquete
privado se utiliza private. no se indica expresamente.
Derechos de acceso

Acceso protegido. Acceso público.


■ Los elementos protegidos solo se ■ Los elementos públicos se pueden
pueden utilizar dentro de la clase que utilizar libremente. Para indicar
los define, aquellas clases que la expresamente el acceso público se
extiendan y cualquier clase definida utiliza public. No es necesario, el
en el mismo paquete. Para indicar el acceso público se utiliza como valor
acceso protegido se utiliza protected. por defecto mientras no se indique
private o protected.
Paquetes

¿Qué es? ejemplo


■ Los paquetes son grupos de clases, ■ Un paquete se declara con la
interfaces y otros paquetes que están siguiente sintaxis:
relacionados entre sí.
package nombre-del-paquete;
■ Permiten unificar un conjunto de
clases e interfaces que se relacionan
funcionalmente.
Uso

¿Qué es? Ejemplo


■ Para utilizar componentes que están ■ Se puede importar un paquete entero
en otro paquete diferente se debe o un componente del paquete. Por
añadir una declaración de ejemplo, si se desea importar las
importación. librerías para cálculos matemáticos
de Java.
■ El uso de un paquete se declara con
la siguiente sintaxis: ■ import java.math.*;
■ import nombre-del-paquete;
Nombres

¿Qué es? Ejemplo


■ El nombre de un paquete debe ser ■ Por ejemplo, el paquete vehiculos de
representativo de su contenido. El la empresa “Mi Empresa” se podría
nombre puede contener la declaración identificar:
de subpaquete. Se puede incluir el
nombre de la empresa que ha ■
desarrollado el paquete para facilitar su ■ package miEmpresa.vehiculos;
identificación.
■ package nombre-de-la-empresa.nombre-
del-paquete
Clases predefinidas

■ Una característica importante de Java es que aporta gran cantidad de clases


predefinidas. Estas clases están especializadas en comunicaciones, web, interfaz de
usuario, matemáticas y muchas otras aplicaciones.

■ A continuación se describen las clases asociadas a los tipos primitivos de Java, la clase
Math y la clase String.
Las clases
asociadas a los
tipos primitivos

Los tipos predefinidos boolean, char, int,


long, float y double son tipos simples, no
son clases. Para facilitar la programación en
Java se han creado clases asociadas a los
tipos predefinidos
Estas clases tienen los siguientes métodos:

■ Método constructor a partir de un valor de tipo simple


Character letra = new Character('A'); Integer numero = new Integer(10);
■ Método constructor que recibe una cadena de texto y la traduce al tipo simple
Integer numero = new Integer("120");
■ Método toString() que transforma el valor almacenado en una cadena Integer
numero = new Integer("100"); System.out.println(numero.toString());
■ Método equals() para comparar el valor almacenado Integer numero1 = new
Integer("100"); Integer numero2 = new Integer("101");
System.out.println(numero2.equals(numero1));
La clase Math

■ La clase Math contiene constantes y métodos de uso común en matemáticas. Todas las
operaciones que se realizan en esta clase utilizan el tipo double. Contiene la constante pi
(Math.PI) y el número de Euler (Math.E). En las funciones trigonométricas, los ángulos
se expresan en radianes y los métodos devuelven valores de tipo double. La clase Math
incluye funciones como potenciación, redondeo, cuadrado, raíz cuadrada y muchas más.
La clase String

■ La clase String se usa para manejar cadenas de caracteres de cualquier longitud. Un


objeto String se puede crear a partir de una secuencia de caracteres delimitados por
comillas dobles.
■ String nombre = "Juan";
■ String apellidos = "González López";
6. ESTRUCTURAS DE
CONTROL
El cuerpo de un programa se compone de un conjunto de sentencias que
especifican las acciones que se realizan durante su ejecución.
Las estructuras de control básicas se pueden
clasificar en estructuras de selección, de repetición
y de salto.
■ Selección. Permiten decidir si se ejecuta un bloque de sentencias o no.

■ Repetición. Permiten ejecutar un bloque de sentencias muchas veces.

■ Salto. Permiten dar un salto y continuar la ejecución de un programa en


un punto distinto de la siguiente sentencia en el orden natural de
ejecución.
Estructuras de selección

■ Las estructuras de selección permiten modificar el


flujo de un programa. La decisión de ejecutar un
bloque de sentencias queda condicionada por el valor
de una expresión lógica definida utilizando variables
del programa.
Estructura if

■ La estructura if se denomina estructura de selección única porque ejecuta un bloque de


sentencias solo cuando se cumple la condición del if. Si la condición es verdadera se
ejecuta el bloque de sentencias. Si la condición es falsa, el flujo del programa continúa
en la sentencia inmediatamente posterior al if.

■ Una sentencia if tiene la siguiente sintaxis:


if (condicion) { bloque-de-sentencias
}
Estructura if else
■ La estructura if-else se denomina de selección doble porque selecciona entre dos
bloques de sentencias mutuamente excluyentes. Si se cumple la condición, se ejecuta el
bloque de sentencias asociado al if. Si la condición no se cumple, entonces se ejecuta el
bloque de sentencias asociado al else.
■ Una sentencia if-else tiene la siguiente sintaxis:
if (condicion) {
bloque-de-sentencias-if
}
else {
bloque-de-sentencias-else
}
Estructura if else if
■ La estructura if-else-if se puede aplicar en los mismos casos en que se utiliza un if-else
anidado. Esta estructura permite escribir de forma abreviada las condiciones de un if-else
anidado.
■ Una sentencia if-else-if tiene la siguiente sintaxis:
if (condicion-1) {
bloque-de-sentencias-condicion-1
} else if (condicion-2) {
bloque-de-sentencias-condicion-2
} else {
bloque-de-sentencias-else
}
Estructura switch

■ La estructura switch es una estructura de selección múltiple que permite seleccionar un


bloque de sentencias entre varios casos.
■ Una sentencia switch tiene la siguiente sintaxis:
switch (expresion) { case valor-1:
bloque-de-sentencias-1; break;
case valor-2:
bloque-de-sentencias-2; break;
El operador condicional

■ El operador condicional (?:) se relaciona con la estructura if-else. Es el único operador


de Java que utiliza tres operandos. El primer operando es una condición lógica, el
segundo es el valor que toma
■ El operador condicional tiene la siguiente sintaxis:
condicion-logica ? valor-si-verdadero : valor-si-falso
Estructuras de repetición

■ Las estructuras de repetición permiten repetir muchas veces un bloque de sentencias. A


estas estructuras también se les conoce como estructuras iterativas o bucles.
■ Inicialización. Permite inicializar la estructura iterativa, normalmente consiste en la
declaración e inicialización de la variable de control del bucle.
■ Condición. Define la condición que se evalúa para ejecutar el bloque de sentencias de
la estructura iterativa. Dependiendo del tipo de estructura que se utilice, la condición se
comprueba antes o después de realizar cada iteración.
■ Bloque de sentencias. Conjunto de sentencias que se ejecutan dentro de la estructura
iterativa.
■ Actualización. Actualización de la variable de control del bucle. Normalmente se
realiza al finalizar la ejecución del bloque de sentencias.
Estructura
while

La estructura de repetición while repite el


bloque de sentencias mientras la condición
del while es verdadera.

El diagrama de flujo de una estructura while


muestra que la condición se verifica justo
después de inicializar la variable de control.
Estructura
do-while

La estructura de repetición do-while


ejecuta el bloque de sentencias al
menos una vez. Después comprueba la
condición y repite el bloque de
sentencias mientras la condición es
verdadera.

El diagrama de flujo de una estructura


do-while muestra que la condición se
verifica al final, después de ejecutar el
bloque de sentencias la primera vez.
Estructura
for

La estructura de repetición for repite el


bloque de sentencias mientras la condición
del for es verdadera. Un for es un caso
particular de la estructura while. Solo se
debe utilizar cuando se sabe el número de
veces que se debe repetir el bloque de
sentencias.
Uso de las estructuras de repetición

■ Es importante utilizar la estructura de repetición más apropiada para cada caso. En


general, se recomienda seguir los siguientes criterios:

■ El while se debe utilizar cuando no se sabe el número de veces que se va a repetir el


bloque de sentencias.
■ El do-while se debe utilizar cuando el bloque de sentencias se debe ejecutar al menos
una vez.
■ El for se debe utilizar cuando se sabe el número de veces que se va a repetir el bloque
de sentencias. Un for es útil cuando se conoce el valor inicial para la variable de control
del bucle y además es necesario utilizar una expresión aritmética para actualizar esta
variable.
Estructuras de salto

■ En Java existen dos sentencias que permiten modificar el flujo


secuencial de un programa y provocan un salto en la ejecución.
Estas sentencias son break y continue. Ambas se utilizan con
las estructuras de repetición para interrumpir la ejecución con
break o volver al principio con continue. Además, el break se
utiliza para interrumpir la ejecución de un switch.
Estructuras de salto

Sentencia break Sentencia continue


La sentencia break se utiliza para La sentencia continue únicamente puede
interrumpir la ejecución de una estructura aparecer en una estructura de repetición.
de repetición o de un switch. Cuando se Cuando se ejecuta un continue, se deja de
ejecuta el break, el flujo del programa ejecutar el resto del bloque de sentencias
continúa en la sentencia inmediatamente de la estructura iterativa para volver al
posterior a la estructura de repetición o al inicio de ésta.
switch.

También podría gustarte