elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Clase Rectangulo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Clase Rectangulo  (Leído 4,336 veces)
Francky92

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Clase Rectangulo
« en: 1 Marzo 2015, 19:51 pm »

¿Alguien me puede ayudar a programar la clase rectangulo para que pueda ejecutarse el siguiente codigo?

Código
  1. public static void main(String[] args) {
  2. int i=0;
  3. Rectangulo [] rec =new Rectangulo[5];
  4. final int num=5;
  5. for (i=0;i<num,;i++)
  6. {
  7. rec[i]= new Rectangulo(i+1,(i+1)*(i+2));
  8. }
  9. }
  10.  
  11. Gracias de antemano

Mod: al publicar código, usa las etiquetas GeSHi


« Última modificación: 2 Marzo 2015, 08:47 am por engel lex » En línea

peib0l
Wiki

Desconectado Desconectado

Mensajes: 3.493


freedom


Ver Perfil WWW
Re: Clase Rectangulo
« Respuesta #1 en: 1 Marzo 2015, 21:30 pm »

Ese codigo esta mal por donde lo mires, deberías seguir la ortodoxia de java, pero bueno

Código
  1. public class Rectangulo {
  2.  
  3.    int ancho;
  4.    int alto;
  5.  
  6.   public Rectangulo(alto, ancho){
  7.         this.alto = alto;
  8.         this.ancho = ancho;
  9.    }
  10.  
  11.  
  12. }

Mod: al publicar código usa las GeSHi  :¬¬


« Última modificación: 2 Marzo 2015, 08:48 am por engel lex » En línea

Francky92

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Clase Rectangulo
« Respuesta #2 en: 1 Marzo 2015, 21:41 pm »

pues es codigo dado por el profesor.
y como rectificas ese codigo para que funcione con la clase que has dado?
En línea

Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Clase Rectangulo
« Respuesta #3 en: 1 Marzo 2015, 22:07 pm »

Código
  1. public class Rectangle {
  2. private String color;
  3. private int width;
  4. private int height;
  5.  
  6. public Rectangle() {}
  7.  
  8. public Rectangle(String color, int width, int height) {
  9.  this.color = color;
  10.  this.width = width;
  11.  this.height = height;
  12. }
  13.  
  14. public String getColor() { return color; }
  15.  
  16. public void setColor(String color) { this.color = color; }
  17.  
  18. public int getWidth() { return width; }
  19.  
  20. public void setWidth(int width) { this.width = width; }
  21.  
  22. public int getHeight() { return height; }
  23.  
  24. public void setHeight(int height) { this.height = height; }
  25.  
  26. @Override
  27. public String toString() {
  28.  String data = "Este rectángulo es de color "+color+
  29.   " y tiene "+width+"px de ancho y "+height+"px de alto";
  30.  return data;
  31. }
  32.  
  33. }

Código
  1. import java.util.List;
  2. import java.util.ArrayList;
  3. import java.util.Random;
  4.  
  5. public class RectangleTest {
  6. public static void main(String[] args) {
  7.  List<Rectangle> rectangleList = new ArrayList<>();
  8.  final String[] COLORS = {"Blue", "Coral", "Orange red", "Green", "Gray"};
  9.  final int RECTANGLE_SIZE = 50;
  10.  for(byte i=1; i<=5; i++) {
  11.   Rectangle rectangle = new Rectangle();
  12.   String color = COLORS[new Random().nextInt(COLORS.length)];
  13.   rectangle.setColor(color);
  14.   rectangle.setWidth(i * RECTANGLE_SIZE);
  15.   rectangle.setHeight(i * RECTANGLE_SIZE);
  16.   rectangleList.add(rectangle);
  17.  }
  18.  for(byte i=0; i<rectangleList.size(); i++) {
  19.   System.out.println("Rectángulo "+ (i+1)+": "+rectangleList.get(i));
  20.  }
  21.  
  22. }
  23. }

Código limpio = fácil de entender + fácil de mantener.
« Última modificación: 1 Marzo 2015, 23:02 pm por Gus Garsaky » En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
Baal_30

