Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: Francky92 en 1 Marzo 2015, 19:51 PM

Título: Clase Rectangulo
Publicado por: Francky92 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 (java) [Seleccionar]
public static void main(String[] args) {
int i=0;
Rectangulo [] rec =new Rectangulo[5];
final int num=5;
for (i=0;i<num,;i++)
{
rec[i]= new Rectangulo(i+1,(i+1)*(i+2));
}
}

Gracias de antemano


Mod: al publicar código, usa las etiquetas GeSHi
Título: Re: Clase Rectangulo
Publicado por: peib0l 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 (java) [Seleccionar]
public class Rectangulo {

   int ancho;
   int alto;

  public Rectangulo(alto, ancho){
        this.alto = alto;
        this.ancho = ancho;
   }


}


Mod: al publicar código usa las GeSHi  :¬¬
Título: Re: Clase Rectangulo
Publicado por: Francky92 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?
Título: Re: Clase Rectangulo
Publicado por: Usuario Invitado en 1 Marzo 2015, 22:07 PM
Código (java) [Seleccionar]
public class Rectangle {
private String color;
private int width;
private int height;

public Rectangle() {}

public Rectangle(String color, int width, int height) {
 this.color = color;
 this.width = width;
 this.height = height;
}

public String getColor() { return color; }

public void setColor(String color) { this.color = color; }

public int getWidth() { return width; }

public void setWidth(int width) { this.width = width; }

public int getHeight() { return height; }

public void setHeight(int height) { this.height = height; }

@Override
public String toString() {
 String data = "Este rectángulo es de color "+color+
  " y tiene "+width+"px de ancho y "+height+"px de alto";
 return data;
}

}


Código (java) [Seleccionar]
import java.util.List;
import java.util.ArrayList;
import java.util.Random;

public class RectangleTest {
public static void main(String[] args) {
 List<Rectangle> rectangleList = new ArrayList<>();
 final String[] COLORS = {"Blue", "Coral", "Orange red", "Green", "Gray"};
 final int RECTANGLE_SIZE = 50;
 for(byte i=1; i<=5; i++) {
  Rectangle rectangle = new Rectangle();
  String color = COLORS[new Random().nextInt(COLORS.length)];
  rectangle.setColor(color);
  rectangle.setWidth(i * RECTANGLE_SIZE);
  rectangle.setHeight(i * RECTANGLE_SIZE);
  rectangleList.add(rectangle);
 }
 for(byte i=0; i<rectangleList.size(); i++) {
  System.out.println("Rectángulo "+ (i+1)+": "+rectangleList.get(i));
 }
 
}
}


Código limpio = fácil de entender + fácil de mantener.
Título: Re: Clase Rectangulo
Publicado por: Baal_30 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 :)
Título: Re: Clase Rectangulo
Publicado por: Usuario Invitado 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:

Título: Re: Clase Rectangulo
Publicado por: Baal_30 en 2 Marzo 2015, 08:45 AM
Que grande, gracias Gus por las aclaraciones :)