Software">
Nothing Special   »   [go: up one dir, main page]

Practica 4 POO

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 13

Carátula para entrega de prácticas

Facultad de Ingeniería Laboratorio de docencia

Laboratorios de computación
salas A y B
Profesor: M.I .Ernesto Alcántara Concepción 

Asignatura: Programación Orientada a Objetos 

Grupo: 02 

No. de Práctica(s): 4. CLASES Y OBJETOS  

Integrante(s): De los Cobos García Carlos Alberto 


Domínguez Sanagustín Said Iván 
Rojas Hernandez Mariana Guadalupe 
Zuñiga Salgado Luis Eduardo 

No. de Equipo de cómputo empleado:  

No. de Lista o Brigada: G 

Semestre: 2021-1 

Fecha de entrega: 30 de Octubre del 2020 

Observaciones:  

CALIFICACIÓN:______
ÍNDICE

​ pág. 

Objetivo…………………………………………..…………………………………...…......(3) 

Introdución…………………………………………………………….……..……………...(3) 

Actividades…………………………………………………………………………...……...(4) 

Ejercicio 1………………………………………………………………………..…..(4) 

Ejercicio 2……………………………………………………………………...…….(5) 

Ejercicio 3………………………………………………………………………...….(6) 

Ejercicio 4…………………………………………………………………………....(8) 

Ejercicio 5…………………………………………………………………………....(11) 

Conclusion………………………………………………...………..…………………..........(13) 

Referencias…………………………………………………..………………..……………. (13)    

2
OBJETIVO.
Aplicar los conceptos básicos de la programación orientada a objetos en un lenguaje de 
programación. 

INTRODUCCIÓN.
La  Programación  Orientada  a  Objetos  (POO)  es  un  paradigma  de  programación  que  utiliza  la 
abstracción para crear modelos de objetos basados en el mundo real.  

Objeto 

El  objeto  es  el  elemento  principal  de  la  programación  orientada  a  objetos  y  alrededor  del  cual gira 
este  paradigma.  Los  objetos  pueden  contener  información  y  código  relacionado,  lo  cual  representa 
información  acerca  de  lo  que  se  está  tratando  de  modelar,  así  como  la  funcionalidad  o 
comportamiento  que  deseamos  que  tenga.  Cada  objeto, de igual modo que la entidad de la vida real 
a  la  que  representa,  tiene  un  estado  (es  decir,  unos  atributos  con  unos  valores  concretos)  y  un 
comportamiento (es decir, tiene funcionalidades o sabe hacer unas acciones concretas). 

Clase 

Una  clase  equivale  a  la  generalización  de  un  tipo  específico  de  objetos.  Es  una  plantilla que define 
las  variables  y  los  métodos  que  son  comunes  para  todos  los  objetos  de  un  cierto  tipo,  describe  los 
atributos y operaciones de un objeto.  

● Instancia​: es un elemento de una clase (un objeto). 

Mensajes 

Los  objetos  interactúan  enviando  mensajes  unos  a  otros.  Tras  la  recepción  de  un  mensaje el objeto 
actuará. Los objetos de un programa interactúan y se comunican entre ellos por medio de mensajes. 

Métodos 

Un  método  es  básicamente  lo  mismo  que  una  función  pero  asociado  a  un  objeto,  especifican  el 
comportamiento de la clase y sus instancias.  

Métodos sobrecargados 

Son  métodos  en  una  misma  clase  que  pueden  declararse  con  el  mismo  nombre, 
realizan tareas similares pero reciben diferentes tipos de parámetros.  

Constructores 

Un  constructor  es  un método que tiene el mismo nombre que la clase y cuyo propósito es inicializar 


los  atributos  de  un  nuevo  objeto.  Se  ejecuta  automáticamente  cuando  se  crea  un  objeto  o  instancia 
de la clase. 

3
ACTIVIDADES.
❖ Crear clases. 
❖ Crear objetos o instancias. 
❖ Invocar métodos. 
❖ Utilizar constructores. 

Ejercicio  1.  (Clase  Rectangulo)  Cree  una  clase  llamada  Rectangulo.  La  clase  debe  tener  los 
atributos  longitud  y  anchura,  cada  uno  con  un  valor  predeterminado  de 1. Debe tener métodos para 
calcular el perímetro y el área del rectángulo. Debe tener métodos establecer y obtener para longitud 
y  anchura.  Los  metodos  establecer  deben  verificar  que  longitud  y  anchura  sean  números  de  punto 
flotante mayores de 0.0, y menores de 20.0. Escriba un programa para probar la clase Rectangulo. 

Carlos  De  los  Cobos.  ​Primero  se  definió  la  clase  Rectángulo  donde  se  colocan  como  atributos los 
lados  del  mismo,  y,  con  estos,  se  calculan  el  área  y  perímetro.  En  la  clase  de  Prueba, simplemente 
se  crea  una  instancia  Rectángulo  y,  por teclado, se introducen los lados del rectángulo para calcular 
tanto área como perímetro. 

public class Rectangulo{


private float longitud = 1;
private float anchura = 1;
public void establecerLong(float longitud){
if(longitud>0.0 && longitud<20.0){
this.longitud = longitud;
}else{
System.out.println("Error: Longitud no valida.\nPor defecto =
1");
}
}
public void establecerAnch(float anchura){
if(anchura>0.0 && anchura<20.0){
this.anchura = anchura;
}else{
System.out.println("Error: Anchura no valida. \nPor defecto = 1");
}
}
public float obtenerLong(){
return longitud;
}
public float obtenerAnch(){
return anchura;
}
public float perimetro(float longitud,float anchura){
return 2*longitud + 2*anchura;
}
public float area(float longitud,float anchura){
return longitud*anchura;
}
}
import java.util.Scanner;
public class PruebaRectangulo{
public static void main(String[] args) {

4
Scanner entrada = new Scanner(System.in);
Rectangulo rec1 = new Rectangulo();
System.out.println("Introduzca la longitud del rectangulo: ");
rec1.establecerLong(entrada.nextFloat());
System.out.println("Introduzca la anchura del rectangulo: ");
rec1.establecerAnch(entrada.nextFloat());
System.out.printf("El area del rectangulo es: %.2f y el perimetro:
%.2f",rec1.area(rec1.obtenerLong(),rec1.obtenerAnch()),rec1.perimetro(rec1.obtener
Long(),rec1.obtenerAnch()));
}
}

Ejercicio  2.  Escriba  una  aplicación  VolumenEsfera  que  pida  al  usuario  el  radio  ​double  d​ e  una 
esfera, que llame a volumenEsfera para calcular el volumen y muestre el resultado en pantalla 

Mariana  Rojas.  Se  creó  una  clase  CalculoVolumen  con  atributos  radio  y  volumen  que  contiene  al 
método  volumenEsfera  que  recibe  como  parámetro  el radio, calcula e imprime el volumen de dicha 
esfera.  Después  en  la  clase  VolumenEsfera  en  su  método  main  se  crea  un  objeto  radio  de  tipo 
CalculoVolumen  y  solicita  al  usuario ingresar el radio, se llama al método volumenEsfera mediante 
el objeto creado.  

public class CalculoVolumen {

private double radio, volumen;

public void volumenEsfera(double radio) {

volumen = (0.75) * Math.PI * (Math.pow(radio,3));


System.out.printf("El volumen de la esfera es: %.3f\n",volumen);
}
}

import java.util.Scanner;

public class VolumenEsfera {

public static void main(String [] args) {

Scanner entrada = new Scanner(System.in);


CalculoVolumen radio = new CalculoVolumen();

System.out.printf("Ingrese el radio de la esfera: \n");

radio.volumenEsfera(entrada.nextDouble());
}

5
}