Desconectado Desconectado

Mensajes: 248



Ver Perfil
Re: Clase Rectangulo
« Respuesta #4 en: 1 Marzo 2015, 22:46 pm »

Gus si que da gusto leer tus códigos ¡! haha :D

Pero me surgen un par de dudas :

1- ¿Porque en el main colors y size los declaras como final?

2- ¿Porque en los for declaras la "i" como byte?

3- Y... ¿en color no tendría que ser String[] en vez de int? ¿O me confundo yo?

Merci :)
En línea

«La suerte es el cuidado de los detalles». -Winston Churchill
Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Clase Rectangulo
« Respuesta #5 en: 1 Marzo 2015, 23:06 pm »

1) Es para ilustrar, en este caso no tiene sentido. Lo puse para ilustrar por qué debe ser una constante estática. Esto aplica si COLORS fuese una propiedad. Los colores se suponen que están pre-establecidos es decir que se puede crear uno, por lo que solo me interesa que:

  • Sea estático (static)
  • Sea constante (final)

Cuando declaras una variable u objeto como static, estás indicando que dicha variable/objeto solo tendrá una instancia que será compartida por todo aquel objeto del que sea propiedad. Si creas 5 objetos de dicha clase los 5 objetos compartirán dicha variable, ya no será una variable que pertenezca al objeto si no que dicha variable pertenece a la clase. Por eso, si el objeto 3 actualiza la variable y el objeto 5 accede a ella, el valor será el que actualizó el objeto 3.

Cuando declaras una variable/objeto como final, estás indicando que dicha variable/objeto es una constante cuyo valor no cambiará.

Por lo que static + final = Constante de la que solo habrá una instancia.

2) Declaro la variable de control como byte porque la lista a recorrer será muy pequeña (5). Si utilizo int estaría usando 4 bytes mientras que con byte solo 1. Es por cuestión de rendimiento aunque no afecte casi nada xD. Pero si un tipo de dato es mejor para X operación, debes usarlo.

3) Si, me equivoqué ^^, pero ya lo corregí.

Ejecutando lo anterior, se obtiene:

Código:
Rectángulo 1: Este rectángulo es de color Blue y tiene 50px de ancho y 50px de alto
Rectángulo 2: Este rectángulo es de color Blue y tiene 100px de ancho y 100px de alto
Rectángulo 3: Este rectángulo es de color Gray y tiene 150px de ancho y 150px de alto
Rectángulo 4: Este rectángulo es de color Orange red y tiene 200px de ancho y 200px de alto
Rectángulo 5: Este rectángulo es de color Green y tiene 250px de ancho y 250px de alto
« Última modificación: 2 Marzo 2015, 15:33 pm por Gus Garsaky » En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
Baal_30

Desconectado Desconectado

Mensajes: 248



Ver Perfil
Re: Clase Rectangulo
« Respuesta #6 en: 2 Marzo 2015, 08:45 am »

Que grande, gracias Gus por las aclaraciones :)
En línea

«La suerte es el cuidado de los detalles». -Winston Churchill
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema al dibujar un rectangulo en un UserControl
.NET (C#, VB.NET, ASP)
Zeroql 0 1,868 Último mensaje 26 Febrero 2012, 18:18 pm
por Zeroql
Rectangulo en bash con espacios
Scripting
mimesis 0 2,759 Último mensaje 5 Marzo 2013, 08:18 am
por mimesis
Script que calcula área y perímetro de un triángulo rectángulo
PHP
uluigi 6 9,569 Último mensaje 13 Julio 2015, 07:29 am
por uluigi
Programa C# rectángulo hueco Ayudaa!!!
Programación General
RazaMex 2 3,434 Último mensaje 2 Marzo 2019, 23:27 pm
por Eleкtro
Rectangulo en blanco despues de suspender Lubuntu
GNU/Linux
Camilo1998 1 4,545 Último mensaje 22 Noviembre 2019, 22:37 pm
por portaro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines