Il pacchetto predefinito è incluso nell'accesso a livello di pacchetto?

1

Vorrei sapere come il pacchetto predefinito è definito in Java. So come viene definito l'accesso pubblico e privato ma non so se c'è un predefinito accesso al pacchetto definito in accesso a livello di pacchetto in java.

Sto facendo questa domanda perché quando compilo un file java contenente due classi poiché non viene fornito alcun modificatore per le classi, il compilatore java darebbe l'accesso a livello di pacchetto come modificatore di accesso predefinito per le classi. nessun pacchetto è definito, il compilatore java userebbe il pacchetto predefinito ma non potrei ottenere se il pacchetto predefinito sia incluso in accesso a livello di pacchetto in java. Qualcuno potrebbe aiutarmi.

    
posta justin 03.12.2014 - 14:27
fonte

1 risposta

1

Il pacchetto predefinito è il pacchetto senza un nome, tutte le classi senza una dichiarazione package nella parte superiore del file rientrano in esso.

È soggetto a tutte le normali regole dei pacchetti, tranne per il fatto che non può fare riferimento a classi di esso da una classe all'interno di un pacchetto.

Ad esempio, ho 2 file java:

public class A{
    public static void foo(){System.out.println("fooCalled");}
}

e

package com.example;

public class B{
    public static void main(String[] arg){
        A.foo();//won't compile
    }

}

Quindi B (o nella forma qualificata com.example.B ) non può mai chiamare foo di A senza magic reflection.

Se inizi a creare programmi più grandi, dovresti inserire tutto il codice nei pacchetti. Ti permette di separare il tuo codice in un modo che abbia senso.

La pratica accettata è quella di nominare il pacchetto dopo un dominio che il programma fa parte di like com.example

    
risposta data 03.12.2014 - 14:36
fonte

Leggi altre domande sui tag