//class Cuadro{ // los atributos tienen valor inicial = 0, por defecto.
class Main{
static int numeroCuadros; // valor inicial = 0
static int areaTotal; // valor inicial = 0
int largo;
int ancho;
int precio;
String color;
public static void main(String[ ] args){ // método static
System.out.println(numeroCuadros); // Ok.: numeroCuadros es static
//System.out.println(largo); // error de compilación: largo es no static.
//System.out.println(area()); // error de compilación: area() es no static.
// a efecto didáctico vamos a crear dos objetos:
Cuadro miCuadro1 = new Cuadro(2, 1, "verde");
Cuadro miCuadro2 = new Cuadro(4, 2, "rojo");
System.out.println(miCuadro1.largo); // largo de cuadro1
System.out.println(miCuadro2.largo); // largo de cuadro2
System.out.println(miCuadro1.area()); // area de cuadro1
System.out.println(miCuadro2.area()); // area de cuadro2
}
void printNumeroCuadros(){
// no static
System.out.println("Numero de cuadros: " + numeroCuadros); // atributo static
// equivalente:
System.out.println("Numero de cuadros: " + Cuadro.numeroCuadros);
}
Cuadro(int largo, int ancho, String color){
this.largo = largo;
this.ancho = ancho;
this.color = color;
precio = area() * 2;
numeroCuadros++;
areaTotal += area() ;
}
int area(){
return largo*ancho;
}
}