Ejercicio  3.  Escriba  un  método  llamado  cuadradoDeAsteriscos  que  muestre  un  cuadrado  relleno 
(el  mismo  número  de  filas  y  columnas)  de  asteriscos  cuyo  lado  se  especifique  en  el  parámetro 
entero lado. Por ejemplo 
***** 
***** 
***** 
***** 
***** 
Incorpore  este  método  a  una  Clase  que  lea  un  valor entero para el parámetro lado que introduzca el 
usuario, y despliegue los asteriscos con el método cudradoDeAsteriscos. 

Said  Dominguez.  Se  creó  el  método  Cuadrado  de  Asteriscos  que  mediante  un  ciclo  for  nos  genera 
un  cuadrado  del tamaño de asteriscos según el número que ingrese el usuario. Se crea un objeto y se 
llama  al  método  mediante  la  clase  Cuadrado  y  se  le  pide  al  usuario  un  número  entero para obtener 
el cuadrado en pantalla. 

public class CuadradoDeAsteriscos{


void CuadradoDeAsteriscos(int n){

for ( int i = 1; i <= n; i++ ){


for ( int j = 1; j <= n; j++ )
System.out.print(" *");
System.out.println();
}
}
}

import java.util.Scanner;

public class Cuadrado{


public static void main(String[] args){

int lado;
Scanner entrada = new Scanner(System.in);
CuadradoDeAsteriscos c = new CuadradoDeAsteriscos();
System.out.println("introduzca un numero entero: ");

lado = entrada.nextInt();
c.CuadradoDeAsteriscos(lado);
}
}

6
Carlos  De  los  Cobos.  ​Para  lograr  imprimir  los  asteriscos  correctamente,  se  utilizó un ciclo for que 
imprime  renglón  a  renglón  según  el  número  de  renglones se hayan introducido. Después se crea un 
objeto Cuadrado, donde se llama al método para imprimir los asteriscos.
public class Cuadrado{
private short lado;
public Cuadrado(short lado){
this.lado = lado;
}
public short obtLado(){
return lado;
}
public void cuadradoDeAsteriscos(short lado){
short i = 0;
short cont = 0;
for(i=0;i<lado;i++){
System.out.printf("*");
if(i==lado-1){
System.out.printf("\n");
i=-1;
cont++;
}
if(cont==lado){
break;
}
}
}
}
import java.util.Scanner;

public class PruebaCuadrado{


public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
System.out.println("Ingrese el numero de columnas/renglones del
cuadrado: ");
Cuadrado cuad1 = new Cuadrado(entrada.nextShort());
cuad1.cuadradoDeAsteriscos(cuad1.obtLado());
}
}

7
 

Ejercicio  4.  Defina  un  método  llamado  hipotenusa  que  calcule  la  longitud  de  la  hipotenusa de un 
triángulo,  cuando  se  proporcionen  las  longitudes  de  los  otros  dos  lados.  El  método  debe tomar dos 
argumentos  de  tipo  double  y  devolver la hipotenusa como un valor double. Incorpore este método a 
una  aplicación  que  lea  los  valores  lado1  y  lado2  y  que  realice  el  cálculo  en  el  método  hipotenusa. 
Compruebe los resultados con el método hypot de la clase Math 

Luis  Zuñiga.  ​Se  crearon  dos  métodos  estáticos  ya  que  no  se  puede  llamar  a un método no estático 
desde  uno  que  lo  es.  La  clase  recibe  dos  parámetros  desde  consola  sin  preguntar  al  usuario así que 
se  deben  mandar  al  ejecutarlo  (quería  intentar  hacerlo  de  esa  forma).  El  resto  es  simplemente  el 
álgebra de calcular la hipotenusa mediante el teorema de Pitágoras usando operaciones básicas. 

El programa regresa los resultados usando la función Math.hypot y la función creada para 
comprobar.

class CalcHipot{
public static void main(String[] var) {
Double d1= new Double(var[0]);
Double d2= new Double(var[1]);
lados(d1.doubleValue(),d2.doubleValue());
}
static void lados(double l1, double l2) {
System.out.printf("El lado 1 es %.4f, el lado 2 es %.4f",l1,l2);
System.out.printf("\nLa hipotenusa usando hipot vale
%.4f",hipot(l1,l2));
System.out.printf("\nLa hipotenusa usando Math.hypot vale %.4f",
Math.hypot(l1, l2));
}
static double hipot(double l1,double l2) {
double h;
h=Math.sqrt((l1*l1)+(l2*l2));
return h;
}
}

8
Mariana Rojas.  Se  creó  un  clase  CalculoHipotenusa  son  atributos  resultado,  lado1  y  lado2, 
dentro  de  esta  un  método  hipotenusa  que  calcula  la hipotenusa de un triángulo mediante el teorema 
de  pitágoras  y  además  mediante  una  estructura  condicional  comprueba  si  el resultado obtenido con 
el  método  hypot  de  la  biblioteca  Math  es  el  mismo  que  se  obtuvo  en  el  método  hipotenusa.  En  la 
clase  Hipotenusa,  dentro  del  método  main  se  crea un objeto de tipo CalculoHipotenusa, se solicitan 
las longitudes de los lados del triángulo y se llama al método hipotenusa con el objeto creado.  

public class CalculoHipotenusa {


private double resultado, lado1, lado2;
private double h;

public void hipotenusa(double lado1, double lado2) {

resultado = Math.sqrt(Math.pow(lado1,2) + Math.pow(lado2,2));

System.out.printf("\nLa hipotenusa del triangulo es: %f\n",resultado);

h = Math.hypot(lado1,lado2);

if (h == resultado) {
System.out.printf("\nComprobacion exitosa, la aplicacion es
correcta\n\n");
}

else {
System.out.printf("ERROR DE APLICACION\n\n");
}
}
}

import java.util.Scanner;

public class Hipotenusa {

public static void main(String[] args) {

Scanner entrada = new Scanner(System.in);


CalculoHipotenusa lados = new CalculoHipotenusa();

System.out.printf("\nIngrese las longitudues de los lados del


triangulo (presione enter despues de cada valor)\n");
lados.hipotenusa(entrada.nextDouble(), entrada.nextDouble());
}
}

9
Said  Domínguez.  Se  creó un método hipotenusa que usa la clase Math para hacer el calculo directo 
de  los  valores.  Posteriormente  se  crea  un  objeto  y  se  llama  a  este  método  en  la  clase 
PruebaHipotenusa  para  que  el  usuario  ingrese  el  valor  de  los  catetos  y  nos muestre un resultado en 
pantalla. Asimismo se hizo la comprobación con la función Math.hypot. 

public class Hipotenusa{

public double Hipotenusa( double lado_1, double lado_2){


return Math.sqrt(lado_1*lado_1 + lado_2*lado_2);
}
}   
 
import java.util.Scanner;

public class PruebaHipotenusa{

public static void main(String args[]){


Scanner entrada = new Scanner(System.in);
double lado1, lado2, hipotenusa;

Hipotenusa h = new Hipotenusa();

System.out.println("Introduzca el valor del lado 1: ");


lado1 = entrada.nextInt();

System.out.println("Introduzca el valor del lado 2: ");


lado2 = entrada.nextInt();

hipotenusa = h.Hipotenusa( lado1, lado2 );

System.out.printf("El valor de la hipotenusa es: %f \n", hipotenusa );


System.out.printf("El valor de la hipotenusa con la funcion Math.hypot es: %f
\n", Math.hypot (lado1, lado2 ));
}
}

10
Ejercicio  5. Escribe un metodo llamado puntosCalidad que reciba como entrada el promedio de un 
estudiante  y  que  devuelva 4 si el estudiante se encuentra entre 90 y 100, 3 si se encuentra entre 80 y 
89,  2  si el promedio se encuentra entre 70 y 79, 1 si el promedio se encuentra entre 60 y 69, y 0 si el 
promedio es menor a 60. Incorpore el método en una aplicación que reciba como entrada un valor del usuario 
y muestre el resultado. 

Carlos  De  los  Cobos.  ​Se  realizó  con  varias  sentencias  if,  para  poder  abarcar  todos  los  posibles 
casos  del promedio. Para cada uno se retorna cierto valor, si el promedio ingresado se sale del rango 
esperado, se indica.  

public class Promedio{


private float promedio;
public Promedio(float promedio){
this.promedio=promedio;
}
public float obtProm(){
return promedio;
}
public short puntosCalidad(float promedio){
if(promedio>=90.0 && promedio<=100.0){
return 4;
}else if(promedio>=80.0 && promedio<=89.0){
return 3;
}else if(promedio>=70.0 && promedio<=79.0){
return 2;
}else if(promedio>=60.0 && promedio<=69.0){
return 1;
}else if(promedio<60.0){
return 0;
}else{
return -1;
}
}
}
import java.util.Scanner;

public class PruebaPromedio{


public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
System.out.println("Ingrese el promedio del alumno (rango 0-100): ");
Promedio prom = new Promedio(entrada.nextFloat());
short puntaje = prom.puntosCalidad(prom.obtProm());
if(puntaje==-1){
System.out.println("Fuera de rango");
}else{
System.out.println("Puntaje del alumno = "+puntaje);
}
}
}

11
 

Luis Zuñiga.​ Se crearon dos funciones, una recibe los datos, mientras otra consta de un operador 
SWITCH para realizar una comparación. En la operación de SWITCH previamente divide sobre 
diez para obtener un número con el cual pueda compararse el resultado en el mismo. Si la respuesta 
es mayor a 8, este solo imprime el número 4 sin entrar al SWITCH, de lo contrario realiza las 
comparaciones hasta llegar al 6, donde si no entro en otra opcion regresa un 0 por default. 

import java.util.Scanner;
class Puntos{
public static void main(String[] tar) {
Scanner scan =new Scanner(System.in);
int prom,cal;
System.out.println("Indique el promedio del alumno: ");
prom=scan.nextInt();
cal=puntCalidad(prom);
System.out.printf("La calidad del estudiante es: %d", cal);
}
static int puntCalidad(int x) {
int r;
r=x/10;
if (r>8) {
return 4;
}else switch(r) {
case(8):
return 3;
case(7):
return 2;
case(6):
return 1;
default:
return 0;
}
}

12
CONCLUSIÓN.

Las clases son el módulo principal de la programación orientada a objetos, y permiten crear desde
ellas las operaciones y variables necesarias para poder trabajar de forma fluida. Sin embargo hay
clases que en otros lenguajes se manejan como datos primitivos como es el caso de las cadenas de
caracteres (String) que requieren un conjunto de métodos específicos ya integrados en ellas para
poder ser ocupadas. Al momento de modelar una clase se debe plantear bien qué es lo que se
necesita hacer en particular para poder optimizar el funcionamiento de la misma. De igual manera
se debe tener una idea sólida de cómo se pretende que funcionen los métodos para que de esta
forma sea más fácil su implementación.

Por lo tanto, la creación de objetos, métodos y constructores son fundamentales en el uso adecuado
del paradigma de programación del lenguaje Java, se logró hacer diferentes programas en donde se
crearon métodos y objetos en una clase y leerlos mediante otra clase del mismo tipo, así obteniendo
un resultado más ordenado.

REFERENCIAS.
https://medium.com/@mauriciogc/javascript-programación-orientado-a-objetos-fundamentos-4017
46946459  

https://catedu.gitbooks.io/programacion-orientada-a-objetos-java/content/mtodos.html 

http://lcp02.fi-b.unam.mx  

13

También podría gustarte