Lenguaje de Lenguaje de

Programación I Programación I
Ing. Gerald Basurco Zapata Ing. Gerald Basurco Zapata
%ema 4 %ema 4
W Lncapsulamiento
W UML ÷
Diagrama de
Clases
W Ljemplos
Lncapsulamiento Lncapsulamiento
Lncapsulamiento Lncapsulamiento
Ll encapsulamiento permite a una clase ocultar su iníormación al
exterior
Para ocultar iníormación la clase proporciona ni·eles de acceso: publico.
protegido. pri·ado. etc. voaiticaaore.
LJLMPLO: rear una clase padre v agregar los siguientes atributos
pri·ados a la clase Padre: nombre. edad. sueldo.
Lncapsulamiento Lncapsulamiento
Nivel de
acceso
Descripción
pri·ate
protected
Public
Atributos v métodos accesibles solo por la clase que las deíine
Atributos v métodos accesibles solo por las clases hijas o subclases
Atributos v métodos accesibles desde el exterior de la clase
No olvidar:
Lncapsulamiento Lncapsulamiento
O A quien pertenecen los métodos que se listan··
O Si los atributos de la clase Padre son pri·ados. como accedo a ellos··
public class Lncapsulamiento
¦
public static ·oid Main
¦
Padre unPadre ~ new Padre
unPadre
<
<
ontinuando. cree una clase ejecutable Lncapsulamiento e.
eiecvtabte porqve ev etta e.ta et vetoao vaiv v escriba:
omo se ·e no
tenemos acceso
desde el exterior a la
iníormación de la
clase Padre
Lncapsulamiento Lncapsulamiento
Ln la clase Padre deíina
el método verData( ):
Lncapsulamiento Lncapsulamiento
O Ln la clase Lncapsulación escriba el siguiente código
Ljecute la clase Lncapsulacion v ·ea el resultado
Lncapsulamiento Lncapsulamiento
eíina los siguientes constructores:
Lncapsulamiento Lncapsulamiento
Ln la clase Lncapsulación escriba el siguiente código :
Ljecute la clase Lncapsulación v ·ea el resultado
Lncapsulamiento Lncapsulamiento
O Para acceder a miembros
pri·ados de una clase se
deíinen sus métodos de
acceso
O Un método set puede
cambiar el ·alor de un
atributo pri·ado
O Un método get puede
obtener el ·alor de un
atributo pri·ado:
o es
accesible
debido al ni·el
de protección
UML ÷ Diagrama de
Clases
#elaciones entre Clases #elaciones entre Clases
a orientación a objetos intenta modelar aplicaciones del
mundo real tan íielmente como sea posible. apovandose en
ello en una gran íacilidad de reutilización v extensibilidad del
soítware. Ll potente concepto OO que proporciona estas
características es la lLRLA.
a herencia es la característica que diíerencia esencialmente la
POO de la programación tradicional. debido
íundamentalmente a que permite extender v reutilizar el
código existente sin tener que rescribir el mismo
#elaciones entre Clases #elaciones entre Clases
as relaciones entre clases juega un papel importante en
el modelo de objetos. as clases. al igual que los objetos.
no existen de modo aislado. Por esta razón. existiran
relaciones entre clases v entre objetos.
as relaciones entre entidades. cla·e del modelado
relacional de datos. se expresan utilizando ·erbos a partir
de írases del lenguaje ordinario tales como ·i·e-en.
estudia-en. trabaja-para.
#elaciones entre Clases #elaciones entre Clases - - %ipos %ipos
P La Generalización: que representa una relación ··un tipo
de··. Por ejemplo una rosa es una ílor. simpliíicando que una
rosa es una clase simpliíicada de una de la clase mas general.
ílor. Lste tipo de relación se conoce como relación es-un.
P La Agregación: que representa ··una parte de·· la relación.
Por consiguiente. un pétalo no es una clase de ílor. es una parte
de una ílor.
P La Asociación: que representa conexión semantica entre
clases no relacionadas. Así. por ejemplo. rosas v ·elas son
clases independientes. aunque ambas representan cosas que se
pueden utilizar para decorar una mesa para cenar.
UML ( UML (Unified Unified Modeling Modeling Language Language) )
UM es un lenguaje que
permite modelar.
construir v documentar
los elementos que
íorman un sistema
soítware orientado a
objetos.
UML (Unified Modeling Language) UML (Unified Modeling Language)
UM combina notaciones pro·enientes desde:
O Modelado Orientado a Objetos Modelado de atos
O Modelado de omponentes
O Modelado de llujos de 1rabajo \orkílows
Ll modelado es esencial en la construcción de soítware para:
O omunicar la estructura de un sistema complejo
O Lspeciíicar el comportamiento deseado del sistema
O omprender mejor lo que estamos construvendo
O escubrir oportunidades de simpliíicación v reutilización
Diagramas de UML Diagramas de UML
use Case
0|ad(ars
use Case
0|ad(ars
0|ad(aras de
Casos de uso
3cera(|o
0|ad(ars
3cera(|o
0|ad(ars
0|ad(aras de
Co|aoo(ac|ór
3lale
0|ad(ars
3lale
0|ad(ars
0|ad(aras de
Corporerles
Corporerl
0|ad(ars
Corporerl
0|ad(ars
0|ad(aras de
0|sl(|ouc|ór
3lale
0|ad(ars
3lale
0|ad(ars
0|ad(aras de
0ojelos
3cera(|o
0|ad(ars
3cera(|o
0|ad(ars
0|ad(aras de
Eslados
use Case
0|ad(ars
use Case
0|ad(ars
0|ad(aras de
3ecuerc|a
3lale
0|ad(ars
3lale
0|ad(ars
0|ad(aras de
C|ases
0|ad(aras de
Acl|v|dad
Vode|os
Diagrama de Clases Diagrama de Clases
Un diagrama de clase es un
tipo de modelo estatico. Un
diagrama de clases describe la
·ista estatica de un sistema en
términos de clases v relación
entre ellas. Un diagrama de
clases muestra solo las clases.
pero existe una ·ariante del
diagrama que muestra las
instancias de objetos de las
clases v que es el diagrama de
objetos.
Diagrama de Clases Diagrama de Clases
Una clase se dibuja con un rectangulo. di·idido en tres
compartimientos o bandas. la banda de nombre. la banda de
atributos v la banda de operaciones
Nombre
Atributos
Operaciones
Nombre
Notación grafica de clases: normal y recudida
Diagrama de Clases Diagrama de Clases
Atributos
importantes
Operaciones
importantes
Notación de una Clase
Diagrama de Clases Diagrama de Clases
Un atributo tiene un tipo. que indica la clase de atributo. int. double. string. etc.
os atributos pueden tener diíerente ·isibilidad. a ·isibilidad describe si el atributo
es ·isible v puede ser reíerenciado por otras clases distintas de aquellas en que se ha
deíinido. os atributos v su representación graíica puede ser:
Públicos public: Se puede utilizar v ·isualizar íuera de la clase. Se representa con
el signo mas -.
Pri·ados pri·ate: o se puede acceder al mismo desde otras clases. Se
representa con el signo menos -.
Protegidos protected: Se utiliza en notaciones de generalización v
especialización para representar atributos protegidos relacionados con clases
deri·adas.
Diagrama de Clases Diagrama de Clases
Para la banda de operaciones Métodos. la ·isibilidad es igual que
para los atributos. o es necesario que todas las operaciones
tengan tipo de retorno v parametros. pero han de tener una
asignatura única.
#elaciones #elaciones
O os diagramas de clase
consta de clases v las
relaciones entre ellas. as
relaciones que se pueden
utilizar en UM son
asociación.
generalizaciones.
dependencias v
reíinamiento.
#elaciones #elaciones - - Asociación Asociación
P Una asociación es una conexión entre clases. una conexión
enlace entre objetos de las clases implicadas en la
asociación.
P Una asociación representa una relación estructural entre
objetos de clases diíerentes.
P a mavoría de las asociaciones son relaciones binarias
aunque pueden existir relaciones ternarias o n-arias.
Ln esencia una asociación es una relación entre clases que
especiíica como se puede enlazar juntas las instancias de las
clases.
#elaciones #elaciones - - Asociación Asociación
a conexión entre una asociación v los enlaces
correspondientes se realiza etiquetando ambas asociaciones v
enlazandolas con el mismo nombre.
Programador Computadora
Usa ³
Un Programador utiliza (Usa) una computadora.
#elaciones #elaciones - - Asociación Asociación
Una asociación es una relación entre clases que especiíican cuantas
instancias cuantas instancias se pueden enlazar juntas. Un enlace es la
relación entre objetos. Una asociación se representa por una línea que
une dos clases. el nombre de la asociación se escribe en la línea.
:tudiante Cur:o
recibe un
* *
]uan::tudiante Natematica::Cur:o
recibe un
Hi:toria:Cur:o Naria::tudiante
recibe un
#elaciones #elaciones - - Asociación Asociación
Aunque las asociaciones conectan normalmente dos clases diíerentes juntas.
son posibles otros íormatos. Ln particular existen muchas situaciones en
donde los objetos se pueden enlazar a otros objetos de la misma clase.
Ljemplo: los objetos representa aeropuertos v los enlaces representan la
existencia de un ·uelo que conecta los aeropuertos enlazados.
ima:Aeropuerto Cu:co:Aeropuerto
Tacna:Aeropuerto Arequipa:Aeropuerto
Aeropuerto
os aeropuertos se enlazan a otros
aeropuertos.
Se conoce como auto-asociación
#elaciones #elaciones - - Asociación Asociación
Usuario Computadora
Utiliza >
tiene
Un usuario usa una computadora.
Ltiquetas
#elaciones #elaciones - - Asociación Asociación
Multiplicidad entre las Asociaciones
O a multiplicidad de una asociación determina cuantos objetos de cada tipo
inter·ienen en la relación: Ll número de instancias de una clase que se relacionan
con una instancia de la otra clase.
O ada asociación tiene dos multiplicidades una para cada extremo de la relación.
O Para especiíicar la multiplicidad de una asociación hav que indicar la multiplicidad
mínima v la multiplicidad maxima mínima..maxima
Multiplicidad Significado
Uno v sólo uno Uno v sólo uno
0.. 0.. ero a uno ero a uno
..M ..M esde hasta M esde hasta M
Muchos Muchos
0.. 0.. ero a muchos ero a muchos
.. .. Uno a ·arios Uno a ·arios
#elaciones #elaciones - - Asociación Asociación
Lmpresa Persona
1rabaja para
* 1..*
Lmplea - a>
empleador empleado
Multiplicidad
ombre de Rol ombre de la asociación
ada extremo de una asociación es un Rol papel. ada rol puede tener un
nombre que indica como es ·isualizada la clase por la otra clase. Una
Lmpresa ·isualiza a Persona como un empleado. e modo similar Persona
·isualiza la Lmpresa como empleador. os nombres de los roles deben de
ser únicos.
#elaciones #elaciones - - Asociación Asociación
ada rol indica multiplicidad de su clase. Por ejemplo. una Persona puede
trabajar para muchas empresas. Lsto indica la multiplicidad del rol. .uantos
objetos Lmpresa se pueden asociar con un objeto Persona·. Una Persona puede
trabajar para muchas Lmpresas v una Lmpresa puede emplear a muchas
Personas. Por consiguiente. la multiplicidad de Lmpresa con Persona es ...
Lmpresa Persona
1rabaja para
* 1..*
Lmplea - a>
empleador empleado
Multiplicidad
ombre de Rol ombre de la asociación
#elaciones #elaciones - - Asociación Asociación
a·egación de las asociaciones
O Aunque las asociaciones suelen ser bidireccionales se pueden recorrer
en ambos sentidos. en ocasiones es deseable hacerlas unidireccionales
restringir su na·egación en un único sentido.
O Graíicamente. cuando la asociación es unidireccional. la línea termina
en una punta de ílecha que indica el sentido de la asociación:
Per:ona Carro:
posee
0..*
Una Asociación na·egable indica que una
persona puede poseer muchos carros.
#elaciones #elaciones - - Asociación Asociación
Profe:or :cuela
pertenece a
* 1..*
Todo profesor pertenece a una o mas escuela .
A una escuela pueden pertenecer varios
profesores.
!ieto Abuelo
vive con
* 0..4
Todo nieto vive, hasta con sus cuatro abuelos
Un abuelo puede vivir con varios nietos
Cuenta Operación
orresponde a
1 *
Una operación corresponde a una cuenta.
Clases Asociadas Clases Asociadas
Una asociación puede ser otra
clase en si misma . una clase
asociación. a clase asociación
no se conecta en ninguno de
los extremos de la asociación.
Ls similar a una clase normal.
puede tener atributos.
operaciones v otras
asociaciones. a clase
asociación se utiliza para
anadir iníormación extra en
un enlace.
Clases Asociadas Clases Asociadas
Ljemplo: una operación o transacción en un cajero
automatico A tiene sus propios atributos v
también operaciones sobre ellos.
CA
propietario
dirección
Cliente
nombre
contrasena
Operación CA
tipo_operación
fecha
hora
lase asociación
operación
* *
Clases Asociadas Clases Asociadas
Compania
nombre
dirección
Per:ona
nombre
dni
Trabajo
salario
departamento
gerente
* *
trabaja para
Ll trabajo realizado
por una persona en
una companía es una
clase
#elaciones #elaciones - - Agregación Agregación
a agregación es una caso especial de asociación. Ll
agregado indica que la agregación entre clases es un tipo
de toao parte. Un ejemplo de agregado es un coche que
consta de cuatro ruedas. un motor un chasis. etc.
as palabras o írases que se utilizan para identiíicar
agregados son e.·parte·ae. cov.ta·ae. tieve·vv. covtieve. etc. v
senalan una relación todo parte entre las clases
implicadas
#elaciones #elaciones - - Agregación Agregación
Una uni·ersidad tiene ·arias íacultades o escuelas de
modo que se puede suprimir o anadir alguna
íacultad v seguira existiendo la uni·ersidad como tal.
Lsta es una característica de la agregación: las partes
lacultades componen el todo Uni·ersidad
Todo Parte
*
Univer:idad Facultad
*
%ieve
#elaciones #elaciones - - Generalización Generalización
a deíinición de generalización en
UM es: una relación taxonómica
taxonomía es la ciencia de la
clasiíicación entre un elemento
mas general v un elemento mas
especiíico`. a generalización
cuando se maniíiesta en un
lenguaje de programación se suele
conocer como lLRLA. Lsta
relación implica generalización -
especialización de la clase base a la
clase deri·ada. donde existe una
clase general` v diíerentes clases
especialización`.
Cuenta
Cuenta
Corrient
e
Cuenta
Ahorro
Cuenta
Sueldo
Generalización de la clase uenta
#elaciones #elaciones - - Generalización Generalización
rase
Adjetivo Nombre Verbo
Generalización en formato de jerarquia
#elaciones #elaciones - - Generalización Generalización
Una generalización se
conoce como relación
es-un`. es-un-tipo-
de`. v es una relación
que es capaz de decir
es-un entre el elemento
especiíicado v el
elemento general un
coche es-un ·ehículo.
un ·endedor es-un
empleado. etc..
#elaciones #elaciones - - Generalización Generalización
Generalización ordinaria
a generalización es una relación entre una clase general v una clase
especiíica.
a clase especiíica denominada sub-clase hereda de la clase general.
denominada superclase. Se heredan los atributos. las operaciones v todas
las asociaciones. os atributos v operaciones con la ·isibilidad publica en
la superclase seran publicas en la subclase. os miembros que tiene
·isibilidad pri·ada se heredaran pero no son accesibles dentro de la
subclase.
Para proteger atributos v operaciones de acceso desde el exterior a la
superclase v la subclase. se pueden hacer estos miembros protegidos.
#elaciones #elaciones - - Generalización Generalización
Clase Abstracta
Una clase abstracta es aquella que no tiene ningún
objeto. es decir. aquella de la que no se pueden crear
instancias u objetos. Una clase abstracta solo se
utiliza para heredar de ella v para describir atributos
v comportamientos comunes de otras clase.
#elaciones #elaciones - - Generalización Generalización
Coche
Coche
deportivo
Coche
turismo
Camión
Avión
Avión
militar
Avión
transporte
Avión de
pasajeros
Vehículo
{,-897,.9<
Una jerarquía de clases vehiculo
abstracta a clase coche es una
subclase de vehiculo v es una
superclase de coche deporti·o.
coche turismo v coche camión
#elaciones #elaciones - - Generalización Generalización
a clase ·ehículo es un ejemplo de clase abstracta que no
tiene ningún objeto. pero se utiliza solo para heredar de ella.
Una clase abstracta normalmente tiene operaciones
abstractas. Una operación abstracta es una que no tiene
ningún método de implementación en la clase en que se
especiíica. Una clase que tiene al menos una operación
abstracta debe de ser una clase abstracta. v una clase que
hereda de una clase que tiene una o mas operaciones
abstractas. debe de implementar esas operaciones
proporcionar métodos para ellas o con·ertirse así misma en
una clase abstracta.
#elaciones #elaciones - - Generalización Generalización
as operaciones abstractas se muestran con la cadena
¦abstracta< seguida de la signatura de la operación. v en letra
cursi·a. as operaciones abstractas se deíinen en las clases
abstractas para especiíicar el comportamiento que deben
tener todas las subclases. Así. una clase ·ehículo puede tener
operaciones abstractas que especiíiquen operaciones a
realizar por todos los ·ehículos tales como conducir. acelerar.
írenar. detenerse. arrancar. etc.
Por consiguiente. todas las clases que heredan de Vehículo
deben proporcionar métodos para esas operaciones o
con·ertirse en abstractas.
#elaciones #elaciones - - Generalización Generalización
Vehiculo
{ab.tracto]
conducir ¦ab.tracto<
Coche
onducir
Barco
onducir
lase
abstracta
·ehículo
#elaciones #elaciones - - Generalización Generalización
as clases concretas son las opuestas de las clases abstractas v
signiíican que de estas clases es posible crear objetos v tienen implementaciones
de todas las operaciones. Si la clase Vehículo a especiíicado una operación
abstracta estas operaciones han de implementarse - v de modo diíerente - en
las clases deri·adas coche v barco.
Ln las subclases se pueden redeíinir operaciones. Una operación redeíinida
debe tener la misma signatura tipo de retorno. nombre v parametros que la
superclase. a operación que se ha redeíinido puede ser o bien abstracta no
tiene una implementación en la superclase o concreta tiene una
implementación en la superclase. Ln ambos casos. la redeíinición en la subclase
se utilizara en todas las instancias de esa clase. Se pueden anadir nue·as
operaciones. atributos v asociaciones en las subclase.
#elaciones #elaciones - - Generalización Generalización
Ljemplo: en la íigura. muestra una clase Persona que tiene una
asociación covavce.
a clase Vehiculo es abstracta esto signiíica que los objetos reales
que la Persona conduce son de las subclases concretas Coche v
Barco. uando la Persona ejecuta la operación de conducir. el
resultado depende de que el objeto utilizado sea un coche o un barco.
Aquí un objeto de una subclase actual como un objeto de una
superclase v una o mas operaciones de la superclase se redeíinen en la
clase. recordemos que esto se llama POLIMO#ISMO. Ll
Polimoríismo signiíica que la implementación real utilizada
dependera del objeto sobre el que aplicaba la operación.
#elaciones #elaciones - - Generalización Generalización
Vehiculo
{ab.tracta]
color
matricula
conducir ¦ab.tracta<
Coche
onducir
Barco
onducir
Persona
onduce >
Una persona tiene
asociación conduce
con ·ehículos
#elaciones #elaciones - - Generalización Generalización
a herencia múltiple es una íorma de herencia en donde
una clase hereda la estructura v el comportamiento de
dos clases base. Ln otras palabras hav múltiples clases
padre para la clase hija. a herencia múltiple. por otras
parte. implica clases base múltiple. Una clase
ProíesorAvudante hereda propiedades de las clases
Lstudiantes v Proíesor que ha su ·ez heredan
propiedades de la clase base Persona.
#elaciones #elaciones - - Generalización Generalización
Persona
ombre
lecha nacimiento
Sexo
Lstudiante
irección
epartamento
Profesor
ategoría
epartamento
ProfesorAyudante
ampo in·estigación
1itulo
HL#LNCIA MUL%IPLL
#elaciones #elaciones - - Dependencia Dependencia
epevaevcia
O Relación mas débil que una asociación que muestra la relación entre un cliente v el
pro·eedor de un ser·icio usado por el cliente.
liente es el objeto que solicita un ser·icio.
Ser·idor es el objeto que pro·ee el ser·icio solicitado.
O Graíicamente. la dependencia se muestra como una línea discontinua con una punta
de ílecha que apunta del cliente al pro·eedor.
Para resol·er una ecuación
de segundo grado hemos
de recurrir a la íunción sqrt
de la clase Math
para calcular una raíz
cuadrada.
Nath
pow()
sqrt()
cuación
Ljemplos
Ljemplo: Punto Ljemplo: Punto ÷÷ Circulo Circulo ÷÷ %riangulo %riangulo
esarrollar una clase llamada Punto que:
O 1enga dos atributos pri·ate de tipo double.
O 1enga un constructor con dos parametros de tipo double que
inicialice los dos atributos.
O 1enga un constructor por deíecto sin parametros que inicialice
los dos atributos al ·alor que se quiera.
O 1enga un getter para cada uno de los atributos.
O 1enga un método calcularistanciaesde que recibe un
parametro de tipo Punto v que de·uel·e un double.
Ljemplo: Punto Ljemplo: Punto ÷÷ Circulo Circulo ÷÷ %riangulo %riangulo
Punto
double
double
Punto()
Punto(param1 double, param2 double)
get() double
get() double
calcularDistanciaDesde(param Punto) double
Ljemplo: Punto Ljemplo: Punto ÷÷ Circulo Circulo ÷÷ %riangulo %riangulo
esarrollar una clase llamada irculo que:
O 1enga dos atributos pri·ate de tipo Punto v double.
O 1enga un constructor con dos parametros de tipo Punto v double que inicialice los
dos atributos.
O 1enga un constructor por deíecto sin parametros que inicialice los dos atributos al
·alor que se quiera.
O 1enga un constructor con tres parametros de tipo double que inicialice los dos
atributos.
O 1enga un getter para cada uno de los atributos.
O 1enga un método calcularistanciaesde que recibe un parametro de tipo Punto v
que de·uel·e un double.
O 1enga un método calcularArea que no recibe ningún parametro v de·uel·e un double.
O 1enga un método calcularPerimetro que no recibe ningún parametro v de·uel·e un
double.
Ljemplo: Punto Ljemplo: Punto ÷÷ Circulo Circulo ÷÷ %riangulo %riangulo
Circulo
centro Punto
radio double
irculo()
irculo(param1 Punto, param2 Punto)
irculo(param1 double, param2 double, param3 double)
getentro() Punto
getRadio() double
calcularArea() double
calcularPerimetro() double
calcularDistanciaDesde(param Punto) double
Ljemplo: Punto Ljemplo: Punto ÷÷ Circulo Circulo ÷÷ %riangulo %riangulo
esarrollar una clase llamada 1riangulo que:
O 1enga tres atributos pri·ate de tipo Punto.
O 1enga un constructor con tres parametros de tipo Punto que inicialice los dos
atributos.
O 1enga un constructor por deíecto sin parametros que inicialice los tres atributos al
·alor que se quiera.
O 1enga un constructor con seis parametros de tipo double que inicialice los tres
atributos.
O 1enga un getter para cada uno de los atributos.
O 1enga un método calcularistanciaesde que recibe un parametro de tipo Punto v
que de·uel·e un double.
O 1enga un método calcularArea que no recibe ningún parametro v de·uel·e un double.
O 1enga un método calcularPerimetro que no recibe ningún parametro v de·uel·e un
double.
Ljemplo: Punto Ljemplo: Punto ÷÷ Circulo Circulo ÷÷ %riangulo %riangulo
Triangulo
p1 Punto
p2 Punto
p3 Punto
Triangulo()
Triangulo(param1 Punto, param2 Punto, param3 Punto)
Triangulo(x1 double, y1 double, x2 double, y2 double, x3 double, y3 double)
getP1() Punto
getP2() Punto
getP3() Punto
calcularArea() double
calcularPerimetro() double
calcularDistanciaDesde() double
Ljemplo: Punto Ljemplo: Punto ÷÷ Circulo Circulo ÷÷ %riangulo %riangulo
esarrollar una clase llamada Ljemplo. que en su
método main:
O ree e inicialice dos objetos de la clase Punto v muestre
la distancia entre ambos.
O ree un objeto de la clase írculo v muestre su area.
perímetro v distancia a uno de los dos puntos creados
al comienzo.
O ree un objeto de la clase 1riangulo v muestre su area.
perímetro v distancia a un nue·o punto.
Ljemplo: Punto Ljemplo: Punto ÷÷ Circulo Circulo ÷÷ %riangulo %riangulo
Ljemplo: Asignatura Ljemplo: Asignatura ÷÷ Alumno Alumno - - Profesor Profesor
esarrollar una clase llamada Asignatura que:
O 1enga tres atributos de tipo int el identiíicador . v de
tipo double la caliíicación.
O 1enga un constructor con un parametro de tipo int.
O 1enga un getter para cada uno de los atributos.
O 1enga un setter para la caliíicación.
Ljemplo: Asignatura Ljemplo: Asignatura ÷÷ Alumno Alumno - - Profesor Profesor
A:ignatura
identificador int
calificacion double
Asignatura(param int)
get!dentificador() int
getcalificacion() double
setcalificacion(param double)
Ljemplo: Asignatura Ljemplo: Asignatura ÷÷ Alumno Alumno - - Profesor Profesor
esarrollar una clase llamada Alumno que:
O 1enga tres atributo pri·ate de tipo Asignatura.
O 1enga un constructor con tres parametros de tipo
asignatura que inicialice los tres atributos.
O 1enga un constructor de tres parametros de tipo int
que inicialice los tres atributos.
O 1enga un getter para cada uno de los atributos.
Ljemplo: Asignatura Ljemplo: Asignatura ÷÷ Alumno Alumno - - Profesor Profesor
Alumno
asignatura1 Asignatura
asignatura2 Asignatura
asignatura3 Asignatura
Alumno(param1 Asignatura, param2 Asignatura, param3 Asignatura)
Alumno(param1 int, param2 int, param3 int)
getAsignatura1() Asignatura
getAsignatura2() Asignatura
getAsignatura3() Asignatura
Ljemplo: Asignatura Ljemplo: Asignatura ÷÷ Alumno Alumno - - Profesor Profesor
esarrollar una clase llamada proíesor que:
O 1enga un método ponerotas que recibe un parametro
de tipo Alumno v que no de·uel·a nada. Pondra una
caliíicación aleatoria a cada una de las asignaturas del
alumno.
O 1enga un método calcularPromedio que reciba un
parametro de tipo Alumno v de·uel·a un double.
Ljemplo: Asignatura Ljemplo: Asignatura ÷÷ Alumno Alumno - - Profesor Profesor
Profe:or
ponerNotas(param Alumno)
calcularPromedio(param Alumno) double
Ljemplo: Asignatura Ljemplo: Asignatura ÷÷ Alumno Alumno - - Profesor Profesor
esarrollar una clase llamada Ljemplo2 que en su
método main:
O ree e inicialice tres asignaturas.
O ree un alumnos con tres Asignaturas.
O ree un Proíesor que le ponga caliíicaciones a los
Alumnos v muestre por pantalla el promedio del
Alumno.
Ljemplo: Asignatura Ljemplo: Asignatura ÷÷ Alumno Alumno - - Profesor Profesor
Ljemplo: Motor Ljemplo: Motor ÷÷ Coche Coche - - Garaje Garaje
esarrollar una clase llamada
Motor que:
O 1enga dos atributos pri·ate de
tipo int litros de aceite v de
tipo int V.
O 1enga un constructor con un
parametro de tipo int para los
V. os litros de aceite por
deíecto seran 0.
O 1enga un getter entrada para
cada uno de los atributos.
O 1enga un setter para los litros.
Notor
v int
aceite int
otor()
Ljemplo: Motor Ljemplo: Motor ÷÷ Coche Coche - - Garaje Garaje
esarrollar una clase llamada oche que:
O 1enga un atributo pri·ate de tipo Motor. un atributo de
tipo String marca. otro de tipo String modelo v otro de
tipo double con el precio acumulado con las a·erías.
O 1enga un constructor con dos parametros de tipo String
que inicialice la marca v el modelo.
O 1enga un getter entrada para cada uno de los atributos.
O Un método acumularA·eria que incrementara el importe
gastado en a·erías.
Ljemplo: Motor Ljemplo: Motor ÷÷ Coche Coche - - Garaje Garaje
Coche
motor otor
marca string
modelo string
precioAverias double
oche(param1 string, param2 string)
getotor() otor
getarca() string
getodelo() string
getPrecioAveria() double
Ljemplo: Motor Ljemplo: Motor ÷÷ Coche Coche - - Garaje Garaje
esarrollar una clase llamada Garaje que:
O 1endra tres atributos. un coche. un String con la a·ería asociada
v el número de coches que ha ido atendiendo.
O Ll garaje solo podra atender a un coche en cada momento.
ontrolar esta premisa.
O 1enga un método aceptaroche que recibe un parametro de tipo
oche v la a·ería asociada. Ll garaje solo podra atender a un
coche en cada momento. Si va esta atendiendo uno. que
de·uel·a un íalse.
O 1enga un método de·ol·eroche que dejara al garaje en estado
de aceptar un nue·o coche.
Ljemplo: Motor Ljemplo: Motor ÷÷ Coche Coche - - Garaje Garaje
araje
coche coche
aveia string
numochesAtendidos
aceptaroche(param1 oche, param2 string)
devolveroche()
Ljemplo: Motor Ljemplo: Motor ÷÷ Coche Coche - - Garaje Garaje
esarrollar una clase llamada Ljemplo3 que en su método main:
O ree un garaje.
O ree 2 coches.
O Ll garaje ira cogiendo los coches v de·ol·iéndolos. acumulando
un importe aleatorio Math.random de la a·ería tratada.
O Si la a·ería del coche es aceite` incrementar en 0 los litros de
aceite.
O os coches entraran al menos 2 ·eces en el garaje.
O Mostrar la iníormación de los coches al íinal del main.
Ljemplo: Motor Ljemplo: Motor ÷÷ Coche Coche - - Garaje Garaje