Вы находитесь на странице: 1из 12

Trabajo Práctico N°4

“PROGRAMACION ORIENTADA A OBJETOS”

GRUPO 2

ALUMNOS DNI MAIL

Suruguay, Cristian David 31036198 suru31036@gmail.com


Leañez, Raúl Armando 25613380 leañezraul@gmail.com
Vázquez, Bruno Alejandro 38746013 brunonx30@gmail.com
Robles, Marcio Héctor 39199388 Marciohectorrobles@gmail.com
Fernández, Pablo Ariel 33254590 pablo_paf@yahoo.com.ar

Fecha de Entrega: 07/04/2019


MDP y PC 2018 Trabajo Practico N° 4 “Programación Orientada a Objetos”

1) Defina Clase, Propiedades, Método y Objeto. Plantee un ejemplo donde pueda observar cada uno de
estos conceptos.

Clase: Una clase es un tipo de dato que contiene uno o más elementos llamados dato miembro, y cero, una
o más funciones que manipulan esos datos (llamados función miembro). Una clase se puede definir con una
estructura, una unión o una clase.
Propiedades: Son datos encapsulados dentro del objeto, junto con los métodos (programas) y las relaciones
(punteros a otros objetos).

Método: son las operaciones que pueden realizarse sobre el objeto, que normalmente estarán incorporados
en forma de programas (código) que el objeto es capaz de ejecutar y que también pone a disposición de sus
descendientes a través de la herencia.
Son una operación que realiza acceso a los datos. Es un programa procedimental o procedural escrito en
cualquier lenguaje, que está asociado a un objeto determinado y cuya ejecución sólo puede desencadenarse
a través de un mensaje recibido por éste o por sus descendientes.
Objeto: es una entidad lógica que contiene datos y un código especial que indica como manipular los datos.
Son construcciones de programación que se obtienen a partir de entidades llamadas clases.
Ejemplo: cuentas de un banco

Cuenta void Cuenta:: inicializar( long int num)


numero_cuenta {
saldo numero_cuenta = num;
interés_anual saldo = 0;
Inicializar (long) interes_anual = 0;
dar_saldo(): float }
dar_interes(): float Cuenta:: dar_saldo()
float { return saldo; }
float Cuenta:: dar_interes()
{ return interes_anual ; }

2) Para las relaciones Jerárquicas Simples y Relaciones Jerárquicas Complejas realice los siguiente:
a) Defina y represente gráficamente.
b) Escriba la diferencia entre ellas.
c) Plantee un ejemplo real en el que se puede aplicar algunos de los tipos anteriores, el ejemplo
debe ser distinto al visto en la teoría.

Relaciones jerárquicas simples: es aquella en la que un objeto puede tener un solo padre.

AUTOMOVIL

COCHE CAMION

PARTICULAR TAXI PATRULLERO

Suruguay, Robles, Leañez, Vázquez, Fernández Página 1 de 11


MDP y PC 2018 Trabajo Practico N° 4 “Programación Orientada a Objetos”

Relaciones jerárquicas complejas: es aquella en la que un hijo puede tener varios padres.

PERSONA

PROFESOR INVESTIGADOR

PROFESOR
UNIVERSITARIO

La diferencia entre estos dos tipos de relaciones es que, en la simple una clase hereda únicamente de otra (herencia
simple); la segunda tiene un comportamiento similar a la simple, con la diferencia de que una clase hija tiene uno o
más clases padres.

3) ¿Qué diferencia hay entre una relación “Es-un” y “Parte-de”?, plantee un ejemplo para cada uno
distinto al visto en la Teoría.

La diferencia radica es que la relación “Es-un” es una relación de especialización en este caso un objeto contiene la
definición de otro y añade comportamientos adicionales; en cambio la relación “Parte-de” hay objetos compuesto por
otros objetos, hay una relación de contenencia, en este caso un objeto es parte de otro cuando conserva su
independencia.

Ejemplo:

Parte – de
TECLADO COMPUTADORA

Este agregado a la computadora, si lo


saco, la computadora sigue existiendo.

Es – un
TECLADO TECLAS

En este caso, el teclado está compuesto


de teclas, si los saco, el teclado deja de
existir

Suruguay, Robles, Leañez, Vázquez, Fernández Página 2 de 11


MDP y PC 2018 Trabajo Practico N° 4 “Programación Orientada a Objetos”

4) Para los ejemplos desarrollados en el punto 3) realice los siguiente:


a) Escriba las propiedades y métodos de los objetos.
b) Indique cuales son propiedades propias y cuales heredadas.
c) Indique cuales son Superclases y Subclases.

La subclase Teclado hereda de la superclase teclas

Objeto teclado:

Propiedades propias:
Conectado (indica un valor de verdad si está conectado con el pc)

Propiedades que hereda:


teclaP (tecla palabra)
teclaS (tecla símbolo)
teclaN (tecla numero)
teclaW (tecla de windows)

Suruguay, Robles, Leañez, Vázquez, Fernández Página 3 de 11


MDP y PC 2018 Trabajo Practico N° 4 “Programación Orientada a Objetos”

La subclase Teclado hereda de la superclase computadora

Objeto Teclado:

Propiedades propias:
Conectado (indica un valor de verdad si está conectado con el pc)

Propiedades que hereda:


Cont PerifericoConectads() (El teclado como tantos otros es un periférico de la computadora)

5) Explique qué entiende por Encapsulamiento, Polimorfismo, Bajo Acoplamiento y Alta Cohesión. Mencione
un ejemplo de polimorfismo distinto al visto en la Teoría (Plantee un ejemplo en el que se utilice Herencia
Múltiple).

Encapsulamiento:

Los objetos son inaccesibles, e impiden que otros objetos, los usuarios, o incluso los programadores conozcan cómo
está distribuida la información o qué información hay disponible.

Las peticiones de información a un objeto, deben realizarse a través de mensajes dirigidos a él, con la orden de
realizar la operación pertinente. La respuesta a estas órdenes será la información requerida, siempre que el objeto
considere que quien envía el mensaje está autorizado para obtenerla.
El hecho de que cada objeto sea una cápsula facilita enormemente que un objeto determinado pueda ser
transportado a otro punto de la organización, o incluso a otra organización totalmente diferente que precise de él.

Polimorfismo:

Se refiere a la capacidad que tiene el objeto para hacer lo adecuado después de haber recibido un mensaje,
independientemente de quién lo haya enviado. Hay que tener en cuenta que el polimorfismo se mueve a través de la
herencia, dicho de otra forma trata de hacer posible enviar mensajes genéricos a objetos y que éstos realicen lo
estipulado de acuerdo a su codificación interna, es decir, la acción varía en relación al receptor del mensaje.

Ejemplo: Se desea enviar un mensaje a dos objetos distintos (Triángulo y Rectángulo) los cuales podrían ser
descendientes de la clase polígono, sin embargo cuando el triángulo reciba la orden área, la ejecución de este
método se obtendrá a partir de (b*h)/2 en cambio si se activa el mismo método para el rectángulo el valor se
calculará a partir de ð *r2 , aún cuando ambos objetos recibieron la misma orden.

Suruguay, Robles, Leañez, Vázquez, Fernández Página 4 de 11


MDP y PC 2018 Trabajo Practico N° 4 “Programación Orientada a Objetos”

Bajo Acoplamiento:
Tener las clases lo menos ligadas entre sí que se pueda, de tal forma que, en caso de producirse una modificación
en alguna de ellas, tenga la mínima repercusión posible en el resto de clases, potenciando la reutilización, y
disminuyendo la dependencia entre las clases

Alta Cohesión:
La información que almacena una clase debe de ser coherente y debe estar, en la medida de lo posible, relacionada
con la clase.

Herencia múltiple:
Lenguajes orientados a objetos, como C++, java y otros permiten herencias múltiples, lo que significa que una clase
puede heredar los atributos de otras dos superclases. Este método puede utilizarse para agrupar atributos y métodos
desde varias clases dentro de una sola.

Suruguay, Robles, Leañez, Vázquez, Fernández Página 5 de 11


MDP y PC 2018 Trabajo Practico N° 4 “Programación Orientada a Objetos”

6) Represente las clases a partir de los objetos que se indican a continuación, identifique las propiedades y
métodos asociadas a los objetos, indique las relaciones entre ellos.
 Alumno
 Profesor
 Persona

PERSONA
Nombre
Apellido
DNI
Domicilio
Teléfono
FecNac
Edad
Talla
getNombre()
getApellido()
getDNI()
getDomicilio()
getTelefono()
getFecNac()
getEdad()
getEdad()
setNombre()
setApellido
setDNI()
setDomicilio()
setTelefono()
setFecNac()
setEdad()
SetTalla()

ALUMNO PROFESOR
LU IdProfesor
Carrera Materia
Materia Antigüedad
PromConApl Area
PromSinApl getProfesor()
PorcCarreAprob getMateria()
getLU( ) getAntiguedad()
getCarrera() getArea()
getMateria() setIdProfesor()
getPromConApl() setMateria()
getPromSinApl() setAntiguedad()
getPorcCarreAprob() setArea()
setLU( )
setCarrera()
setMateria()
setPromConApl()
setPromSinApl()
setPorcCarreAprob()

Suruguay, Robles, Leañez, Vázquez, Fernández Página 6 de 11


MDP y PC 2018 Trabajo Practico N° 4 “Programación Orientada a Objetos”

7) Utilice un Lenguaje Orientado a Objetos (Java, C++, C Sharp) y codifique las clases y relaciones
representadas en el punto anterior en dos lenguajes distintos: las clases Persona y Alumno en un
lenguaje y las clases Persona y Profesor en otro lenguaje.

JAVA

package modelotp4;

