Java e resto lingue OOP - quando usare super o queste parole chiave

2

Ho programmato java per un anno o più, e ho sempre utilizzato le parole chiave this e super .

E ieri il mio amico ha letto una mia fonte e mi ha detto di non usarla troppo a meno che tu non stia ignorando il metodo.

class A extends JPanel {
     public A {
         super.setSize(400, 400);// instead of not using super keyword
     }
}

Ma cosa intendeva su come usarlo, è questo:

class A extends JPanel {
    public A {
        super.setSize(4,4);
    }

    public void setSize(int a, int b) {}
}

Quindi la lingua saprà che il costruttore chiama il metodo genitore e non locale.

Devo usare solo le parole chiave solo in questa situazione o usare le parole chiave ovunque per una migliore leggibilità?

So che la parola chiave this restituisce l'intera istanza locale, inclusi il genitore e tutti i suoi genitori e le sue interfacce.

E la parola chiave super restituisce l'istanza della classe genitore e tutte le sue istanze (genitori e interfacce).

Ma la mia domanda è, dovresti sempre usare queste parole chiave?

    
posta Ben Beri 27.07.2014 - 10:29
fonte

1 risposta

7

Devi essere a conoscenza di tutti i casi speciali in cui è obbligatorio utilizzare super o this . Hai descritto uno di quei casi d'angolo - funzioni sovrascritte. Imparerai altri casi speciali mentre prosegui.

Oltre a quei casi specifici , l'utilizzo di this e super è una questione di preferenza. Producono lo stesso codice macchina e quindi sono esattamente gli stessi della macchina. Tuttavia, differiscono in termini di leggibilità per una persona .

È importante scegliere uno stile e usarlo in modo coerente. Con questo, intendo non solo te, ma tutta la tua squadra. Ognuno decide su un modo di fare le cose e si attiene a questo. Questo rende facile capire il codice della squadra. Questo è chiamato "standard di codifica" .

Controlla se sono state pubblicate linee guida sulla codifica o standard di codifica stabiliti dalla società o dal team. Se sì, seguiteli. Altrimenti, guarda cosa usa normalmente il resto della squadra. Puoi discutere di questo con il tuo team per decidere ufficialmente su uno standard.

    
risposta data 27.07.2014 - 10:57
fonte

Leggi altre domande sui tag