RSS

Deberes – Variables

21 Abr

Vamos a realizar los siguientes ejercicios:

  • Ejercicio1: Crear un programa principal y declarar variables para todos los tipos primitivos de Java. Comprobar que si alguna no se inicializa da error de compilación.
  • Ejercicio2: Crear una clase Cuenta que tendrá los siguientes atributos, String numCuenta, double importeCuenta y boolean vip.
    No especificar constructor. Realizar un metodo verDetalles que devuelva un String con los valores de los atributos de la cuenta.
    Crear una clase PrincipalCuenta con un método main que declare un objeto Cuenta y llame al método verDetalles.
  • Ejercicio3: Modificar la clase Cuenta para suministrar un constructor con argumentos.
    Crear una clase Cliente que tendrá los siguientes atributos:
    – una variable de clase cuentasVIP de tipo array de Cuenta con una dimensión de 100
    – una variable de clase contArray de tipo entero para recorrer el array cuentasVIP,
    – un String nombre,
    – un String domicilio
    – y una cuenta del tipo Cuenta.

En el constructor de Cliente preguntaremos si la cuenta del cliente es vip y si es así se añadirá a la variable de clase cuentasVIP.

Crear una clase PrincipalCuentasVip para probar lo anterior.

Para ver los ejercicios resueltos click en Leer más…

Ejercicio1:

Creamos una clase principal para hacer ejemplos de declaraciones de tipos primitivos. Dejaremos uno sin inicializar para comprobar que dará error a la hora de usar esa variable.

package paqueteI;
public class PrincipalTiposPrimitivos {

public static void main(String[] args) {

//Enteros
byte bytevar = -10;
short shortvar = 225;
int intvar = 22369;
long longvar = 300000;

//Reales
float floatvar = 150.1935F;
double doublevar = 120.353E7D;

//Logicos
boolean hayExistencias;
boolean esCliente = true;

//Char
char grande = 'G';
char pequeño = 'S';

System.out.println("Enteros: " + bytevar + ", " + shortvar + ", " + intvar + ", " + longvar);
System.out.println("Reales: " + floatvar + ", " + doublevar);
System.out.println("Logicos: " + hayExistencias + ", " + esCliente);
System.out.println("Caracter: " + grande + ", " + pequeño);
}
}

Ejecutamos:

Ejercicio2:

Creamos la clase Cuenta:

package paqueteI;
public class Cuenta {

private String numCuenta;
private double importeCuenta;
private boolean vip;

public String getNumCuenta() {
return numCuenta;
}

public void setNumCuenta(String numCuenta) {
this.numCuenta = numCuenta;
}

public double getImporteCuenta() {
return importeCuenta;
}

public void setImporteCuenta(double importeCuenta) {
this.importeCuenta = importeCuenta;
}

public boolean isVip() {
return vip;
}

public void setVip(boolean vip) {
this.vip = vip;
}

public String verDetalles()
{
return "Cuenta: \n Número: " + this.getNumCuenta()
+ "\n Importe: " + this.getImporteCuenta() +
"\n EsVip: " + this.isVip();
}

}

Creamos la clase PrincipalCuenta para probar:

package paqueteI;
public class PrincipalCuenta {

public static void main(String[] args) {

Cuenta cuentaSinConstructor = new Cuenta();
System.out.println(cuentaSinConstructor.verDetalles());

}

}

Cuando ejecutamos vemos que el compilador le da a los atributos del objeto cuentaSinConstructor los valores por defecto:

Ejercicio 3:

Modificamos la clase Cuenta para darle un constructor con argumentos.

package paqueteI;
public class Cuenta {

private String numCuenta;
private double importeCuenta;
private boolean vip;

public Cuenta(String numCuenta, double importeCuenta)
{
this.numCuenta = numCuenta;
this.importeCuenta = importeCuenta;
vip = false;
if (importeCuenta >= 90000) //Calculo vip según el importe de la cuenta,
{                     //pero podría haber sido un parámetro más del constructor.
vip = true;
}
}

public String getNumCuenta() {
return numCuenta;
}

public void setNumCuenta(String numCuenta) {
this.numCuenta = numCuenta;
}

public double getImporteCuenta() {
return importeCuenta;
}

public void setImporteCuenta(double importeCuenta) {
this.importeCuenta = importeCuenta;
}

public boolean isVip() {
return vip;
}

public void setVip(boolean vip) {
this.vip = vip;
}

public String verDetalles()
{
return "Cuenta: \n Número: " + this.getNumCuenta()
+ "\n Importe: " + this.getImporteCuenta() +
"\n EsVip: " + this.isVip();
}

}

Creamos la clase Cliente:

package paqueteI;
public class Cliente {
public static Cuenta[] cuentasVIP = new Cuenta [100];     //vble de clase cuentasVIP
public static int contArray = 0;       //vble de clase contArray
private String nombre;
private String domicilio;
private Cuenta cuenta;

public Cliente (String nombre, String domicilio, Cuenta cuenta){
this.nombre = nombre;
this.domicilio = domicilio;
this.cuenta = cuenta;
if (cuenta.isVip() && contArray <99){
cuentasVIP[contArray] = cuenta;  //el contador nos sirve para saber la posicion a insertar.
contArray = contArray + 1;
}

}

public static Cuenta[] getCuentasVIP() {
return cuentasVIP;
}

public static void setCuentasVIP(Cuenta[] cuentasVIP) {
Cliente.cuentasVIP = cuentasVIP;
}

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public String getDomicilio() {
return domicilio;
}

public void setDomicilio(String domicilio) {
this.domicilio = domicilio;
}

public Cuenta getCuenta() {
return cuenta;
}

public void setCuenta(Cuenta cuenta) {
this.cuenta = cuenta;
}
}

Creamos la clase PrincipalCuentasClientes para probar el funcionamiento:

package paqueteI;
import paqueteI.Cuenta;
public class PrincipalCuentasClientes {

public static void main(String[] args) {
//Creamos varias cuentas, tres vip.
Cuenta cuentaNormal1 = new Cuenta("AAA000001", 12000.23);
Cuenta cuentaVIP1 = new Cuenta ("AAA000002", 350390.52);
Cuenta cuentaVIP2 = new Cuenta ("AAA000003", 38837482.253);
Cuenta cuentaNormal2 = new Cuenta ("AAA000004", 45674.45);
Cuenta cuentaVIP3 = new Cuenta("AAA0090090", 500000);

Cliente cliente1 = new Cliente("Jose Maria Lopez", "Calle X", cuentaNormal1);
Cliente cliente2 = new Cliente("Elisa Cospedal Martin", "Calle C", cuentaVIP1);
Cliente cliente3 = new Cliente("Dolores Gomez Santos", "Calle Y", cuentaVIP2);
Cliente cliente4 = new Cliente("Gervasio Rodriguez Peña", "Calle M", cuentaNormal2);
Cliente cliente5 = new Cliente("Maria Eugenia Garcia Sol", "Calle C", cuentaVIP3);

System.out.println("Cuentas Vip: " + Cliente.contArray); //Llamamos con el nombre de la clase
for (int i=0; i<Cliente.contArray; i ++)
{
System.out.println(Cliente.cuentasVIP[i].getNumCuenta()  + ", "
+ Cliente.cuentasVIP[i].getImporteCuenta());
}

}

}

Ejecutamos:

Anuncios
 
4 comentarios

Publicado por en 21 abril, 2011 en Deberes

 

Etiquetas: , , ,

4 Respuestas a “Deberes – Variables

  1. Nendrel

    5 agosto, 2013 at 2:44 pm

    Hola Virginia,

    Estoy también aquí sacándome la certificación y me está siendo muy útil tu blog.
    Tengo un apunte respecto a tu tercer ejercicio. Ya que no usas las variables cliente1 a cliente5, por qué no quitas la asignación y dejas sólo el new Cliente()?

    Por cierto, me ha parecido muy ingeniosa la manera de usar variables estáticas para no tener que hacer un for para recorrer el programa para insertar las Cuentas en el array. Aunque al final has usado uno para mostrar el contenido del array.

    Un saludo!

     
  2. Viti

    25 abril, 2011 at 3:56 pm

    Perdón, el libro que te puse anteriormente es de exámenes también pero al que me quería referir es a este: OCP Java SE6 Programmer practice exams

     
    • vlopezf

      25 abril, 2011 at 6:05 pm

      Hola Viti,

      Gracias por pasarte por aquí y por los ánimos. Yo he empezado hace poco y creo que voy algo lenta pero bueno intentaré al menos no dejarlo, con eso ya me doy por satisfecha…

      Seguiré tu consejo y dejaré un poco el eclipse. Ah, y gracias por tu referencia al libro de exámenes. Lo conocía pero no había podido encontrarlo, siempre lo buscaba con SCJP y ahora intentandolo con la nueva nomenclatura que me has dicho al primer intento ha ido perfecto!

      Un saludo!

       
  3. Viti

    25 abril, 2011 at 3:20 pm

    Hola,

    He estado viendo tu web y también estoy estudiando para sacarme la certificación scjp. Te recomiendo que lo piques sin utilizar ningún IDE (que vi que utilizabas eclipse), ya que te obliga a escribir el código correctamente al no tener ningún corrector y algunos errores que luego son parte del examen no te los muestra.
    Otra cosa existe un libro que no lo tienes en la bibliografía que es probable que te pueda interesar: SCJP EXAM FOR J2SE (si googleas lo encontraras fácilmente, sino pídemelo). Solo tiene exámenes para el SCJP y hablando con bastante gente del curro que lo tiene solo han utilizado ese libro jejeje

    Ánimo.
    Un Saludo.

     

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: