Está en la página 1de 16

INTRODUCCIÓN A LA PROGRAMACIÓN 01100

10011
ORIENTADA A OBJETOS 10110
01110
01100
10011
10110
La clase tester para clases asociadas 01110
1001
Depto. de Ciencias e Ingeniería de la Computación 1 11
0 0
Universidad Nacional del Sur, Bahía Blanca 1
La relación de asociación entre clases

Cuando una clase tiene un atributo de instancia de otra


01100
clase, decimos que las clases están asociadas y la 10011
relación es de tipo tieneUn. 10110
01110
01100
10011
10110
01110
1001
1 11
0 0
1
El diagrama de las clases asociadas
PresionArterial SignosVitales

<<Atributos de clase>> <<Atributo de clase>>


umbralMin = 75 umbralTemp = 37.5
umbralMax = 140 <<Atributos de Instancia>>
<<Atributos de Instancia>> temperatura: real
min, max: entero presion: PresionArterial

01100
10011
10110
01110
01100
10011
10110
01110
1001
1 11
0 0
La clase SignosVitales tiene un atributo de clase 1
PresionArterial
El diagrama de las clases asociadas
PresionArterial SignosVitales

<<Atributos de clase>> <<Atributo de clase>>


umbralMin = 75 umbralTemp = 37.5
umbralMax = 140 <<Atributos de Instancia>>
<<Atributos de Instancia>> temperatura: real
min, max: entero presion: PresionArterial

