Tworzenie klasy lub typu Java

Dzięki oknu Create New Class (Tworzenie nowej klasy) i szablonom plików Android Studio pomaga szybko tworzyć te nowe klasy i typy:

  • klasy Java,
  • Klasy wyliczeniowe i singletony
  • Typy interfejsów i adnotacji

Po wypełnieniu pól w oknie Create New Class (Utwórz nową klasę) i kliknięciu OK Android Studio utworzy .java plik zawierający szkielet kodu, w tym instrukcję pakietu, niezbędne importy, nagłówek i deklarację klasy lub typu. Następnie możesz dodać do tego pliku kod.

Szablony plików określają, jak Android Studio generuje kod szkieletowy. Możesz używać szablonów plików dostarczonych z Androidem Studio w niezmienionej formie lub dostosowywać je do swoich potrzeb.

Wyświetlanie i dostosowywanie szablonów plików

Android Studio udostępnia szablony plików, które określają, jak tworzone są nowe klasy i typy Java w oknie Utwórz nową klasę. Możesz dostosować te szablony.

Okno Tworzenie nowych zajęć.

Rysunek 1. Okno Utwórz nowe zajęcia.

Szablony plików Androida Studio zawierają kod VTL (Velocity Template Language) i zmienne, które obsługują te dodatkowe opcje. W oknie Create New Class (Utwórz nową klasę) używane są szablony plików AnnotationType, Class, Enum, InterfaceSingleton.

Aby wyświetlić szablony, znaleźć dostosowania i zmodyfikować szablony, wykonaj te czynności:

  1. Wykonaj jedną z tych czynności:

    • W systemie Windows lub Linux wybierz File > Settings > Editor > File and Code Templates > Files (Plik > Ustawienia > Edytor > Szablony plików i kodu > Pliki).
    • W przypadku macOS wybierz Android Studio > Preferences > Editor > File and Code Templates > Files.

    Na liście szablonów wewnętrzne nazwy szablonów są wyróżnione pogrubioną czcionką. Nazwy dostosowanych szablonów są wyświetlane w wyróżniającym się kolorze, np. niebieskim.

  2. W razie potrzeby dostosuj szablony plików.

    Jeśli chcesz użyć pól w oknie Create New Class (Utwórz nową klasę), upewnij się, że zmiany są zgodne z kodem szablonu pliku Android Studio.

Więcej informacji o szablonach plików, w tym o VTL, znajdziesz w sekcjach Szablony plików i kodu oraz Okno dialogowe Szablony plików i kodu.

Tworzenie klasy lub typu w Javie

Android Studio pomaga tworzyć nowe klasy Java, klasy wyliczeniowe i singleton, a także typy interfejsów i adnotacji na podstawie szablonów plików.

Aby utworzyć nową klasę lub typ w języku Java, wykonaj te czynności:

  1. W oknie Project (Projekt) kliknij prawym przyciskiem myszy plik lub folder Java i wybierz New (Nowy) > Java Class (Klasa Java).
  2. Możesz też wybrać plik lub folder Java w oknie Project lub kliknąć plik Java w edytorze kodu. Następnie wybierz Plik > Nowy > Klasa Java.

    Wybrany element określa domyślny pakiet dla nowych zajęć lub typu.

  3. W oknie Utwórz nowe zajęcia wypełnij pola:
    • Nazwa – nazwa nowych zajęć lub typu. Musi być zgodna z wymaganiami dotyczącymi nazw w języku Java. Nie wpisuj rozszerzenia nazwy pliku.
    • Rodzaj – wybierz kategorię zajęć lub typ.
    • Superclass – klasa, z której dziedziczy nowa klasa. Możesz wpisać nazwę pakietu i klasy lub tylko nazwę klasy, a potem kliknąć dwukrotnie element na liście, aby go autouzupełnić.
    • Interfejsy – co najmniej jeden interfejs, który implementuje nowa klasa lub typ. Poszczególne interfejsy należy oddzielać przecinkiem i opcjonalną spacją. Możesz wpisać nazwę pakietu i interfejsu lub tylko nazwę interfejsu, a potem kliknąć dwukrotnie element na liście, aby go uzupełnić.
    • Autouzupełnianie działa tylko w przypadku pierwszej nazwy interfejsu. Pamiętaj, że przecinek i nazwa interfejsu mogą powodować wyświetlanie błędu w dymku, ale możesz go zignorować, ponieważ nie wpływa on na wygenerowany kod.

    • Pakiet – pakiet, w którym będzie się znajdować klasa lub typ. W polu automatycznie pojawi się wartość domyślna. Jeśli w polu wpiszesz nazwę pakietu, wszystkie części identyfikatora pakietu, które nie istnieją, zostaną podświetlone na czerwono. W takim przypadku Android Studio utworzy pakiet po kliknięciu OK. To pole musi zawierać wartość. W przeciwnym razie plik Java nie będzie zawierać instrukcji package, a klasa lub typ nie zostaną umieszczone w pakiecie w projekcie.
    • Wartość domyślna zależy od tego, jak zostało otwarte okno Utwórz nowe zajęcia. Jeśli najpierw wybierzesz plik lub folder Java w oknie Project (Projekt), domyślnie będzie to pakiet wybranego elementu. Jeśli najpierw klikniesz plik Java w edytorze kodu, domyślnie zostanie wybrany pakiet zawierający ten plik.

    • Widoczność – wybierz, czy zajęcia lub typ mają być widoczne dla wszystkich zajęć, czy tylko dla tych w tym samym pakiecie.
    • Modyfikatory – wybierz modyfikator Abstract lub Final dla klasy albo nie wybieraj żadnego z nich.
    • Show Select Overrides Dialog (Wyświetl okno wyboru zastąpień) – w przypadku rodzaju klasy zaznacz tę opcję, aby po kliknięciu OK otworzyć okno wyboru metod do zastąpienia lub zaimplementowania. W tym oknie możesz wybrać metody, które chcesz zastąpić lub zaimplementować, a Android Studio wygeneruje dla nich kod szkieletowy.

    Pola, które nie mają zastosowania do rodzaju, są ukryte.

  4. Kliknij OK.
  5. Android Studio utworzy plik Java z kodem szkieletowym, który możesz zmodyfikować. Otworzy się plik w edytorze kodu.

Uwaga: klasę singleton można utworzyć, wybierając Plik > Nowy > Singleton lub Plik > Nowy > Klasa Java. Ta druga metoda oferuje więcej opcji.

Szablony plików Android Studio

W tej sekcji znajdziesz kod szablonu pliku Android Studio napisany w języku skryptowym VTL, a także definicje zmiennych. Wartości podane w oknie Utwórz nowe zajęcia staną się wartościami zmiennych w szablonie. Zwróć uwagę, że wiersze zaczynające się od znaku#if (${VISIBILITY} rozciągają się aż do otwartego nawiasu klamrowego ({).

Szablon pliku AnnotationType

#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")

#if (${VISIBILITY} == "PUBLIC")public #end @interface ${NAME} #if (${INTERFACES} != "")extends ${INTERFACES} #end {
}

Szablon pliku zajęć

#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")

#if (${VISIBILITY} == "PUBLIC")public #end #if (${ABSTRACT} == "TRUE")abstract #end #if (${FINAL} == "TRUE")final #end class ${NAME} #if (${SUPERCLASS} != "")extends ${SUPERCLASS} #end #if (${INTERFACES} != "")implements ${INTERFACES} #end {
}

Szablon pliku wyliczeniowego

#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")

#if (${VISIBILITY} == "PUBLIC")public #end enum ${NAME} #if (${INTERFACES} != "")implements ${INTERFACES} #end {
}

Szablon pliku interfejsu

#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")

#if (${VISIBILITY} == "PUBLIC")public #end enum ${NAME} #if (${INTERFACES} != "")implements ${INTERFACES} #end {
#end {
}

Szablon pojedynczego pliku

#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

#if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK}
#end
#parse("File Header.java")

#if (${VISIBILITY} == "PUBLIC")public #end class ${NAME} #if (${SUPERCLASS} != "")extends ${SUPERCLASS} #end #if (${INTERFACES} != "")implements ${INTERFACES} #end {
    private static final ${NAME} ourInstance = new ${NAME}();

    #if (${VISIBILITY} == "PUBLIC")public #end static ${NAME} getInstance() {
        return ourInstance;
    }

    private ${NAME}() {
    }
}

Zmienne szablonu pliku

Android Studio zastępuje zmienne szablonu pliku wartościami w wygenerowanym pliku Java. Wartości wpisuje się w oknie Utwórz nowe zajęcia. Szablon zawiera te zmienne, których możesz użyć:

  • IMPORT_BLOCK – lista instrukcji w języku Java oddzielonych znakiem nowego wiersza, które są niezbędne do obsługi dowolnej klasy nadrzędnej lub interfejsów, albo pusty ciąg znaków (""). Jeśli na przykład implementujesz tylko interfejs Runnable i nie rozszerzasz żadnej klasy, ta zmienna będzie miała wartość "import java.lang.Runnable;\n".import Jeśli zaimplementujesz interfejs Runnable i rozszerzysz klasę Activity, będzie to "import android.app.Activity;\nimportjava.lang.Runnable;\n".
  • VISIBILITY – czy zajęcia będą dostępne publicznie. Może mieć wartość PUBLIC lub PACKAGE_PRIVATE.
  • SUPERCLASS – pojedyncza nazwa klasy lub pusta. Jeśli występuje, po nowej nazwie klasy pojawi się klauzula extends ${SUPERCLASS}.
  • INTERFACES – rozdzielana przecinkami lista interfejsów lub pusta. Jeśli występuje, po nadklasie lub po nazwie klasy (jeśli nie ma nadklasy) pojawi się klauzula implements ${INTERFACES}. W przypadku interfejsów i typów adnotacji interfejsy mają słowo kluczowe extends.
  • ABSTRACT – czy klasa powinna być abstrakcyjna. Może mieć wartość TRUE lub FALSE.
  • FINAL – czy klasa powinna być ostateczna. Może mieć wartość TRUE lub FALSE.