Hola
.
Soy nuevo en el foro y en el mundo de java. Estoy realizando un ejercicio que me piden con las siguientes características:
Practicar haciendo una aplicación llamada PruebaLaptop que utilice una clase Laptop, dicha clase deberá de tener los siguientes descriptores: Manejar como variables de instancia: Marca (String), Modelo (String), Tamaño de Memoria (integer) y Precio (double) Menejar como variable estática: cuenta (integer. Investiga esto, se comporta igual que un método estático). Tener un constructor que cree un objeto Laptop sin parámetros Tener un constructor que cree un objeto Laptop con los 4 parámetros Tener los métodos de acceso correspondiente Tener los métodos modificadores correspondientes Tener un método estático que regresa el valor de la variable cuenta (integer)
La variable cuenta debe ser definida como estática, junto con las demás variables de instancia y con un valor de cero:
private static int cuenta = 0;
Cada constructor deberá incrementar esta variable en uno.
Crea una aplicación como las definidas en la lectura, que cree al menos 3 objetos de la clase Laptop y que muestre el uso de todos los métodos de la clase, utilizando para ello, los diferentes objetos creados, cada vez que modifiques algún valor de algun objeto, es importante que despliegues todos los objetos utilizados. Deberás utilizar el método estático.
El problema está en que no sé como llamar a un objeto específico para modificar algún parámetro.
A ver si me podéis ayudar. Mi código es el siguiente:
Esta es mi clase PruebaLaptop:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class PruebaLaptop extends Applet implements ActionListener {
Label l1, l2, l3, l4;
TextField t1, t2, t3, t4;
Button b1, b2, b3, b4, b5;
Panel p1, p2;
TextArea ta1;
Laptop laptop;
public PruebaLaptop() {
l1 = new Label("Marca");
l2 = new Label("Modelo");
l3 = new Label("Tamaño de Memoria");
l4 = new Label("Precio");
t1 = new TextField();
t2 = new TextField();
t3 = new TextField();
t4 = new TextField();
b1 = new Button("Crear");
b2 = new Button("Cambiar Marca");
b3 = new Button("Cambiar Modelo");
b4 = new Button("Cambiar Memoria");
b5 = new Button("Cambiar Precio");
p1 = new Panel(new GridLayout(8, 1, 10, 10));
p2 = new Panel();
ta1 = new TextArea("", 30, 30, TextArea.SCROLLBARS_VERTICAL_ONLY);
p1.add(l1);
p1.add(t1);
p1.add(l2);
p1.add(t2);
p1.add(l3);
p1.add(t3);
p1.add(l4);
p1.add(t4);
p2.add(b1);
p2.add(b2);
p2.add(b3);
p2.add(b4);
p2.add(b5);
setLayout(new BorderLayout());
add(p1, BorderLayout.NORTH);
add(p2, BorderLayout.CENTER);
add(ta1, BorderLayout.SOUTH);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
}
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == b1) {
if ("".equals(t1.getText())) {
laptop = new Laptop();
}else
laptop = new Laptop((t1.getText()),
(t2.getText()),
(Integer.parseInt(t3.getText())),
(Double.parseDouble(t4.getText())));
}
if (ae.getSource() == b2) {
laptop.setMarca(t1.getText());
}
if (ae.getSource() == b3) {
laptop.setModelo(t2.getText());
}
if (ae.getSource() == b4) {
laptop.setMemoria(Integer.parseInt(t3.getText()));
}
if (ae.getSource() == b5) {
laptop.setPrecio(Double.parseDouble(t4.getText()));
}
ta1.append(" " + laptop.getMarca());
ta1.append(" " + laptop.getModelo());
ta1.append(" " + laptop.getPrecio());
ta1.append(" " + laptop.cuantasCuenta() + "\n");
}
Esta mi clase Laptop:
public class Laptop {
private String marca;
private String modelo;
private int memoria;
private double precio;
private static int cuenta = 0;
//Constructor sin parámetros
public Laptop(){
marca = "Desconocida";
modelo = "Desconocido";
memoria = 0;
precio = 0.0;
cuenta++;
}
//Constructor con parámetros
public Laptop(String marca, String modelo, int memoria, double precio){
this.marca = marca;
this.modelo = modelo;
this.memoria = memoria;
this.precio = precio;
cuenta++;
}
//Método estático que regresa el valor de la variable cuenta
public static void contarCuenta() {
cuenta++;
}
public String getMarca() {
return marca;
}
public String getModelo() {
return modelo;
}
public int getMemoria() {
return memoria;
}
public double getPrecio() {
return precio;
}
public static int cuantasCuenta() {
return cuenta;
}
public void setMarca(String nuevaMarca){
this.marca = nuevaMarca;
}
public void setModelo(String nuevoModelo) {
this.modelo = nuevoModelo;
}
public void setMemoria(int nuevaMemoria) {
this.memoria = nuevaMemoria;
}
public void setPrecio(double nuevoPrecio) {
this.precio = nuevoPrecio;
}
}
Bueno, según lo que te entendí, primero, ¿para qué "contarCuenta()" si igual en el constructor lo sumas?, segundo, ¿y si guardas los objetos "laptop" en un array?, y accedes a ellos por el índice.
Saludos!