01100
<<Constructor>> <<Constructor>>
10011
PresionArterial(mi, ma: entero) SignosVitales(t: real, p: PresionArterial)
10110
<<Consultas>> <<Consultas>>
01110
obtenerMin(): entero obtenerTemperatura():real
01100
obtenerMax(): entero obtenerPresion():PresionArterial
10011
obtenerPulso(): entero alarma():boolean
10110
alarmaHipertension(): boolean toString():String
01110
toString():String equals(p:SignosVitales):boolean
1001
equals(p:PresionArterial):boolean
alarma(): boolean 1 11
Retorna true si 0 0
temperatura > umbralTemp o 1
alarmaHipertension retorna verdadero
La clase tester
PresionArterial p1,p2;
SignosVitales s1,s2;
p1 = new PresionArterial(60,115);
p2 = new PresionArterial (90,185);
s1 = new SignosVitales(36.2,p1);
s2 = new SignosVitales(36.5,p2)
if (s1.alarma())
System.out.println("Alarma a las 6");
01100
if (s1.alarma()) 10011
System.out.println("Alarma a las 12");
10110
01110
p1
01100
10011
s1 10110
01110
1001
p2 1 11
0 0
1
s2
Asociación entre clases
public PresionArterial p1,p2;
PresionArterial (int mi, int ma){ SignosVitales s1,s2;
//Requiere ma > mi > 0 p1 = new PresionArterial(60,115);
max = ma; p2 = new PresionArterial (90,185);
min = mi; } s1 = new SignosVitales(36.2,p1);
s2 = new SignosVitales(36.5,p2)
if (s1.alarma())
System.out.println("Alarma a las 6");
01100
if (s1.alarma()) 10011
System.out.println("Alarma a las 12");
10110
01110
p1 :PresionArterial 01100
min = 60 10011
s1 max = 115 10110
01110
1001
p2 1 11
:PresionArterial 0 0
min = 90 1
s2 max = 185
Asociación entre clases
public PresionArterial p1,p2;
SignosVitales (float t, SignosVitales s1,s2;
PresionArterial p){ p1 = new PresionArterial(60,115);
//Requiere t > 0 y p ligada p2 = new PresionArterial (90,185);
temperatura = t; s1 = new SignosVitales(36.2,p1);
presion = p ; s2 = new SignosVitales(36.5,p2)
} if (s1.alarma())
System.out.println("Alarma a las 6");
01100
if (s1.alarma()) 10011
System.out.println("Alarma a las 12");
10110
01110
p1 :PresionArterial
36.2 01100
:SignosVitales min = 60 t
10011
s1 temperatura=36.2 max = 115
p 10110
presion
01110
1001
p2 1 11
:PresionArterial 0 0
min = 90 1
s2 max = 185
Asociación entre clases
public PresionArterial p1,p2;
SignosVitales (float t, SignosVitales s1,s2;
PresionArterial p){ p1 = new PresionArterial(60,115);
//Requiere t > 0 y p ligada p2 = new PresionArterial (90,185);
temperatura = t; s1 = new SignosVitales(36.2,p1);
presion = p ; s2 = new SignosVitales(36.5,p2)
} if (s1.alarma())
System.out.println("Alarma a las 6");
01100
if (s1.alarma()) 10011
System.out.println("Alarma a las 12");
10110
01110
p1 :PresionArterial 01100
:SignosVitales min = 60 10011
s1 temperatura=36.2 max = 115
presion
10110
01110
1001
p2 1 11
36.5 t
:PresionArterial 0 0
:SignosVitales min = 90 1
s2 Temperatura=36.5 max = 185 p
presion
Asociación entre clases
public boolean alarma(){ PresionArterial p1,p2;
/*Retorna true si temperatura > SignosVitales s1,s2;
umbralTemp o alarmaHipertensión es p1 = new PresionArterial(60,115);
true*/ p2 = new PresionArterial (90,185);
return temperatura > umbralTemp || s1 = new SignosVitales(36.2,p1);
presion.alarmaHipertension() ; s2 = new SignosVitales(36.5,p2)
} if (s1.alarma())
System.out.println("Alarma a las 6");
01100
if (s1.alarma()) 10011
System.out.println("Alarma a las 12");
10110
01110
p1 :PresionArterial 01100
:SignosVitales min = 60
temperatura=36.2 max = 115
umbralTemp1 0 0 1 1
s1 10110
presion
36.2 > 37.5 01 10 10 11 0
p2 1 11
:PresionArterial 0 0
:SignosVitales min = 90 1
s2 Temperatura=36.5 max = 185
presion
Asociación entre clases
public boolean alarmaHipertension(){ PresionArterial p1,p2;
/* retorna true si max > umbralMax o SignosVitales s1,s2;
min > umbralMin*/ p1 = new PresionArterial(60,115);
return min > umbralMin || p2 = new PresionArterial (90,185);
max > umbralMax;} s1 = new SignosVitales(36.2,p1);
s2 = new SignosVitales(36.5,p2)
if (s1.alarma())
PresionArterial System.out.println("Alarma a las 6");
01100
if (s1.alarma()) 10011
System.out.println("Alarma a las 12");
10110
01110
p1 :PresionArterial 01100
:SignosVitales min = 60
temperatura=36.2 max = 115
umbralMin 10011
s1 10110
presion
60 > 75 01110
1001
p2 115 > 140 1 11
:PresionArterial 0 0
:SignosVitales
Temperatura=36.5
min = 90 umbralMax 1
s2 max = 185
presion
Asociación entre clases
public boolean alarma(){ PresionArterial p1,p2;
/*Retorna true si temperatura > SignosVitales s1,s2;
umbralTemp o alarmaHipertensión es p1 = new PresionArterial(60,115);
true*/ p2 = new PresionArterial (90,185);
return temperatura > umbralTemp || s1 = new SignosVitales(36.2,p1);
presion.alarmaHipertension() ; s2 = new SignosVitales(36.5,p2)
} if (s1.alarma())
System.out.println("Alarma a las 6");
01100
if (s1.alarma()) 10011
System.out.println("Alarma a las 12");
10110
01110
p1 :PresionArterial 01100
:SignosVitales min = 60 10011
s1 temperatura=36.2 max = 115
presion
10110
01110
1001
p2 1 11
:PresionArterial 0 0
:SignosVitales min = 90 1
s2 Temperatura=36.5 max = 185
presion
Asociación entre clases
public boolean alarma(){ PresionArterial p1,p2;
/*Retorna true si temperatura > SignosVitales s1,s2;
umbralTemp o alarmaHipertensión es p1 = new PresionArterial(60,115);
true*/ p2 = new PresionArterial (90,185);
return temperatura > umbralTemp || s1 = new SignosVitales(36.2,p1);
presion.alarmaHipertension() ; s2 = new SignosVitales(36.5,p2)
} if (s1.alarma())
System.out.println("Alarma a las 6");
01100
if (s2.alarma()) 10011
System.out.println("Alarma a las 12");
10110
01110
p1 :PresionArterial 01100
:SignosVitales min = 60
temperatura=36.2 max = 115
umbralTemp1 0 0 1 1
s1 10110
presion
36.5 > 37.5 01 10 10 11 0
p2 1 11
:PresionArterial 0 0
:SignosVitales min = 90 1
s2 Temperatura=36.5 max = 185
presion
Asociación entre clases
public boolean alarmaHipertension(){ PresionArterial p1,p2;
/* retorna true si max > umbralMax o SignosVitales s1,s2;
min > umbralMin*/ p1 = new PresionArterial(60,115);
return min > umbralMin || p2 = new PresionArterial (90,185);
max > umbralMax; s1 = new SignosVitales(36.2,p1);
} s2 = new SignosVitales(36.5,p2)
if (s1.alarma())
PresionArterial System.out.println("Alarma a las 6");
01100
if (s2.alarma()) 10011
System.out.println("Alarma a las 12");
10110
01110
p1 :PresionArterial 01100
:SignosVitales min = 60
temperatura=36.2 max = 115
umbralMin 10011
s1 10110
presion
90 > 75 01110
1001
p2 185 > 140 1 11
:PresionArterial 0 0
:SignosVitales
Temperatura=36.5
min = 90 umbralMax 1
s2 max = 185
presion
Asociación entre clases
public boolean alarma(){ PresionArterial p1,p2;
/*Retorna true si temperatura > SignosVitales s1,s2;
umbralTemp o alarmaHipertensión es p1 = new PresionArterial(60,115);
true*/ p2 = new PresionArterial (90,185);
return temperatura > umbralTemp || s1 = new SignosVitales(36.2,p1);
presion.alarmaHipertension() ; s2 = new SignosVitales(36.5,p2)
} if (s1.alarma())
System.out.println("Alarma a las 6");
01100
if (s2.alarma()) 10011
System.out.println("Alarma a las 12");
10110
01110
p1 :PresionArterial 01100
:SignosVitales min = 60 10011
s1 temperatura=36.2 max = 115
presion
10110
Alarma a las 1201 10 10 11 0
p2 1 11
:PresionArterial 0 0
:SignosVitales min = 90 1
s2 Temperatura=36.5 max = 185
presion
Asociación entre clases
PresionArterial SignosVitales

<<Atributos de clase>> <<Atributo de clase>>


umbralMin = 75 umbralTemp = 37.5
umbralMax = 140 <<Atributos de Instancia>>
<<Atributos de Instancia>> temperatura: real
min, max: entero presion: PresionArterial

Entender qué dice el diagrama, cuándo el estado de un paciente dispara 01100


10011
una alarma.
10110
01110
:PresionArterial 01100
:SignosVitales min = 60 10011
s1 temperatura=36.2 max = 115
presion
10110
Alarma a las 1201 10 10 11 0
1 11
:PresionArterial 0 0
:SignosVitales min = 90 1
s2 Temperatura=36.5 max = 185
presion
Clientes y proveedoras

La clase PresionArterial brinda servicios que la clase


SignosVitales usa.
Decimos que clase PresionArterial cumple el rol de
proveedora y SignosVitales es su cliente.
La clase tester también usa los servicios de 01100
10011
PresionArterial y además usa a SignosVitales. 10110
01110
De modo que SignosVitales es al mismo tiempo cliente y 01100
proveedora. 10011
10110
01110
1001
1 11
0 0
1

También podría gustarte