Está en la página 1de 9

Carátula para entrega de prácticas

Facultad de Ingeniería Laboratorio de docencia

Laboratorios de computación
salas A y B
Profesor: ING. Jose Antonio Ayala Barbosa

Asignatura: Programación Orientada a Objetos

Grupo: #1

No. de Práctica(s): #4 Clases y Objetos

Integrante(s): Uriarte Ortiz Enrique Yahir

No. de Equipo de cómputo


empleado: No aplica

No. de Lista o Brigada:


No aplica

Semestre: 2022-1

Fecha de entrega: Jueves 14 de Octubre del 2021

Observaciones:

CALIFICACIÓN: __________
Práctica No. 4 Clases y Objetos
Facultad de Ingeniería, Laboratorio de docencia.
Uriarte Ortiz Enrique Yahir < yahir.uriarte.ortiz@gmail.com >

Previo.
I. Pseudocódigo con al menos 5 elementos de las this.marca = marca;
clases: this.color = color;
A. Perro. this.numpuertas = numpuertas;
public class Perro { this.litrostanque = litrostanque;
String nombre, raza, color; }
int edad;
boolean vacunadorabia; public void numaccidentes(int
numac){
public Perro (String nombre, String System.out.println(“He sufrido”+
raza, String color, int edad, boolean numac +“accidentes en ese coche
vacunadorabia) { ”);}
this.nombre = nombre; public void precio(int precio){
this.raza = raza; System.out.println("El carro costo"
this.color = color; +precio);}
this.edad = edad; public void km(int km){
this.vacunadorabia = System.out.println("El carro me
vacunadorabia; marca” +km+ “ km recorridos
} hasta el momento con el”);}
public void llantas(int llantas){
public void numvecespasear(int System.out.println(“Se me han
veces, String lugar){ ponchado”+llantas+“ veces las
System.out.println("El perro sale a llantas desde que tengo el carro”);}
pasear”+veces+“al dia, en el ” public void destino(String lugar){
+lugar+ );} System.out.println(“Voy camino
public void precio(int precio){ a:”+lugar);}
System.out.println("El perro costo" }
+precio);}
public void alimento(int C. Triangulo rectángulo.
kilocroquetas){ public class TrianguloRect {
System.out.println("El perro int ladoa, ladob, área, hipotenusa,
como”+kilocroquetas+“kg al perimetro;
mes”);}
public void zapatos(int zapatos){ public Triangulo Rect (int ladoa, int
System.out.println("El perro me ha ladob, int área, int hipotenusa, int
roto”+zapatos+“ pares de perimetro) {
zapatos”);} this.ladoa = ladoa;
public void Juguete(String juguete){ this.ladob = ladob;
System.out.println("El juguete this.área = área;
favorito del perro es:"+juguete);} this.hipotenusa = hipotenusa;
} this.perimetro = perimetro;
}
B. Coche.
public class Carro { public void creado(String persona){
String modelo, marca, color; System.out.println( persona +
int numpuertas, litrostanque; “Hizo el triangulo”);}
public void color(String color){
public Carro (String modelo, String System.out.println("El triangulo
modelo, String color, int numpuertas, rectángulo es de color:"+color);}
int litrostanque) { public void unidades(int uni){
this.modelo = modelo; System.out.println("Las medidas
están en: ” +uni);} public void numtareas(int t){
public void funcion(int f){ System.out.println(“Esta semana
System.out.println(“Se construyo tengo”+t+“ tareas que entregar”);}
el triangulo para ”+f);} }
public void Comprobacion(){
if( [ladoa*ladoa]+[ladob*ladob]>
[hipotenusa*hipotenusa]){ E. Profesor.
System.out.println("El triángulo si
es de tipo rectangulo ");} public class Profesor {
else{ String nombre, apellido,
System.out.println("El truiangulo materia;
no es de tipo rectangulo");} int edad, numerogrupos;
}
public Profesor (String nombre,
String apellido, String materia, int
D. Alumno. edad, int numgrupos) {
public class Alumno { this.nombre = nombre;
String nombre, apellido, materiafav ; this.apellido = apellido;
int promedio, numerodecuenta; this.materia = materia;
this.edad = edad;
public Alumno (String nombre, String this.numgrupos = numgrupos;
apellido, String materiafav, int }
promedio, int numdecuenta) {
this.nombre = nombre; public void univercidad(String uni){
this.apellido = apellido; System.out.println(“El profesor
this.materiafav = materiafav; estudio en la universidad:”+uni+);}
this.promedio = promedio; public void grado(int grado){
this.numdecuenta = numdecuenta; System.out.println(“El profesor
} tiene como mayor titulo de
estudios:” +grado);}
public void nodormir(int dias){ public void recomendacion(int rec){
System.out.println(“El alumno no System.out.println(“Este profesor
ha dormido en ”+dias+“ dias”);} tiene un nivel de recomendación de
public void beca(int beca){ entre el 1 al 10 igual a:+rec+);}
System.out.println(“La cantidad de public void sueldo(int sueldo){
dinero que me dan de la beca es System.out.println(“El profesor
de:”+beca+“ pesos”);} debe tener” +sueldo+“de salario”);}
public void examenes(int examenes){ public void examen(int exa){
System.out.println(“Esta semana System.out.println(“Los examen
tengo”+examenes+“examenes que del profesor valen un” +exa+“% en
hacer”);} la calificación final”);}
public void Años(int años){ }
System.out.println(“Llevo”+años+“
años en la universidad”);}
Práctica No. 4 Clases y Objetos
Facultad de Ingeniería, Laboratorio de docencia.
Uriarte Ortiz Enrique Yahir < yahir.uriarte.ortiz@gmail.com >

I. Objetivo.
Ejemplo: Coche;
Aplicar los conceptos básicos de la programación • Características/Atributos: Color,
orientada a objetos en un lenguaje de programación. Modelo, Marca, Numero de
Puertas, etc.
II. Introducción. • Métodos: Encender, Apagar,
Avanzar, Acelerar, Girar, Prender
Actualmente el paradigma de programación orientado las luces, Tocar el claxon, etc.
a objetos es el más popular, ya que implica el tratar de
simular o modelar los objetos del mundo real, B. Herencia. Mecanismo por el cual una clase
anteriormente el paradigma más usado era el orientado padre hereda (transfiere) sus atributos y
a eventos (Visual Basic). métodos a otra clase/ clase hijo, permite crear
nuevas clases basadas en otras ya existentes
Clases: Aquello que nos permite abstraer elementos con el fin de reutilizar código. Ejemplo: Fig.1
(características y funciones) del mundo real a código;
“molde” para crear objetos, construye la 1
representación abstracta de algo. Animal
Ejemplo: Clase = Perro
• Atributos: Nombre, Raza y Color
2 2 2
• Métodos: Comer (), Dormir () y Ladrar ()
Perro Gato Ave
Objeto: Es una instancia de la clase, una entidad con
3 3
características y comportamiento especifico; se crean 3
a partir de clases, es la representación concreta de lo Pastor Persa Guacamaya
que la clase define. Alemán
Ejemplo: Clase = Perro: miPerro
3 3
• Atributos: Nombre: jacinto, Raza: Snauzer y Dálmata Siamés
Color: Negro
• Métodos: Comer (), Dormir () y Ladrar ()
Fig. 1. Representacion de Herencia.
Método: Algoritmo asociado a un objeto, cuya
ejecución se desencadena tras la recepción de un C. Polimorfismo. Es la capacidad que tienen los
“mensaje”; lo que un objeto puede realizar. elementos/objeto de una clase para responder
Tomando el ejemplo anterior del perro los métodos a un mismo mensaje en función de los
serian: Comer (), Dormir () y Ladrar (). parámetros utilizados durante su invocación.
Es la propiedad con la que una entidad o
Modificadores de acceso (Palabras Reservadas), comportamiento puede tomar diferentes
ocultar o mostrar la información deseada: formas. Ejempló: Uso complementario de la
• Prívate. (Acceso misma clase) herencia. Fig.2
• Public. (Acceso desde cualquier lugar)
• Default. (Acceso desde paquete) Transporte
• Protected. (Acceso desde la clase y sus Avanzar ()
hijos) Frenar ()
Se basa en 4 pilares:

A. Abstracción. La manera en como se pude Caballo Coche Avión


representar los objetos del mundo real al Avanzar () Avanzar () Avanzar ()
código, su objetivo es representar una Frenar () Frenar () Frenar ()
determinada entidad de la realidad, sus
características y funciones que realiza,
mediante el uso de clases, atributos y Fig. 2. Representacion de Polimorfismo con
métodos. Herencia.
Constructor. Metodo que tiene el mismo nombre que
Sobrecarga de metodos (overload): Permite la clase y cuyo proposito es inicializar los atributos de
usar el mismo nombre de un metodo en una un nuevo objeto. Se ejecuta automaticamente cuando
clase, pero con diferentes argumentos. se crea un objeto o instancia del la clase; dependiendo
del numero y tipos de los argumentos proporcionados
• Deben tener el mismo nombre. se llama al contructor correspondiente.
• Deben cambiar la lista de Si no se implementa, el constructor proporciona uno
argumentos. por defecto, el cual no tiene parametros e inicializa los
• Pueden cambiar el valor del atributos a su valor por defecto.
retorno. Reglas: Tiene el mismo nombre que la clase; puede
• Pueden cambiar el nivel de acceso. tener cero o mas parametros; no devuelve ningun valor
(ni si quiera void); toda clase debe tener al menos un
Ejemplo. contructor.
- public void area()
- public void area(int x, int y) Recolector de Basura. Destruccion de objetos
- public int area(int a, int b) X (Liberacion de memoria), por la asignacion de objetos
es muchas veces dinamica se cuenta con una
- public void area (float x, float y) destruccion tambien dinamica; cuando no existe
ninguna referencia a un objeto se supone que ese
objeto ya no se necesita (la memoria ocupada por este
D. Encapsulamiento. Es la capacidad de agrupar objeto puede ser recuperada [Liberada]).
y condensar distintos elementos en un
entorno con limites bien definidos, lo que
facilita a agrupar y ordenar elementos III. Desarrollo.
similares, y ocultar aquellos que queremos
asegurarnos de si integridad y evitar su mal Actividades:
manejo. El objetivo es el ocultamiento de la A. Crear clases.
información. B. Crear objetos o instancias.
C. Invocar métodos.
Sin alguno de estos no puede ser considerado como D. Utilizar constructores.
orientados objetos, podría ser considerado como
soporte para orientado a objetos, pero no propiamente Actividad extra:
orientado a objetos.
Otras propiedades básicas: A. Programar una de las clases restantes del
previo, utilizando también el método
A. Modularidad. El código fuente de un objeto toString ().
puede ser escrito independientemente de los
demás objetos y permite modificar las Para el desarrollo de esta práctica realizaremos la
características que definen una entidad de implementación del código en lenguaje java atreves
forma independiente con respecto a las del compilador que implementamos en las practicas
demás entidades en la aplicación o sistema. anteriores 1 y 2, “Apache NetBeans”, aunque el
profesor dio la libertad de utilizar el que gustemos, ya
B. Cohesión. Cada entidad de un sistema sea sea este o el implementado en línea la practica anterior
interpretada en relación con los demás, “Replit”, en lo personal se me hace más fácil usar el
entidad especializada con un propósito anteriormente indicado.
único. Será alta cuando de refieran a una Para iniciar abriremos la aplicación y crearemos un
única entidad, por lo que se puede sustituir nuevo proyectó nombrado “POOP4”, dentro de este
completamente sin tener que modificar a los crearemos la que será nuestra clase principal, llamada
demás. “Main”, que es donde implementaremos todas las
demás clases; crearemos un total de 4 clases además
C. Acoplamiento. Grado de relación de un de la main, incluyendo la de la actividad extra
módulo con los demás, a menor implica más mencionada cada una de las clases contiene
dependencia de los demás y el módulo en principalmente loa atributos del objeto, los
cuestión será más sencillo de diseñar, constructores y los métodos que expresaremos harán
programar, y mantener. cada uno; y todos ellos serán llamados al final en la
función main.
IV. Código Fuente. Ejercicio #2. En base a los pseudocodigos que hicimos
para el previo, realizaremos la implementacion del
Una vez que ya hallamos creado la clase main y la Alumno; asi como el ejercicio anterior declaramos los
clase Puntero, primero empezaremos a programar en atributos, que seran 5, tres Strings y dos enteros, en
esta, esta consiste principalmente de 3 partes: constructores tambien generamos 2, uno vacio y otro
Atributos del objeto, constructores y métodos del con todos los atributos definidos, recibiendo los
mismo. valores desde el inicio para llenar los atributos
Ejercicio#1. Para el caso de nuestra primera clase las previamente declarados que serían: String nombre,
variables x, y son nuestros atributos, después String apellido, int numCuenta, int edad, String grado.
declaramos un constructor, en NetBeans existe una Fig.5
manera más rápida de implementarlo, clic derecho en
la pantalla, seleccionamos la opción “insertar código”,
y seleccionamos un constructor, nos aparecerán las
variables que deseamos seleccionar, solo basta con
seleccionarlas y colocar continue para generarlo ; para
este caso se basara sin ningún valor de variable a
seleccionar dentro de esta, luego declaramos otro
constructor pero en este si recibirá los atributos x e y
con “this.”, recibiendo los valores desde el inicio para
llenar los atributos previamente declarados, por ultimo
declaramos un método que nos imprimirá el punto, Fig. 5. Clase Alumno.
concatenando los atributos x e y. Fig.3
Implementamos 5 métodos, cada uno no considera los
atributos, sino que dependiendo lo que vallamos a
realizar con las variables de objetos que le demos ya
sea desde solo imprimir un mensaje sencillo como el
método “public void despertar()” y “public void
estudiar()”, o imprimir también el mensaje con las
variables que le otorguemos, como “public void
tDormir(int m)”, “public void hTarea(int ctareas)”,
“public void goclass(int nmat)”, estos métodos
representarían los que el alumno puede o debe
realizar. Fig.6
Fig. 3. Clase Puntero.

En la clase main declaramos una varible Punto que se


llamara p1 que sera el objeto a crear, el cual es un
constructor vacio, la estructura quedaria como “ Punto
p1 = new Punto(); ” = “ (Referencia a clase)(Objeto a
crear) = ( Constructor vacio ); ”, para imprimir el
punto utilizamos un operador punto la estructura es
“(objeto)operador punto(metodo)”, declaramos en el
objeto a “x” con valor de 9 y a “y” con valor de 6, si Fig. 6. Clase Alumno.
no se indicara el valor automatico seria null = 0;
declaramos un nuevo objeto denominado p2 con una Además, vamos a implementar un método especial
lista de argumentos, declaramos desde un comienzo denominado “toString ()”, el cual se encuentra en el
los valores correspondientes a x,y y mandamos a mismo apartado donde seleccionamos el constructor;
imprimirlo con el metodo. Fig.4 que nos indica que vamos a pasar todos los parámetros
que dimos de inicio en una cadena donde vamos
imprimir todos los atributos de la clase. Fig.7

Fig. 7. Clase Alumno.

Fig. 4. Implementación de Clase Puntero en Main.


En la clase main volveremos a declaralos como en el lugar)”, “public void precio(String comprador)”,
ejercicio 1, declaramos una varible de Alumno que se “public void gasolina(int porcen)”, “public void
llamara alum1, sera el objeto a crear, el cual es un recotime(float h)”, además tendremos otro método
constructor vacio, la estructura quedaria como que no recibirá ningún dato sino que imprimirá un
“Alumno alum1 = new Alumno ("Yahir", "Uriarte", mensaje dependiendo de si el valor que le asignemos
318234757, 18, "Tercer Semestre");” = “ (Referencia al kilometraje es mayor a 50,000. Fig.10
a clase)(Objeto a crear) = ( Constructor vacio ) (Datos
de entarda a los atributos);, luego mandamos a
imprimir atravez del objeto alum1 con la ejecucion del
metodo despertar, luego el metodo goclass con su
variable para imprimir el año que cursa, imprecion del
metodo con el numero de tareas, imprecion de un
mensaje con el nombre y apellido, y la imprecion de
el numero de horas que el alumno desea dormir y por
utlimo manda a imprimir al objeto alum1 con los
valores para los atributos que definimos en la
imprecion en forma de lista, ademas creamos otro
objeto llamado alum2 que imprimira de nuevo la Fig. 10. Clase Carro.
cadena pero con nuevos valores para la lista. Fig.8
Además, vamos a implementar un método especial
denominado “toString ()”, el cual se encuentra en el
mismo apartado donde seleccionamos el constructor;
que nos indica que vamos a pasar todos los parámetros
que dimos de inicio en una cadena donde vamos
imprimir todos los atributos de la clase. Fig.11

Fig. 8. Implementación de Clase Alumno en Main

Ejercicio #3. Continuando con la implementacion de


los pseudocodigos que realizamos para el previo, Fig. 11. Clase Carro.
ahora implementaremos el del Carro; declaramos 5
atributos, tres Strings ,dos enteros y un booleano; en En la clase main lo declaramos, atraves de una varible
constructores tambien generamos nuevamente 2, uno de Carro que se llamara vhc1, sera el objeto a crear, el
vacio y otro con todos los atributos definidos, cual es un constructor vacio, “Carro vhc1 = new
recibiendo los valores desde el inicio para llenar los Carro("JEEP","Cheroke","Negro",2015,20000,true);”
atributos previamente declarados que serían: String = “(Referencia a clase)(Objeto a crear) = ( Constructor
marca, String modelo, String color, int anio, int km, vacio ) (Datos de entarda a los atributos);”, lo
boolean estandar;. Fig.9 mandamos a imprimir por el String del objeto vhc1,
luego madamos a la ejecucion del metodo servi que
nos imprimira si el carro requiere de su servicio de
agencia ya o todavia no; luego el metodo gasolina con
su variable para imprimirel porcetaje de lleno el
tanque, la imprecion del metodo con el destino,
imprecion de un mensaje con el nombre de la persona
ala que le vendremos el vehiculo, la imprecion del
tiempo de recorrido que como la declaramos float,
debemos especificar que es de este tipo en la misma
linea de llamada, colocamos las dos maneras de
Fig. 9. Clase Carro. ponerlo, ya sea con la palabra float dentro de un
parentesis o con una f al final del numero, al final este
Implementamos 5 métodos, cada uno no considera los solo depende del gusto del programador; y la
atributos, sino que dependiendo lo que vallamos a implementacion de un nuevo objeto llamado vhc2,
realizar con las variables de objetos que le demos ya donde al final declaramos que el atributo de
sea desde solo imprimir un mensaje sencillo o kilometraje vale 60000 y la imprecion de si este
imprimir también el mensaje con las variables que le requiere el servicio ya o todavia no. Fig.12
otorguemos, como “public void destino(String
Implementamos un método especial denominado
“toString ()”, el cual se encuentra en el mismo
apartado donde seleccionamos el constructor; que nos
indica que vamos a pasar todos los parámetros que
dimos de inicio en una cadena donde vamos imprimir
todos los atributos de la clase, ósea el perro que
describimos. Fig.15

Fig. 12. Implementación de Clase Carro en Main.

Ejercicio #4 – Actividad Extra. Como parte final


implementare unos de los códigos de los programas Fig. 15. Clase Perro.
que hice para el previo de esta práctica, basándome en
los anteriores que me mostro el profesor al final debo En la clase main lo declaramos, atraves de una varible
de implementar el método toString(). de perro que se llamara dog, sera el objeto a crear, el
La implementacion que realizaremos sera la de Perro; cual es un constructor vacio, “Perro dog = new
declqramos la clase de este, declaramos 5 atributos, Perro("GuGu","schnauzer","Gris",10,true);” =
tres Strings y dos enteros; en constructores tambien “(Referencia a clase)(Objeto a crear) = ( Constructor
generamos nuevamente 2, uno vacio y otro con todos vacio ) (Datos de entarda a los atributos);”, lo
los atributos definidos, recibiendo los valores desde el mandamos a imprimir la cadena de string por el objeto
inicio para llenar los atributos previamente declarados dog, luego madamos a la ejecucion del metodo
que serían: String nombre, String raza, String color, numvecespasear que nos imprimira el mensaje que
int edad, boolean vacunadarabia. Fig.13 indica cuantas veces se saca a parear al perro y el lugar
donde se lesacas; luego el metodo precio con su
variable para imprimir el costo que tuvo el eprro
cuandop se compro, la imprecion del metodo alimento
que es de tipo float el dato a ingresar y nos indicara los
kilos que la mascota consume al mes en kilogramos,
luego la implementacion de ejecucion del metodo de
tipo entero que imprime el numero de pares de zapato
que el perro ha roto,y la imprecion del metodo que nos
imoprimira el nombre del juguete que le guata mas al
Fig. 13. Clase Perro. perro, y la implementacion de un nuevo objeto
llamado dog 2 “Perro dog2 = new
Implementamos 5 métodos, cada uno dependiendo de Perro("Max","schnauzer","Blamco",6,true);”, donde
lo que vallamos a realizar con las variables de objetos al finalsolo lo mandamos a imprimir, y de esa manera
que les demos, en general mandaremos a los 5 imprimí terminamos con este jercicio extra. Fig.16
un mensaje con el valor que le indiquemos a cada uno,
como “public void numvecespasear(int veces, String
lugar)”, “public void precio(int precio)”, “public void
alimento(float kilocroquetas)”, “public void
zapatos(int zapatos)”, “public void juguete(String
juguete)”; estos métodos representan las actividades
que el perro hace/realizar. Fig.14

Fig. 16. Implementación de Clase Perro en Main.

Fig. 14. Clase Perro.


V. Conclusión.
VI. Referencias.
Uriarte Ortiz Enrique Yahir: Al final de esta práctica
entendí mejor como implementar un objeto en una [1] Jose Antonio Ayala Barbosa (8 oct
clase y las ventajas en cuanto a sencilles que nos 2021). POO 6 oct 21 [Archivo video]
proporciona esta, por lo que los objetivos de la YouTube.
practica en cuanto a aplicar los conceptos básicos de https://www.youtube.com/watch?v=1r
la programación orientada a objetos en un lenguaje M2-UI0xzs
de programación, se cumplieron, un así abstraer la
información de un método no es tan fácil ya que [2] Jose Antonio Ayala Barbosa (8 oct
aunque son actividades que por lo general ya 2021). POO 7 oct 21 [Archivo video]
conocemos, pero la manera de expresarlas es un YouTube.
poco más complicado, por lo que espero entender https://www.youtube.com/watch?v=rY
mejor esto y mejor en ello para avanzar en futuras xnjIQj9Fw
prácticas y el proyecto final de la materia.

También podría gustarte