UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA ELÉCTRICA Y
ELECTRÓNICA
Programación Orientada a Objetos (BMA15-M)
Informe 3
GRUPO 8
Integrantes:
• Araujo Rivera, York Americano (20220561F)
• Poma Reza, Christian Marino (20210376A)
• Lopez Torres, Jeremy Carlos (20222019D)
Docente: Msc. Ing. Castillo Belsuzarri, Trini
2023
1
ÍNDICE
Aporte de Araujo Rivera, York Americano… ................................................................. 3
Aporte de López Torres, Jeremy Carlos… ..................................................................... 11
Aporte de Poma Reza, Christian Marino… ................................................................... 17
2
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Programación Orientada a Objetos
Grupo 8
Integrante: Araujo Rivera, York Americano
Docente: Msc. Ing. Castillo Belsuzarri, Trini
3
Araujo Rivera York Americano
DIAGRAMA DE CLASES
4
CLASE ALUMNO
CLASE CURSO
5
CLASE CALIFICACIÓN
CLASE MAIN
6
COMPILADO
CLASE ALUMNO
package calificación;
import [Link];
public class Alumno {
Scanner e= new Scanner([Link]);
public String Name(){
String name;
[Link]("Ingrese su nombre: ");
name=[Link]();
return name;
public String Curso(){
String c;
[Link]("Ingrese el nombre del curso: ");
c=[Link]();
return c;
}
7
CLASE CURSO
package calificación;
import [Link];
public class Curso {
Scanner e= new Scanner([Link]);
public double parcial(){
double parcial;
[Link]("ingrese la nota de su parcial: ");
parcial=[Link]();
while(parcial<0 ||parcial>20){
[Link]("**Tiene que ser una nota valida**");
[Link]("ingrese una nota valida para su parcial: ");
parcial=[Link]();
return parcial;
public double Final(){
double Final;
[Link]("ingrese la nota de su examen final: ");
Final=[Link]();
while(Final<0 ||Final>20){
[Link]("**Tiene que ser una nota valida**");
[Link]("ingrese una nota valida para su examen final: ");
Final=[Link]();
return Final;
8
CLASE CALIFICACIÓN
package calificación;
import [Link];
public class Calificación {
public double promedioPC(int n){
Scanner e= new Scanner([Link]);
double n2,prom=0;
for(int i=1;i<=n;i++){
[Link]("ingrese la nota de la pc"+i+": ");
n2= [Link]();
while(n2<0 ||n2>20){
[Link]("**Tiene que ser una nota valida**");
[Link]("ingrese una nota valida para su pc"+i+": ");
n2= [Link]();
}
prom+=n2;
double promedio=prom/n;
return promedio;
public double promedioFinal(double parcial, double Final, double promedioPC){
double promed= (parcial+Final+promedioPC)/3;
return promed;
9
CLASE MAIN
package calificación;
import [Link];
public class main {
public static void main(String[] args){
Scanner e= new Scanner([Link]);
Alumno alm= new Alumno();
Calificación cal= new Calificación();
Curso curso= new Curso();
String name =[Link]();
String c= [Link]();
int n;
[Link]("Cuantas pcs tiene "+c+"?: ");
n= [Link]();
double promedioPC= [Link](n);
double parcial= [Link]();
double Final= [Link]();
[Link](""+name+" su promedio final en "+c+" es:
"+[Link](parcial,Final,promedioPC));
10
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Programación Orientada a Objetos
Grupo 8
Integrante: López Torres, Jeremy Carlos
Docente: Msc. Ing. Castillo Belsuzarri, Trini
11
López Torres, Jeremy Carlos
CÓDIGO EN NETBEANS
Clase Autor
package [Link];
import [Link];
public class Autor {
private String nombre;
private String nacionalidad;
public Autor(String nombre, String nacionalidad) {
[Link] = nombre;
[Link] = nacionalidad;
public String getNombre() {
return nombre;
public String getNacionalidad() {
return nacionalidad;
public static void main(String[] args) {
// Crear autores
Autor autor1 = new Autor("Gabriel García Márquez", "Colombiano");
Autor autor2 = new Autor("Mario Vargas Llosa", "Peruano");
// Crear libros
ArrayList<Autor> autores1 = new ArrayList<>();
[Link](autor1);
Libro libro1 = new Libro("Cien años de soledad", 1967, autores1);
12
ArrayList<Autor> autores2 = new ArrayList<>();
[Link](autor2);
Libro libro2 = new Libro("La ciudad y los perros", 1963, autores2);
// Crear biblioteca
ArrayList<Libro> libros = new ArrayList<>();
[Link](libro1);
[Link](libro2);
ArrayList<Autor> autores = new ArrayList<>();
[Link](autor1);
[Link](autor2);
Biblioteca biblioteca = new Biblioteca(libros, autores);
// Mostrar información de la biblioteca
[Link]("La biblioteca tiene los siguientes libros:");
for (Libro libro : [Link]()) {
[Link]("Título: " + [Link]());
[Link]("Año de publicación: " + [Link]ñoPublicacion());
[Link]("Autores:");
for (Autor autor : [Link]()) {
[Link]("- " + [Link]() + " (" + [Link]() + ")");
[Link]();
[Link]("La biblioteca tiene los siguientes autores:");
for (Autor autor : [Link]()) {
[Link]("Nombre: " + [Link]());
[Link]("Nacionalidad: " + [Link]());
[Link]();
13
Clase libro
package [Link];
import [Link];
public class Libro {
private String titulo;
private int añoPublicacion;
private ArrayList<Autor> autores;
public Libro(String titulo, int añoPublicacion, ArrayList<Autor> autores) {
[Link] = titulo;
this.añoPublicacion = añoPublicacion;
[Link] = autores;
public String getTitulo() {
return titulo;
public int getAñoPublicacion() {
return añoPublicacion;
public ArrayList<Autor> getAutores() {
return autores;
14
Clase biblioteca
package [Link];
import [Link];
public class Biblioteca {
private ArrayList<Libro> libros;
private ArrayList<Autor> autores;
public Biblioteca(ArrayList<Libro> libros, ArrayList<Autor> autores) {
[Link] = libros;
[Link] = autores;
}
public ArrayList<Libro> getLibros() {
return libros;
public ArrayList<Autor> getAutores() {
return autores;
15
COMPILACIÓN DEL CÓDIGO
DIAGRAMA DE CLASES
16
UNIVERSIDAD NACIONAL DE INGENIERÍA FACULTAD DE INGENIERÍA
ELÉCTRICA Y ELECTRÓNICA
PROGRAMACION ORIENTADA A OBJETOS
RELACION DE CLASES
CÓDIGO DEL CURSO: BMA15 M
Poma Reza, Christian Marino 20210376A
DOCENTE: Msc. Ing. Castillo Belsuzarri, Trini.
2022
17
RELACIONES ENTRE CLASES
RELACION DE ASOCIACIÓN
Asociación bidireccional, ya que las clases se comunican entre sí
• DIAGRAMA UML
• CODIGO NETBEANS
Clase principal
package [Link].pro_asociacion;
public class PRO_Asociacion {
public static void main(String[] args) {
[Link]("Ejercicio de problema de asociacion bidireccional ");
//creacion de objetos para llamar a las funciones se crean en el main principal
Empresa compañia=new Empresa("Juan",18); //los argumentos dl objeto
// creacoin del segudo objeto
Empleado trabajador= new Empleado("Audi","Cuatroporcuatro",compañia);
//arriba se le pone los nombres a los argumentos, la marca, el modelo y la empresa
compañ[Link]();
• CLASE EMPRESA
package [Link].pro_asociacion;
//Creamos una clase bidireccional con multiples variables
// por una empresa puede tener muchos empleados y un empleado puede trabajar en muchas empresas
public class Empresa {
private String Nombre;
private int Edad;
Empleado empleado;
18
public Empresa(String Nombre, int Edad) {
[Link] = Nombre;
[Link] = Edad;
public void setEmpleado(Empleado empleado){
[Link]=empleado;
public void Saludar(){
[Link]("Hola, soy la Empresa TheChrisCOmpany, mi empleado es "+ Nombre+" y el tiene "
+ Edad+" años");
//llamamos a un objeto creoado dentro de la clase Empleado
[Link]();
public void MejorEmpleado(){
[Link]("El mejor empleado ha sido "+Nombre+" y tiene "+Edad+" años "+" el modelo es
"+[Link]()); // se le hace llamar al get porque se va a mostrar algo en pantalla
• CLASE EMPLEADO
package [Link].pro_asociacion;
public class Empleado {
private String Marca;
private String Modelo;
Empresa empresa;
public Empleado(String Marca, String Modelo, Empresa empresa) {
[Link] = Marca;
[Link] = Modelo;
[Link]=empresa;
[Link](this);
//creando un getter para modelo
public String getModelo() {
return Modelo;
}
public void Cualidades(){
[Link]("Me gusta trabajar y mi marca es "+Marca+" mi modelo es "+Modelo+" Audi");
//creamos otro metodo de la otra clase, pero ya de la empresa llamada [Link]();
[Link]();
• COMPILACION
EJEMPLO DE RELACION DE GENERALIZACIÓN
• DIAGRAMA UML
• CODIGO EN NETBEANS
CLASE PRINCIPAL
package [Link];
public class GeneralizacionMain {
public static void main(String[] args) {
[Link]("Ejercicio de relacion de generalizacion-Herencia");
//creamos un oobjeto de la clase estudiante que es una subclase hija de la super clse Person
Estudiante estudiante=new Estudiante("Christian","Poma Reza",23,19,20216.2f);
[Link]();
• CLASE Estudiante
package [Link];
//antes de nada tenemos que decirle al programa que esta clase
// hereda los atributos y metodos de la subclase Persona con la palabra extends
public class Estudiante extends Persona{
private int CodigoEstudiante;
private float NotaFinal;
public Estudiante (String Nombre, String Apellido, int Edad, int CodigoEstudiante, float NotaFinal){
super(Nombre,Apellido,Edad); // con esto le decimos al programa que estos aatributos ya han sido
inicializados
[Link]=CodigoEstudiante;
[Link]=NotaFinal;
public void MostrarDatos(){
[Link]("\nNombre: "+getNombre()+"\nApellido: "+getApellido()+"\nEdad:
"+getEdad()+"\nEl codigo de estudiante es: "+CodigoEstudiante+"\nNota final: "+NotaFinal);
}
• CLASE PERSONA
package [Link];
public class Persona {
private String Nombre;
private String Apellido;
private int Edad;
//inicializamos el metodo constructor
public Persona(String Nombre, String Apellido, int Edad) {
[Link] = Nombre;
[Link] = Apellido;
[Link] = Edad;
}
public String getNombre() {
return Nombre;
public String getApellido() {
return Apellido;
public int getEdad() {
return Edad;
• COMPILACION
EJEMPLO DE COMPOSICIÓN
Se da cuando un objeto contiene a otro objeto
• DIAGRAMA UML
• CODIGO EN NETBEANS
CLASE PRINCIPAL POO_COMPOSICION
package [Link].poo_composicion;
public class POO_Composicion {
public static void main(String[] args) {
//creamos otro objeto
Direccion d=new Direccion("Jiron Choque", "Cuatro", "Cinco", "Peru", 12, "Lima");
FechaNacimiento f= new FechaNacimiento( 10, 07, 2023);
//creamos un objeto para crear un cliente
Cliente c=new Cliente("Pedro","Pica","Piedra",f,d );
//Utilizando los setter y getters
[Link](d);
[Link](f);
//crear un objeto para llamar a la funcion
[Link](c);
}
• CLASE CLIENTE
package [Link].poo_composicion;
public class Cliente {
private String Nombre;
private String ApellidoPaterno;
private String ApellidoMaterno;
private FechaNacimiento fechaNacimiento; //inicializamos el objeto de la otra clase y le ponemos
fechaNacimiento
private Direccion direccion; //inicializamos el objeto de la otra clase y le ponemos direccion
public Cliente(String Nombre, String ApellidoPaterno, String ApellidoMaterno, FechaNacimiento
fechaNacimiento, Direccion direccion) {
[Link] = Nombre;
[Link] = ApellidoPaterno;
[Link] = ApellidoMaterno;
[Link] = fechaNacimiento;
[Link] = direccion;
public String getNombre() {
return Nombre;
public void setNombre(String Nombre) {
[Link] = Nombre;
public String getApellidoPaterno() {
return ApellidoPaterno;
public void setApellidoPaterno(String ApellidoPaterno) {
[Link] = ApellidoPaterno;
public String getApellidoMaterno() {
return ApellidoMaterno;
public void setApellidoMaterno(String ApellidoMaterno) {
[Link] = ApellidoMaterno;
public FechaNacimiento getFechaNacimiento() {
return fechaNacimiento;
}
public void setFechaNacimiento(FechaNacimiento fechaNacimiento) {
[Link] = fechaNacimiento;
public Direccion getDireccion() {
return direccion;
public void setDireccion(Direccion direccion) {
[Link] = direccion;
public String toString(){
return ("Nombre: "+ [Link]+ " "+ [Link]+" "+ [Link]+
"\nFecha " + [Link]+"\nDireccion: "+[Link]);
CLASE FechaNacimiento
package [Link].poo_composicion;
public class FechaNacimiento {
private int Dia;
private int Mes;
private int Año;
public FechaNacimiento(int Dia, int Mes, int Año) {
[Link] = Dia;
[Link] = Mes;
this.Año = Año;
public int getDia() {
return Dia;
public void setDia(int Dia) {
[Link] = Dia;
public int getMes() {
return Mes;
}
public void setMes(int Mes) {
[Link] = Mes;
public int getAño() {
return Año;
public void setAño(int Año) {
this.Año = Año;
public String toString(){
return([Link]+"/"+[Link]+"/"+this.Año);
• CLASE DIRECCION
package [Link].poo_composicion;
public class Direccion {
private String Calle;
private String NumeroExterno;
private String NumeroInterno;
private String Colonia;
private int CodigoPostal;
private String Cuidad;
//creamos los constructores de todos
public Direccion(String Calle, String NumeroExterno, String NumeroInterno, String Colonia, int
CodigoPostal, String Cuidad) {
[Link] = Calle;
[Link] = NumeroExterno;
[Link] = NumeroInterno;
[Link] = Colonia;
[Link] = CodigoPostal;
[Link] = Cuidad;
public String getCalle() {
return Calle;
public void setCalle(String Calle) {
[Link] = Calle;
public String getNumeroExterno() {
return NumeroExterno;
public void setNumeroExterno(String NumeroExterno) {
[Link] = NumeroExterno;
public String getNumeroInterno() {
return NumeroInterno;
public void setNumeroInterno(String NumeroInterno) {
[Link] = NumeroInterno;
public String getColonia() {
return Colonia;
public void setColonia(String Colonia) {
[Link] = Colonia;
public int getCodigoPostal() {
return CodigoPostal;
public void setCodigoPostal(int CodigoPostal) {
[Link] = CodigoPostal;
}
public String getCuidad() {
return Cuidad;
// me lo da con parametro porque
public void setCuidad(String Cuidad) {
[Link] = Cuidad;
public String toString(){
return ([Link]+" "+[Link]+" "+[Link]+" "+[Link]+" "+[Link]);
• COMPILACION: