Devo usare il modificatore di accesso predefinito o no? Praticare la codifica?

8

Normalmente quando si creano nuove variabili globali non definisco il suo modificatore di accesso. Quindi, come per Java, adotterà il modificatore di accesso predefinito di proprietà. Quando ho bisogno di accedere a quella variabile in un ambito di default, cambio il suo modificatore di accesso altrimenti lo lasci com'è. Quindi la mia domanda è " Sto facendo la cosa giusta? È normale avere variabili di accesso predefinite? O dovrei usare private / public per loro? È buona pratica di codifica non utilizzare i modificatori di accesso? "

    
posta Harry Joy 04.07.2011 - 07:25
fonte

3 risposte

13

2 cose qui:

  1. non utilizzare le globali:)
  2. è prassi comune / migliore presumere che tutti i campi siano privati a meno che non vi sia un motivo imperativo per renderli qualcos'altro, nel qual caso deve essere scelto l'accesso più restrittivo (solitamente protetto).

Ovviamente ci sono sempre delle eccezioni alla regola, ma sono le basi da cui partire.

    
risposta data 04.07.2011 - 07:46
fonte
5

Alcuni principi generali di programmazione qui:

  • Semplice è meglio
  • Non indicare l'ovvio

... ma anche:

  • L'esplicito è migliore di implicito

Non sono un esperto di Java, ma la regola generale dovrebbe essere: Se ciò che accade è ovvio per qualcuno che ha familiarità con la lingua senza essere esplicito, usa il comportamento implicito. Se tuttavia questo potrebbe mettere qualcuno sulla strada sbagliata, quindi con tutti i mezzi essere espliciti.

    
risposta data 04.07.2011 - 08:03
fonte
-1

Java non ha proprietà automatiche, quindi tutti i membri della classe in generale dovrebbero essere privati con i metodi get / set per l'utilizzo pubblico, se necessario.

Secondo la fonte (Oracle java Docs) questo è l'approccio raccomandato.

"Utilizza il livello di accesso più restrittivo che abbia senso per un particolare membro. Usa privato a meno che tu non abbia una buona ragione per non farlo. Evita i campi pubblici ad eccezione delle costanti. I campi pubblici tendono a collegarti a una particolare implementazione e a limitare la tua flessibilità nel cambiare il tuo codice. "

link

    
risposta data 05.07.2011 - 05:06
fonte

Leggi altre domande sui tag