public class Tp4modelo {

public static void main(String[] args) {

Alumno a = new Alumno();


a.setNombre("Jose");
a.setApellido("Perez");
a.setDni(12345678);
a.setDomicilio("Los Perales");
a.setTelefono(123456);
a.setLU(1234);
a.setFechnac("23-4-1995");
a.setEdad(25);
a.setTalla("1,67m");
System.out.println("Nombre Alumno: "+a.getNombre());
System.out.println("Apellido Alumno: "+a.getApellido());
System.out.println("DNI: "+a.getDni());
System.out.println("Domicilio: "+a.getDomicilio());
System.out.println("Telefono: "+a.getTelefono());
System.out.println("LU: "+a.getLu());

Clase Persona
package modelotp4;

public class Persona {


private String nombre;
private String apellido;
private int dni;
private String domicilio;
private int telefono;
private String fech_nac;
private int edad;
private String talla;

public void Persona ()


{

public String getNombre() {


return nombre;
}
public String getApellido() {
return apellido;
}
public int getDni() {
return dni;
}
public String getDomicilio() {

Suruguay, Robles, Leañez, Vázquez, Fernández Página 7 de 11


MDP y PC 2018 Trabajo Practico N° 4 “Programación Orientada a Objetos”

return domicilio;
}
public int getTelefono() {
return telefono;
}
public String getFechnac() {
return fech_nac;
}
public int getEdad() {
return edad;
}
public String getTalla() {
return talla;
}

public void setNombre(String setNom) {


this.nombre = setNom;
}
public void setApellido(String setApe) {
this.apellido = setApe;
}
public void setDni(int setDNI) {
this.dni = setDNI;
}
public void setDomicilio(String setDomi) {
this.domicilio = setDomi;
}
public void setTelefono(int setTelf) {
this.telefono = setTelf;
}
public void setFechnac(String setFec) {
this.fech_nac = setFec;
}
public void setEdad(int setEda) {
this.edad = setEda;
}
public void setTalla(String setTall) {
this.talla = setTall;
}
}

Clase alumno
package modelotp4;

public class Alumno extends Persona {


private int lu;
private String carrera;
private String materia;
private float prom_aplazos;
private float prom_sin_aplazos;
private String porc_carre_aprob;

public void Alumno() {

}
public int getLu() {
return lu;
}
public String getCarrera() {
return carrera;
}

Suruguay, Robles, Leañez, Vázquez, Fernández Página 8 de 11


MDP y PC 2018 Trabajo Practico N° 4 “Programación Orientada a Objetos”

public String getMateria() {


return materia;
}
public float getProm_aplazos() {
return prom_aplazos;
}
public float getProm_sin_aplazos() {
return prom_sin_aplazos;
}
public String getPorc_carre_aprob() {
return porc_carre_aprob;
}

public void setLU(int v_lu) {


lu = v_lu;
}
public void setCarrera(String v_carrera) {
carrera = v_carrera;
}
public void setMateria(String v_materia) {
materia = v_materia;
}
public void setProm_aplazos(float v_prom_aplazos) {
prom_aplazos = v_prom_aplazos;
}
public void setProm_sin_aplazos(float v_prom_sin_aplazos) {
prom_sin_aplazos = v_prom_sin_aplazos;
}
public void setPorc_carre_aprob(String v_porc_carre_aprob) {
porc_carre_aprob = v_porc_carre_aprob;
}

}
C++
#include <iostream>
#include <stdlib.h>
#include <conio.h>

using namespace std;

class Persona
{
public:
string Nombre;
string Apellido;
int dni;
string Domicilio;
int Telefono;
string FecNac;
int Edad;
string Talla;

public:
Persona(string _Nombre, string _Apellido, int _dni,string _Domicilio,
int _Telefono, string _FecNac,int _Edad, string _Talla)
Suruguay, Robles, Leañez, Vázquez, Fernández Página 9 de 11
MDP y PC 2018 Trabajo Practico N° 4 “Programación Orientada a Objetos”

{
Nombre=_Nombre;
Apellido=_Apellido;
dni=_dni;
Domicilio=_Domicilio;
Telefono=_Telefono;
FecNac=_FecNac;
Edad=_Edad;
Talla=_Talla;
}
string GetNombre(){return Nombre;}
string GetApellido(){return Apellido;}
int GetDni(){return dni;}
string GetDomicilio(){return Domicilio;}
int GetTelefono(){return Telefono;}
string GetFecNac(){return FecNac;}
int GetEdad(){return Edad;}
string GetTalla(){return Talla;}

void SetNombre( string _Nombre)


{
Nombre=_Nombre;
}
void SetApellido( string _Apellido)
{
Apellido=_Apellido;
}
void SetDni( int _dni)
{
dni=_dni;
}
void SetDomicilio( string _Domicilio)
{
Domicilio= _Domicilio;
}
void SetTelefono( int _Telefono)
{
Telefono=_Telefono;
}
void SetFecNac( string _FecNac)
{
FecNac=_FecNac;
}
void SetEdad( int _Edad)
{
Edad=_Edad;
}
Suruguay, Robles, Leañez, Vázquez, Fernández Página 10 de 11
MDP y PC 2018 Trabajo Practico N° 4 “Programación Orientada a Objetos”

void SetTalla( string _Talla)


{
Talla=_Talla;
}
};
class Profesor : public Persona
{
public:
int IdProfesor;
string Materia;
string Antiguedad;
string Area;

int GetIdProfeesor(){return IdProfesor;}


string GetMateria(){return Materia;}
string GetAntiguedad(){return Antiguedad;}
string GetArea(){return Area;}

void SetIdProfesor( int _IdProfesor)


{
IdProfesor = _IdProfesor;
}
void SetMateria( string _Materia)
{
Materia = _Materia;
}
void SetAntiguedad( string _Antiguedad)
{
Antiguedad = _Antiguedad;
}
void SetArea( string _Area)
{
Area = _Area;
}
};
int main()
{
Profesor Pedro;
Pedro.SetNombre("Juan");
Pedro.SetApellido("Lopez");
Pedro.SetMateria("Estadisticas");
cout<<Pedro.GetNombre();
cout<<Pedro.GetApellido();
xout<<Pedro.GetMateria();
system("pause");
return 0;
}
Suruguay, Robles, Leañez, Vázquez, Fernández Página 11 de 11

Вам также может понравиться