Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Programma bancomat semplice

    ho fatto un mini progetto per il corso java che sto seguendo e ho un errore che non riesco a risolvere .

    l'errore che e mi si sovrascrivono i dati di conto arancio(nome,cognome,saldo) con quelli del contocorrente, succede l'inverso se gli sposto di ordine nel main(contocorrente sta sopra a conto arancio)

    ci sto sbattendo la testa da un po e non riesco a risolvere se qualcuno mi potrebbe dare una mano ne sarei infinitamente grato


    codice:
    public class TestMyFrame {
        
        public static void main(String[] args) {
            
            
            MyFrame x=new MyFrame("INSERIMENTO PIN");
            ContoArancio cona = new ContoArancio ("marco","rossi", 2000);
            Conto contocorrente = new Conto ("luca","bianchi",3500);
            
        }
    }
    
    public class Conto {
    
    
        private String nome = null;
        private String cognome = null;
        private static  double saldo = 0;
        private static int nConto = 0;
        private static  String pin = "1234";
        
        
        public Conto (String nome ,String cognome , double saldo){
            this.nome=nome;
            this.cognome=cognome;
            Conto.saldo=saldo;
            
        }
        public static  String getPin() {
            return pin;
        }
    
    
        public String getNome() {
            return nome;
        }
        public void setNome(String nome) {
            this.nome = nome;
        }
        public String getCognome() {
            return cognome;
        }
        public void setCognome(String cognome) {
            this.cognome = cognome;
        }
        public static  double getSaldo() {
            return saldo;
        }
        public void setSaldo(double saldo) {
            Conto.saldo = saldo;
        }
        public static int getnConto() {
            return ++nConto;
        }
        public static void setnConto(int nConto) {
            Conto.nConto = nConto;
        }
        
    }
    
    
    public class ContoArancio extends Conto{
         private static int  interessi= 2 ;
         private static String pinarancio = "1111";
    
    
         
         
    
    
        public ContoArancio(String nome, String cognome, double saldo) {
            super(nome, cognome, saldo);
            
        }
        public  static String getPinarancio() {
            return pinarancio;
        }
        public static int getInteressi() {
            return interessi;
        }
        
    
    
        
        public static void setPinarancio(String pinarancio) {
            ContoArancio.pinarancio = pinarancio;
        }
         }

    piu i frame
    Ultima modifica di LeleFT; 20-06-2016 a 11:00 Motivo: Aggiunti i tag CODE

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,260
    Quote Originariamente inviata da Giselbart Visualizza il messaggio
    private static double saldo = 0;
    private static int nConto = 0;
    Questi sono dubbi ... molto.

    E anche il resto comunque è da rivedere.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Questi sono dubbi ... molto.

    E anche il resto comunque è da rivedere.
    infatti il saldo per i due conti mi viene uguale , come potrei risolvere ?
    ho appena iniziato con java e mi scuso per eventi obbrobri

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,260
    Quote Originariamente inviata da Giselbart Visualizza il messaggio
    infatti il saldo per i due conti mi viene uguale , come potrei risolvere ?
    ho appena iniziato con java e mi scuso per eventi obbrobri
    I membri "di istanza" (non static) sono associati a ciascuna istanza della classe. Vuol dire che ciascun oggetto ha i suoi campi di istanza e i metodi di istanza che possono operare su di essi.
    I membri "di classe" (static) sono associati alla classe e sono unici, per così dire "globali", indipendentemente da quanti oggetti hai creato di quella classe. Poche volte servono, per certi tipi di design oppure per definire delle "costanti".

    Quindi dimentica un pochino lo "static", pensa a cosa ciascun oggetto di quella classe deve avere e quindi definisci i campi di istanza (non static), preferibilmente private e poi mettendo i metodi "accessori" getter/setter (non static) public.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Quote Originariamente inviata da andbin Visualizza il messaggio
    I membri "di istanza" (non static) sono associati a ciascuna istanza della classe. Vuol dire che ciascun oggetto ha i suoi campi di istanza e i metodi di istanza che possono operare su di essi.
    I membri "di classe" (static) sono associati alla classe e sono unici, per così dire "globali", indipendentemente da quanti oggetti hai creato di quella classe. Poche volte servono, per certi tipi di design oppure per definire delle "costanti".

    Quindi dimentica un pochino lo "static", pensa a cosa ciascun oggetto di quella classe deve avere e quindi definisci i campi di istanza (non static), preferibilmente private e poi mettendo i metodi "accessori" getter/setter (non static) public.
    ora capisco perchè avveniva quel errore ,
    adesso invece ho un problema nel frame il comando get mi da errore ,
    qual'è l'errore che commetto?
    Ps ti sono infinitamente grato per la spiegazione che non ne venivo a capo

    //saldo conto
    if(Conto.getPin().equals(MyFrame.getTesto())){
    this.saldot= Conto.getSaldo();
    System.out.println(saldot);
    }
    if(ContoArancio.getPinarancio().equals(MyFrame.get Testo())){
    this.saldot= ContoArancio.getSaldo();
    System.out.println(saldot);

    }

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,260
    Quote Originariamente inviata da Giselbart Visualizza il messaggio
    if(Conto.getPin().equals(MyFrame.getTesto())){
    MyFrame è una classe e getTesto() deve quindi essere per forza un metodo statico. E ci risiamo, non va bene. Le problematiche qui vedo che sono più che altro sui concetti della programmazione ad oggetti, che dovresti acquisire meglio. Se continui a mettere static di qua e di là risolvi solo in parte (e comunque male) le cose. Serve una visione migliore su come "disegnare" le classi a livello di struttura e architettura.
    Ultima modifica di andbin; 18-06-2016 a 14:03
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Quote Originariamente inviata da andbin Visualizza il messaggio
    MyFrame è una classe e getTesto() deve quindi essere per forza un metodo statico. E ci risiamo, non va bene. Le problematiche qui vedo che sono più che altro sui concetti della programmazione ad oggetti, che dovresti acquisire meglio. Se continui a mettere static di qua e di là risolvi solo in parte (e comunque male) le cose. Serve una visione migliore su come "disegnare" le classi a livello di struttura e architettura.
    mi potresti fare un esempio o darmi qualche altro suggerimento , che mi sto scervellando per trovare una soluzione ma niente
    grazie ancora per le dritte

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,260
    Quote Originariamente inviata da Giselbart Visualizza il messaggio
    mi potresti fare un esempio o darmi qualche altro suggerimento , che mi sto scervellando per trovare una soluzione ma niente
    La cosa ovvia da notare è che MyFrame lo istanzi nel main e la variabile x è locale al main. Quindi nessun'altro ha il riferimento al MyFrame. Ma non è tanto questo il punto/problema.

    Se hai una interfaccia grafica, essa va "avanti" per eventi. Quindi: quando è ed a seguito di cosa che devi far interagire la interfaccia con le due classi dei conti?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Quote Originariamente inviata da andbin Visualizza il messaggio
    La cosa ovvia da notare è che MyFrame lo istanzi nel main e la variabile x è locale al main. Quindi nessun'altro ha il riferimento al MyFrame. Ma non è tanto questo il punto/problema.

    Se hai una interfaccia grafica, essa va "avanti" per eventi. Quindi: quando è ed a seguito di cosa che devi far interagire la interfaccia con le due classi dei conti?
    dal textfield prendo i pin che mi indirizzano sui conti(gia da qui ho il mio problema dello static (il pin e statico)

    public class MyFrame extends Frame implements ActionListener{



    private Color c=new Color(255,255,0);

    private Button b=null;
    private Button in=null;
    public TextField p = null;
    public static String testo =null;
    static private int contatorePin=0;

    public MyFrame(String t)
    {
    super(t);
    this.setLayout(null);//elimina i gestori di layout
    setVisible(true);
    setSize(500,500);
    setLocation(400,350);
    setBackground(c);

    b=new Button("chiudi");

    b.setSize(70,30);
    b.setLocation(230,270);
    b.addActionListener(this);

    in=new Button("invio");
    in.setSize(70, 30);
    in.setLocation(230, 200);
    in.addActionListener(this);
    p = new TextField();
    p.setSize(100, 40);
    p.setLocation(215, 140);

    add(p);
    add(b);
    add(in);
    }












    @Override
    public void actionPerformed(ActionEvent event) {
    if(event.getSource()==b){
    System.exit(0);
    }
    if (event.getSource() ==in){
    contatorePin++;
    testo =p.getText();
    if(Conto.getPin().equals(testo)){
    this.dispose();
    MyFrame2 fin = new MyFrame2("prelievo e deposito");

    }
    if(ContoArancio.getPinarancio().equals(testo)){
    this.dispose();
    MyFrame2 fine = new MyFrame2("prelievo e deposito");
    }
    p.setText("pin non valido");
    if(contatorePin==3){
    System.exit(0);
    }
    }
    }
    public static String getTesto() {
    return testo;
    }
    }

  10. #10
    non so come come far interagire il frame con le altre classi senza lo static

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.