Cree la clase Automóvil en el paquete examen y declare los siguiente atributos como privados: codigo (int), marca (String), año (int) y precio soles (double). La clase debe tener las siguientes variables estáticas con acceso privado: tipo de cambio, contador de automóviles, el precio en soles acumulado de todos los automóviles, el mayor y menor precio de todos los automóviles
Implemente los siguientes métodos:
a) Un constructor que inicialice a los atributos.
b) Métodos de acceso: set/get para un atributo.
c) Un método que retorne el precio del automóvil en dólares.
El tipo de cambio del dólar se debe inicializar con 3.00 soles y en cero el contador y el acumulador. Para ello, utilice inicializadores estáticos.
En la clase principal (donde está la GUI) implemente lo siguiente:
a) Cree un objeto de tipo Automóvil cada vez que se pulse el botón Procesar. Los datos serán capturados de la GUI.
b) Cree un método listar que imprima todos los atributos del Automóvil, el tipo de cambio actual del dólar y el precio del automóvil en dólares.
c) Imprima la cantidad de automóviles creados.
d) Imprima el precio acumulado en soles de todos los automóviles.
e) Modifique el tipo de cambio del dólar a 3.20 soles. Luego, imprima el nuevo precio del automóvil en dólares.
Asuma la existencia de los métodos para la captura de datos de la GUI
SOLUCIÓN:
package examen;
public class Automovil{
//atributos de instancia
private int codigo;
private String marca ;
private int año;
private double precio;
//atributos de clase
private static double tc ;
private static int contador;
private static double acumulado, tipoCambio, mayPrecio, menPrecio;
//bloque estático
static{
tc=3.0;
contador=0;
acumulado=0;
tipoCambio = 3.00;
}
//constructor
public Automovil(int codigo,
String marca,
Int año,
double precio){
this.codigo = codigo;
this. marca = marca;
this. año = año;
this. precio = precio;
contador++;
acumulado+= precio;
if(contador ==1){
mayPrecio = precio;
menPrecio = precio;
}else{
If(precio> mayPrecio){
mayPrecio = precio;
}
If(precio< menPrecio){
menPrecio = precio;
}
}
}
//get y set
…
public static double getPrecioDolares(){
return tipoCambio*precio;
}
public static int getCantidad(){
return cantidad;
}
public static double getAcumulado(){
return acumulado;
}
public static void setTipoCambio (int tipoCambio){
public static void setTipoCambio (int tipoCambio){
tipoCambio = tipoCambio;
}
}
//codigos en la clase donde está el botón procesar
public void ingresar(){
Automovil x = new Automovil(getCodigo(),getMarca(),geAño(),getPrecio());
listar(x);
}
Public void listar(Automovil x){
imprimir(x.getCodigo());
imprimir(x.getMarca());
imprimir(x.getAño());
imprimir(x.getPrecio());
imprimir(Auto. getCantidad ());
imprimir(Auto. getAcumulado ());
Auto.setTipoCambio(3.20);
imprimir(x.getPrecio());
}
Profesor me gustaria consultarle en la parte de los metodos get y set porque pone como objeto para tomar los enunciados static
ResponderEliminarEJEMPLO: imprimir(Auto. getCantidad ());
Para llamar a un método estático puede ser a través de un objeto x , o a través de la clase Auto.
ResponderEliminarOjo solo para métodos estáticos, pero no para los no estáticos
ResponderEliminar