Visualizzazione dei risultati da 1 a 10 su 12

Hybrid View

  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,284
    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,284
    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,284
    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
    non so come come far interagire il frame con le altre classi senza lo static

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Giselbart Visualizza il messaggio
    non so come come far interagire il frame con le altre classi senza lo static
    Se vuoi che MyFrame interagisca con un oggetto Conto/ContoArancio le cose sono almeno due: o è MyFrame che li istanzia oppure MyFrame li riceve in qualche modo (banalmente tramite costruttore).

    Ma ti ripeto che "static" lo devi dimenticare per queste cose. È principalmente una questione di "design" delle classi.
    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
    Se vuoi che MyFrame interagisca con un oggetto Conto/ContoArancio le cose sono almeno due: o è MyFrame che li istanzia oppure MyFrame li riceve in qualche modo (banalmente tramite costruttore).

    Ma ti ripeto che "static" lo devi dimenticare per queste cose. È principalmente una questione di "design" delle classi.
    Grazie infinite per le spiegazioni ora ho capito tutti gli errori che ho commesso(scusa di averti rotto le scatole per un po ma volevo comprendere tutto per bene)

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 © 2025 vBulletin Solutions, Inc. All rights reserved.