elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Atributo de tipo "clase" : no entiendo nada
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Atributo de tipo "clase" : no entiendo nada  (Leído 6,552 veces)
men100

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Atributo de tipo "clase" : no entiendo nada
« en: 18 Enero 2018, 18:02 pm »

Buenas tardes. Estoy haciendo DAW y empieza a complicarse el asunto y estoy algo perdido. Os pego la parte del enunciado y que no entiendo resaltado en negrita:


Citar
En esta tarea se van a realizar un conjunto de clases que permitan modelar las distintos tipos de cuentas que una persona puede tener en un banco, haciendo uso del mecanismo de herencia. Los puntos que se deben tratar para resolver la tarea son:


Crear un proyecto en NetBeans denominado, "CuentasBancarias".

Dentro de dicho proyecto, crear un paquete denominado "modeloBancario".

Dentro del paquete "modeloBancario", crear una clase denominada Cliente, que modele los distintos clientes del banco que tienen una cuenta asociada para almacenar su dinero. Las características de la clase Cliente son:
Atributos (Todos los atributos de la clase Cliente deben tener visibilidad privada):

idCliente: número entero que representa el identificador único del cliente dentro del banco.
nombre: cadena de caracteres que representa el nombre del cliente del banco.
direccion: cadena de caracteres que representa la dirección donde vive el cliente del banco.
teléfono: cadena de caracteres que representa el teléfono que permite contactar con el cliente.

Métodos (Todos los métodos de la clase Cliente deben tener visibilidad pública):
constructor sin parámetros: constructor que inicializa todos los atributos de tipo cadenas de caracteres al valor null y los números enteros a 0.
constructor con parámetros: constructor que tienen tantos parámetros como atributos tiene la clase, y que inicializa cada uno de los atributos con el valor de los parámetros correspondientes.

Dentro del paquete "modeloBancario", crear una clase abstracta denominada "Cuenta", que modele las distintas cuentas bancarias que mantiene la entidad financiera donde los clientes depositan su dinero.
Atributos (Todos los atributos de la clase Cuenta deben tener visibilidad protegida)

numeroDeCuenta: número entero que representa el identificador único asociado a cada una de las cuentas del banco.
saldo: número real que representa la cantidad de dinero almacenado en dicha cuenta.
titular: atributo de tipo Cliente que representa la persona que está asociada a dicha cuenta.

Métodos (Todos los métodos de la clase Cuenta deben tener visibilidad pública)
constructor sin parámetros: constructor que inicializa el cliente titular de la cuenta a null, y el saldo y el número de cuenta a cero.
constructor con parámetros: constructor que tienen tantos parámetros como atributos tiene la clase, y que inicializa cada uno de los atributos con el valor de los parámetros correspondientes.
getNumeroDeCuenta: método que permite obtener el número de cuenta.
getSaldo: método que permite obtener el saldo de la cuenta.
getTitular: método que permite obtener el titular de la cuenta  
setNumeroDeCuenta: método que recibe un parámetro entero que representa el nuevo número de cuenta que se desea asignar y asigna parámetro el valor de dicho al atributo numeroDeCuenta.
setSaldo: método que recibe un parámetro entero que representa el nuevo saldo que se desea asignar y asigna parámetro el valor de dicho al atributo saldo.
setTitular: método que recibe un parámetro Cliente que representa el nuevo titular que se desea asignar y asigna parámetro el valor de dicho al atributo titular.
ingresar: recibe un parámetro real que representa la cantidad que se desea ingresar en la cuenta. El método incrementará el saldo en la cantidad recibida como parámetro.
retirar: método abstracto que permitirá sacar una cantidad de la cuenta (si hay saldo disponible para ello), no se implementará ya que dependerá del tipo de cuenta, por tanto su implementación recaerá en las clases hijas.
actualizarSaldo: método abstracto que actualizará el saldo de la cuenta, dependiendo del tipo de interés de cada una de las cuenta, por tanto su implementación recaerá en las clases hijas.

Ahí me pierdo, no entiendo que quiere decir  "tipo Cliente". Osea, debe de ser que ese atributo sea la clase entera llamada "Cliente". Os pongo lo que he hecho hasta ahora:

Clase "Cliente":

Código
  1.  
  2. package modeloBancario;
  3.  
  4. public class Cliente {
  5.  
  6.    private int idCliente;
  7.    private String nombre;
  8.    private String direccion;
  9.    private String telefono;
  10.  
  11.    public Cliente (){
  12.  
  13.    }
  14.  
  15.    public Cliente (int idCliente, String nombre, String direccion, String telefono){
  16.  
  17.        this.idCliente = idCliente;
  18.        this.nombre = nombre;
  19.        this.direccion = direccion;
  20.        this.telefono = telefono;
  21.  
  22.    }
  23.  
  24.    public int getIdCliente(){
  25.        return idCliente;
  26.    }
  27.  
  28.    public void setIdCliente(int idCliente){
  29.        this.idCliente = idCliente;
  30.    }
  31.  
  32.    public String getNombre(){
  33.        return nombre;
  34.    }
  35.  
  36.    public void setNombre(String nombre){
  37.        this.nombre = nombre;
  38.    }
  39.  
  40.    public String getDireccion(){
  41.        return direccion;
  42.    }
  43.  
  44.    public void setDireccion(String direccion){
  45.        this.direccion = direccion;
  46.    }
  47.  
  48.    public String getTelefono(){
  49.        return telefono;
  50.    }
  51.  
  52.    public void setTelefono(String telefono){
  53.        this.telefono = telefono;
  54.    }
  55.  
  56. }
  57.  
  58.  



y la clase "Cuenta":

Código
  1.  
  2. package modeloBancario;
  3.  
  4. public abstract class Cuenta {
  5.  
  6.    protected int numeroDeCuenta;
  7.    protected double saldo;
  8.    protected Cliente titular;
  9.  
  10.    public Cuenta(){
  11.  
  12.        numeroDeCuenta = 0;
  13.        saldo = 0;
  14.        titular ();
  15.  
  16.    }
  17.  
  18. }
  19.  

Agradeceria una pista, llevo dias atascado!


« Última modificación: 18 Enero 2018, 18:12 pm por men100 » En línea

z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: Atributo de tipo "clase" : no entiendo nada
« Respuesta #1 en: 18 Enero 2018, 19:40 pm »

Básicamente, lo que te pide es que crees un nuevo campo de tipo tal y con nombre cual:

Dentro de la clase Cuenta

Código
  1. public class Cuenta {
  2.  
  3. //....
  4.  
  5. public Client titular = new Client();
  6.  
  7. public Cuenta getTitutar() {
  8.  
  9. titular.idClient = <valor_tipo_int>;
  10. titular.nombre = <valor_tipo_string>;
  11. titular.direccion = <valor_tipo_string>;
  12. titular.telefono = <valor_tipo_string>;
  13.  
  14. return titular;
  15.  
  16. }
  17.  
  18. }

public <Tipo> <nombre_de_campo>

public <Tipo> <nombre_de_metodo>();

Supongo que te pedirá algo así. :P


En línea


Interesados hablad por Discord.
men100

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Atributo de tipo "clase" : no entiendo nada
« Respuesta #2 en: 18 Enero 2018, 23:18 pm »

Al final lo deje asi, no se si estara bien:

Código
  1.  
  2. package modeloBancario;
  3.  
  4. public abstract class Cuenta {
  5.  
  6.    protected int numeroDeCuenta;
  7.    protected double saldo;
  8.    protected Cliente titular;
  9.  
  10.    public Cuenta(){
  11.  
  12.        numeroDeCuenta = 0;
  13.        saldo = 0;
  14.        titular = null;
  15.  
  16.    }
  17.  
  18.    public Cuenta (int numeroDeCuent, double saldo, Cliente titular){
  19.  
  20.        this.numeroDeCuenta = numeroDeCuenta;
  21.        this.saldo = saldo;
  22.        this.titular = titular;
  23.    }
  24.  
  25.    public int getNumeroDeCuenta(){
  26.        return numeroDeCuenta;
  27.    }
  28.  
  29.    public void setNumeroDeCuenta(int numeroDeCuenta){
  30.        this.numeroDeCuenta = numeroDeCuenta;
  31.    }
  32.  
  33.    public double getSaldo(){
  34.        return saldo;
  35.    }
  36.  
  37.    public void setSaldo (int saldo){
  38.        this.saldo = saldo;
  39.    }
  40.  
  41.    public Cliente getTitular(){
  42.        return titular;
  43.    }
  44.  
  45.    public void setTitular(Cliente titular){
  46.        this.titular = titular;
  47.    }
  48.  
  49.  


Imagino que luego podre crear objetos del tipo "Cliente". Lo que no entiendo es que valores pueden tener. Esta claro que int tendra un entero, un String letras...pero que valores puede tener la clase "Cliente"?
En línea

HardC0d3

Desconectado Desconectado

Mensajes: 49



Ver Perfil
Re: Atributo de tipo "clase" : no entiendo nada
« Respuesta #3 en: 18 Enero 2018, 23:45 pm »

Citar
men100:
Imagino que luego podre crear objetos del tipo "Cliente".Lo que no entiendo es que valores pueden tener. Esta claro que int tendra un entero, un String letras...pero que valores puede tener la clase "Cliente"?

Pues tendrá los atributos//variables que tenga tu clase Cliente, en tu caso la clase Cliente tiene los atributos: idCliente, nombre, direccion y telefono:

Código
  1. public class Cliente{
  2.  
  3.    private int idCliente;
  4.    private String nombre;
  5.    private String direccion;
  6.    private String telefono;
  7.  
  8.   ...
  9.  

Esos valores los podrás modificar u obtener con los setters y los getters de un objeto de la clase Cliente:

Código
  1.    public void setIdCliente(int idCliente){
  2.        this.idCliente = idCliente;
  3.    }
  4.  
  5.    public String getNombre(){
  6.        return nombre;
  7.    }
  8.  
  9.   ...
  10.  
« Última modificación: 18 Enero 2018, 23:57 pm por HardC0d3 » En línea

men100

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Atributo de tipo "clase" : no entiendo nada
« Respuesta #4 en: 19 Enero 2018, 16:22 pm »

Pues tendrá los atributos//variables que tenga tu clase Cliente, en tu caso la clase Cliente tiene los atributos: idCliente, nombre, direccion y telefono:

Código
  1. public class Cliente{
  2.  
  3.    private int idCliente;
  4.    private String nombre;
  5.    private String direccion;
  6.    private String telefono;
  7.  
  8.   ...
  9.  

Esos valores los podrás modificar u obtener con los setters y los getters de un objeto de la clase Cliente:

Código
  1.    public void setIdCliente(int idCliente){
  2.        this.idCliente = idCliente;
  3.    }
  4.  
  5.    public String getNombre(){
  6.        return nombre;
  7.    }
  8.  
  9.   ...
  10.  


Gracias por la respuesta. Pero lo que dices, puede hacerse aun si no existiera la clase "Cuenta" (que es donde esta el atributo del tipo de clase "Cliente". Yo lo que digo es que trabajando con la clase "Cuenta":

Código
  1.  
  2. package modeloBancario;
  3.  
  4. public abstract class Cuenta {
  5.  
  6.    protected int numeroDeCuenta;
  7.    protected double saldo;
  8.    protected Cliente titular;
  9.  
  10.    public Cuenta(){
  11.  
  12.        numeroDeCuenta = 0;
  13.        saldo = 0;
  14.        titular = null;
  15.  
  16.    }
  17.  
  18.    public Cuenta (int numeroDeCuent, double saldo, Cliente titular){
  19.  
  20.        this.numeroDeCuenta = numeroDeCuenta;
  21.        this.saldo = saldo;
  22.        this.titular = titular;
  23.  
  24.  

hago su constructor con parámetros:

Código
  1. public Cuenta (int numeroDeCuent, double saldo, Cliente titular){
  2.  
  3.        this.numeroDeCuenta = numeroDeCuenta;
  4.        this.saldo = saldo;
  5.        this.titular = titular;
  6.    }

y...¿como se supone que creo un objeto del tipo titular? ¿Que parametos le doy?:

Código
  1.  
  2.    public static void main(String[] args) {
  3.  
  4.        Cuenta libreta1 = new Cuenta(1,3000,¿¿¿???);
  5.  
  6.  
  7.  

¿que pongo en las interrogaciones? se supone que titular, al ser de tipo de clase "Cliente", tiene 4 atributos. ¿Hay que poner los 4? ¿Alguno? ¿Que va ahi? Ya se que en los int van numeros, en los string letras...pero ahi,¿ que va?
En línea

rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: Atributo de tipo "clase" : no entiendo nada
« Respuesta #5 en: 19 Enero 2018, 17:41 pm »

ya va, un momento creo que te confundes cuando en realidad vas bien homie, bueno te creas una instancia de Tipo Cliente tal cual y debes iniciarlizar sus atributos o variables de instancia, como te lo mencionaron ya

Estas variables de instancia, instance field, campos, atributos, todo sinonimos , son un ejemplo de lo que puede tener este tipo de Cliente. aqui tiene 4, puede tener menos o mas eso depende de ti.

Código
  1. public class Cliente{
  2.  
  3.    private int idCliente;
  4.    private String nombre;
  5.    private String direccion;
  6.    private String telefono;
  7.  
  8.  



Pero esto ? lo viste bien  :huh: estas intentando instanciar una clase abstracta, de una tu compilador deberia de quejarse ya que es ilegal, una clase abstracta nunca se instancia, eso le corresponde a las clases que las extiendan, desarrollar la logica de esa clase

Código
  1. Cuenta libreta1 = new Cuenta(1,3000,¿¿¿???);
  2.  

actualizarSaldo, retirar estos metodos abstractos deben estar en la clase Cuenta y no los veo, también el metodo ingresar

Ejemplo
Código
  1. public abstract void actualizarSaldo();
  2. public abstract void retirar();

Tengo que formatear una pc con windows  :xD , vengo dentro de un rato.




Salida estandar por consola para atajos

Código
  1. package modeloBancario;
  2. public interface ShowData {
  3.    static <T> void println(final T s) {
  4.        System.out.println(s);
  5.    }
  6. }
  7.  


Clase cuenta
Código
  1. package modeloBancario;
  2.  
  3. /*
  4. Esta clase representa el concepte general de una Cuenta Bancaria basica
  5.  */
  6. public abstract class Cuenta {
  7.  
  8.    protected int numeroDeCuenta;
  9.    protected double saldo;
  10.    protected Cliente titular;
  11.  
  12.    public Cuenta() {
  13.        this.numeroDeCuenta = 0;
  14.        this.saldo = 0.0d;
  15.        this.titular = null;
  16.    }
  17.  
  18.    public Cuenta(int numeroDeCuenta, double saldo, Cliente titular) {
  19.        this.numeroDeCuenta = numeroDeCuenta;
  20.        this.saldo = saldo;
  21.        this.titular = titular;
  22.    }
  23.  
  24.    public int getNumeroDeCuenta() {
  25.        return numeroDeCuenta;
  26.    }
  27.  
  28.    public void setNumeroDeCuenta(int numeroDeCuenta) {
  29.        this.numeroDeCuenta = numeroDeCuenta;
  30.    }
  31.  
  32.    public double getSaldo() {
  33.        return saldo;
  34.    }
  35.  
  36.    public void setSaldo(double saldo) {
  37.        this.saldo = saldo;
  38.    }
  39.  
  40.    public Cliente getTitular() {
  41.        return titular;
  42.    }
  43.  
  44.    public void setTitular(Cliente titular) {
  45.        this.titular = titular;
  46.    }
  47.  
  48.    //ejemplo metodo ingresar XD
  49.    public void ingresar(int ingreso) {
  50.        this.saldo += ingreso;
  51.    }
  52.  
  53.    /*
  54.     Metodo abstracto que sera sobreescrito por las
  55.     subClases concretas
  56.      */
  57.    public abstract void actualizarSaldo();
  58.  
  59.    public abstract void retirar();
  60.  
  61.   @Override
  62.    public String toString() {
  63.        return "Numero de Cuenta=" + numeroDeCuenta+"\n" +
  64.                "Saldo= " + saldo+"\n" +
  65.                titular.toString();//usando metodo toString de la clase Cliente, reusar codigo
  66.  
  67.    }
  68. }
  69.  



Clase cliente
Código
  1. package modeloBancario;
  2.  
  3. public class Cliente {
  4.  
  5.    private int idCliente;
  6.    private String nombre;
  7.    private String direccion;
  8.    private String telefono;
  9.  
  10.    public Cliente (){
  11.        this.idCliente = 0;
  12.        this.nombre = "";
  13.        this.direccion = "";
  14.        this.telefono = "";
  15.    }
  16.  
  17.    public Cliente (int idCliente, String nombre, String direccion, String telefono){
  18.  
  19.        this.idCliente = idCliente;
  20.        this.nombre = nombre;
  21.        this.direccion = direccion;
  22.        this.telefono = telefono;
  23.  
  24.    }
  25.  
  26.    public int getIdCliente(){
  27.        return idCliente;
  28.    }
  29.  
  30.    public void setIdCliente(int idCliente){
  31.        this.idCliente = idCliente;
  32.    }
  33.  
  34.    public String getNombre(){
  35.        return nombre;
  36.    }
  37.  
  38.    public void setNombre(String nombre){
  39.        this.nombre = nombre;
  40.    }
  41.  
  42.    public String getDireccion(){
  43.        return direccion;
  44.    }
  45.  
  46.    public void setDireccion(String direccion){
  47.        this.direccion = direccion;
  48.    }
  49.  
  50.    public String getTelefono(){
  51.        return telefono;
  52.    }
  53.  
  54.    public void setTelefono(String telefono){
  55.        this.telefono = telefono;
  56.    }
  57.  
  58.     @Override
  59.    public String toString() {
  60.        return "idCliente= " + idCliente +"\n"+
  61.                "Nombre= " + nombre +"\n"+
  62.                "Direccion= " + direccion  +"\n"+
  63.                "Telefono= " + telefono ;
  64.    }
  65. }
  66.  


Clase TestExec es de ejemplo para que veas como se puede hacer, una de las tantas maneras de pasar ese parametro Cliente, aqui a través del metodo set linea 43

Código
  1. package modeloBancario;
  2. import javax.swing.*;
  3.  
  4. public class TestExec extends Cuenta {
  5.  
  6.  
  7.    private static JTextArea data = new JTextArea();
  8.  
  9.    public TestExec() {
  10.  
  11.    }
  12.  
  13.    @Override
  14.    public void actualizarSaldo() {
  15.        setSaldo(1000);
  16.         //heredamos el metodo setSaldo y lo usamos para setear el saldo del cliente
  17.        //de igual manera sobrescribimos el metodo Actualizar Saldo
  18.        // haciendo que esta clase TestExec sea una clase concreta
  19.    }
  20.  
  21.    @Override
  22.    public String toString() {
  23.        //invocamos al metodo toString de la superClase abstracta Cuenta con super
  24.        //para la reutilizacion de codigo
  25.        return super.toString();
  26.    }
  27.  
  28.        //dando el look por defecto del S0
  29.        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
  30.  
  31.        //Instanciando al cliente
  32.        Cliente clienteTitular = new Cliente(1, "men100", "barrio la Muerte", "+58000SinCorriente");
  33.  
  34.        //Instancia de clase TestExec constructor sin parametros
  35.        //tambien se pude invocar el constructor de la super clase y pasar parametros
  36.        TestExec test = new TestExec();
  37.        test.setNumeroDeCuenta(1241345145);
  38.  
  39.        //invocando metodo sobreEscrito
  40.        test.actualizarSaldo();
  41.  
  42.        test.setTitular(clienteTitular); // seteamos la instancia clienteTitular por el setter, mas abajo otra manera.
  43.  
  44.        //Salida estandar de la instancia TestExec
  45.        ShowData.println(test.toString());
  46.  
  47.        //Seteamos la instancia TestExec al JTextArea
  48.        data.setText(test.toString());
  49.        data.setEditable(false);
  50.        //Imprimiendo la data con una notificacion al usuario
  51.        JOptionPane.showMessageDialog(null,data,"Informacion cuenta Cliente",1);
  52.    }
  53.  
  54. }
  55.  
  56.  

Output

Código
  1. /opt/jdk1.8.0_92/bin/j...
  2. Numero de Cuenta=1241345145
  3. Saldo= 1000.0
  4. idCliente= 1
  5. Nombre= men100
  6. Direccion= barrio la Muerte
  7. Telefono= +58000SinCorriente
  8.  
  9. Process finished with exit code 0
  10.  



Aqui te muestro otra version de la clase TestExec la instancia de tipo Cliente la seteamos a través del constructor

  • Usando el constructor de la superClase invocandolo con super para reusar mas el source ver linea 10 a 13.
  • Incluido metodo retirar


Código
  1. package testing.foro.modeloBancario;
  2.  
  3.  
  4. import util.ShowData;
  5. import javax.swing.*;
  6.  
  7. public class TestExec extends Cuenta {
  8.  
  9.    private static JTextArea data = new JTextArea();
  10.    private static Double saldoRetirado;
  11.    private static Double saldoIngresado;
  12.  
  13.    public TestExec(int numeroDeCuenta, double saldo, Cliente titular, Double saldoRetirado) {
  14.        super(numeroDeCuenta, saldo, titular);//invocando el constructor de la superClase
  15.        this.saldoRetirado = saldoRetirado;
  16.    }
  17.  
  18.  
  19.    @Override
  20.    public void actualizarSaldo() {
  21.         //de igual manera sobrescribimos el metodo Actualizar Saldo
  22.        // haciendo que esta clase TestExec sea una clase concreta
  23.        ShowData.println("Saldo actual : "+super.getSaldo());
  24.    }
  25.  
  26.    @Override
  27.    public void retirar() {
  28.        if(super.getSaldo() > 0) {
  29.            final double egreso = (double) getSaldo() - saldoRetirado;
  30.            super.setSaldo(egreso);
  31.            ShowData.println("Saldo retirado: "+saldoRetirado);
  32.        }else {
  33.            ShowData.println("Saldo retirado: "+saldoRetirado);
  34.            JOptionPane.showMessageDialog(null,"No hay saldo disponible");
  35.        }
  36.    }
  37.  
  38.    @Override
  39.    public String toString() {
  40.        //invocamos al metodo toString de la superClase abstracta Cuenta con super
  41.        //para la reutilizacion de codigo
  42.        return super.toString();
  43.    }
  44.  
  45.        //dando el look por defecto del S0
  46.        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
  47.  
  48.        //Instanciando al cliente
  49.        Cliente clienteTitular = new Cliente(1, "men100", "barrio la Muerte", "+58000SinCorriente");
  50.  
  51.  
  52.        //ingresamos el saldo y validamos el input
  53.        final String in = JOptionPane.showInputDialog("Ingresar saldo");
  54.        saldoIngresado = Double.valueOf(in);
  55.  
  56.        //retiramos saldo y validamos el input
  57.        final String out = JOptionPane.showInputDialog("Cuanto desea retirar ? ");
  58.        saldoRetirado = Double.valueOf(out);
  59.  
  60.  
  61.        //Instanciando el constructor con parametros e ivocando al de la super clase ver linea 12
  62.        TestExec test = new TestExec(1241345145, 0.0, clienteTitular, saldoRetirado);
  63.        test.setSaldo(saldoIngresado);
  64.        ShowData.println("Saldo ingresado "+saldoIngresado);
  65.  
  66.        test.retirar();
  67.        test.actualizarSaldo();
  68.        //Salida estandar del instancia TestExec
  69.  
  70.        //mostrar salida estandar
  71.        Mostrar.println(test.toString());
  72.  
  73.        final StringBuilder sb = new StringBuilder();
  74.        sb.append("Saldo ingresado: "+saldoIngresado+"\n");
  75.        sb.append("Saldo retirado: "+ saldoRetirado +"\n");
  76.  
  77.        //Setemos el instancia TestExec al JTextArea
  78.        data.setText(sb.toString()+test.toString());
  79.        data.setEditable(false);
  80.        //Imprimiendo la data con una notificacion al usuario
  81.        JOptionPane.showMessageDialog(null,data,"Informacion cuenta Cliente",1);
  82.    }
  83.  
  84. }
  85.  


y te pasas por aqui  :D

https://foro.elhacker.net/java/manuales_de_java-t162966.30.html
« Última modificación: 21 Enero 2018, 22:51 pm por rub'n » En línea

rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen king
HardC0d3

Desconectado Desconectado

Mensajes: 49



Ver Perfil
Re: Atributo de tipo "clase" : no entiendo nada
« Respuesta #6 en: 19 Enero 2018, 22:12 pm »

Citar
men100 :
¿que pongo en las interrogaciones? se supone que titular, al ser de tipo de clase "Cliente", tiene 4 atributos. ¿Hay que poner los 4? ¿Alguno? ¿Que va ahi? Ya se que en los int van numeros, en los string letras...pero ahi,¿ que va?

Al crear un objeto de tipo Cuenta tienes que ponerle los parámetros que el constructor de la clase Cuenta espera que le pases. Tu clase Cuenta espera un entero, un double y un OBJETO de tipo Cliente, así pues:

Código
  1. public static void main(String[] args) {
  2.  
  3.        Cuenta libreta1 = new Cuenta(1, 3000, ????);

El parámetro "????" debe ser un objeto Cliente. ¿Como creas un objeto Cliente? Pues lo puedes crear así:
Código
  1. // Creas un objeto Cliente
  2. Cliente titular = new Cliente(22, "Pepe", "Calle Falsa", "963232323"); // int, String, String, String.
  3.  
  4. // Creas un objeto Cuenta al que le pasas por parametro un entero, un double y el objeto Cliente ya creado.
  5. Cuenta libreta1 = new Cuenta(1, 3000, titular); // int, double, Cliente.
  6.  

O puedes meterle el objeto Cliente directamente (queda mas guarro):
Código
  1.  
  2. Cuenta libreta1 = new Cuenta(1, 3000, new Cliente(22, "Pepe", "Calle Falsa", "963232323"));
  3.  
  4.  

PD1: Lo que te comenta el compañero rub'n, si usas una clase Abstracta deberás implementar, por lo menos, un método abstracto. Esa clase Abstracta no podrá  ser instanciada ( = new Blablabla...)

PD2: Lo que no entiendo es por qué la clase Cuenta tiene que ser abstracta, no me cuadra, porque para ello Cliente debe heredar de Cuenta, y no es lógico (un Cliente no es Cuenta  :¬¬ )

Saludos.
« Última modificación: 19 Enero 2018, 22:31 pm por HardC0d3 » En línea

rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: Atributo de tipo "clase" : no entiendo nada
« Respuesta #7 en: 19 Enero 2018, 22:57 pm »


PD2: Lo que no entiendo es por qué la clase Cuenta tiene que ser abstracta, no me cuadra, porque para ello Cliente debe heredar de Cuenta, y no es lógico (un Cliente no es Cuenta  :¬¬ )

Saludos.


Pero eso es de ejemplo homie, seguro el enunciado a penas esta completo,  :xD y seguro que en ese enunciado deberan mostrar cuales seran las clases hijas o concretas tanto para la clase Cuenta como para la clase Cliente para heredar sus atributos.
En línea

rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen king
men100

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Atributo de tipo "clase" : no entiendo nada
« Respuesta #8 en: 20 Enero 2018, 11:54 am »

Gracias por las respuestas chicos, ya me queda más claro. Estoy empezando y hay cosas que aun no he dado, pero revisare este hilo cuando avance en la materia.

Efectivamente, el enunciado esta imcompleto y por eso faltan las clases hijas jeje. La duda que tenia era lo del atributo tipo objeto. Intenté hacerlo así:

Código
  1. Cuenta libreta1 = new Cuenta(1, 3000, new Cliente(22, "Pepe", "Calle Falsa", "963232323"));

pero daba error, seguramente no habia puesto lo de "new Cliente" antes de los parámetros.

pero ahora casi todo claro!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines