Tworzenie klasy lub typu Java

Przy użyciu okna Utwórz nową klasę i szablonów plików Android Studio pomaga szybko tworzyć takie nowe klasy i typy:

  • Klasy Java
  • Klasy wyliczeń i singleton
  • Typy interfejsów i adnotacji

Gdy wypełnisz pola w oknie Utwórz nową klasę i klikniesz OK, Android Studio utworzy plik .java zawierający kod szkieletowy, w tym instrukcję pakietu, niezbędne importy, nagłówek i deklarację klasy lub typu. Następnie możesz dodać kod do tego pliku.

Szablony plików określają sposób generowania kodu szkieletowego przez Android Studio. Możesz użyć szablonów plików dostępnych w Android Studio w niezmienionej postaci lub dostosować je do swojego procesu programowania.

Wyświetlanie i dostosowywanie szablonów plików

Android Studio udostępnia szablony plików, które określają sposób tworzenia nowych klas i typów Java w oknie Utwórz nową klasę. Możesz je dostosować.

Okno tworzenia nowych zajęć.

Rysunek 1. Otworzy się okno Utwórz nową klasę.

Szablony plików w Android Studio obejmują kod VTL (Venlocity Template Language) i zmienne, które obsługują te dodatkowe opcje. W oknie Utwórz nową klasę używane są szablony plików AnnotationType, Class, Enum, Interface i Singleton.

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

  1. Wykonać jedną z tych czynności:

    • W systemach Windows i Linux wybierz Plik > Ustawienia > Edytor > Pliki i szablony kodu > Pliki.
    • W systemie macOS wybierz Android Studio > Ustawienia > Edytor > Pliki i szablony kodu > Pliki.

    Na liście szablonów nazwy szablonów wewnętrznych są wyróżnione pogrubioną czcionką. Niestandardowe nazwy szablonów są wyświetlane w kolorze wyróżnienia, np. niebieskim.

  2. Dostosuj szablony plików do swoich potrzeb.

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

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

Tworzenie klasy lub typu Java

Android Studio ułatwia tworzenie nowych klas Javy, klas wyliczeniowych i pojedynczych klas oraz typów interfejsów i adnotacji opartych na szablonach plików.

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

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

    Wybrany element określa domyślny pakiet dla nowej klasy lub nowego typu.

  3. W oknie Create New Class (Utwórz nowe zajęcia) wypełnij pola:
    • Nazwa – nazwa nowej klasy lub typu. Musi on być zgodny z wymaganiami dotyczącymi nazw Java. Nie wpisuj rozszerzenia nazwy pliku.
    • Rodzaj – wybierz kategorię lub typ zajęć.
    • Superclass – klasa, z której dziedziczy nowe zajęcia. Wpisz nazwę pakietu i klasy lub samą nazwę zajęć, a następnie kliknij dwukrotnie element na liście, aby go automatycznie uzupełnić.
    • Interfejsy – co najmniej jeden interfejs zaimplementowany przez nową klasę lub typ. Poszczególne interfejsy powinny być rozdzielone przecinkami, po których następuje opcjonalna spacja. Wystarczy wpisać nazwę pakietu i interfejsu lub samą nazwę interfejsu, a następnie kliknąć dwukrotnie element na liście, aby go uzupełnić.
    • Autouzupełnianie działa tylko w przypadku nazwy pierwszego interfejsu. Pamiętaj, że przecinek i następna nazwa interfejsu mogą spowodować wyświetlenie błędu etykietki, ale możesz go zignorować, ponieważ nie ma on wpływu 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 wpiszesz w tym polu nazwę pakietu, wszystkie brakujące fragmenty identyfikatora pakietu zostaną wyróżnione na czerwono. W tym przypadku Android Studio utworzy pakiet, gdy klikniesz 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.
    • Zależy ona od tego, jak zostało przez Ciebie uruchomione okno Utwórz nową klasę. Jeśli po raz pierwszy w oknie Projekt wybrano plik lub folder Java, domyślnie jest to pakiet wybranego elementu. Jeśli po raz pierwszy klikniesz plik Java w edytorze kodu, domyślnym będzie pakiet zawierający ten plik.

    • Widoczność – określ, czy klasa lub typ mają być widoczne dla wszystkich klas, czy tylko dla osób w ich pakiecie.
    • Modyfikatory – wybierz modyfikator Streszczenie lub Końcowy dla elementu Class albo żaden z nich.
    • Pokaż okno wyboru zastąpień – w przypadku rodzaju klasy zaznacz tę opcję, aby po kliknięciu OK otworzyć okno Wybierz metody do zastąpienia/implementacji. W tym oknie możesz wybrać metody, które chcesz zastąpić lub zaimplementować, a Android Studio wygeneruje ich kod szkieletowy.

    Pola, które nie dotyczą rodzaju, są ukryte.

  4. Kliknij OK.
  5. Android Studio tworzy plik w Javie ze szkieletem, który możesz modyfikować. Plik zostanie otwarty w edytorze kodu.

Uwaga: możesz utworzyć pojedynczą klasę, wybierając Plik > Nowy > Singleton lub Plik > Nowy > Klasa Java. Druga metoda zapewnia więcej opcji.

Szablony plików Android Studio

W tej sekcji znajduje się kod szablonu pliku w Android Studio napisany w języku skryptów VTL wraz z definicjami zmiennych. Wartości podane w oknie Utwórz nową klasę staną się wartościami zmiennych w szablonie. Pamiętaj, że linie zaczynające się od #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 wyliczenia

#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 pliku singleton

#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 plików wartościami w wygenerowanym pliku Java. Wpisz wartości w oknie Utwórz nową klasę. Szablon zawiera te zmienne, których możesz użyć:

  • IMPORT_BLOCK – rozdzielana znakiem nowej listy instrukcji Java import, które są niezbędne do obsługi klas nadrzędnych i interfejsów, albo pustego ciągu znaków (""). Jeśli np. zaimplementujesz tylko interfejs Runnable i nie rozszerzasz niczego, ta zmienna będzie miała wartość "import java.lang.Runnable;\n". Jeśli zaimplementujesz interfejs Runnable i rozszerzysz klasę Activity, będzie to "import android.app.Activity;\nimportjava.lang.Runnable;\n".
  • VISIBILITY – określa, czy zajęcia mają dostęp publiczny. Może mieć wartość PUBLIC lub PACKAGE_PRIVATE.
  • SUPERCLASS – nazwa pojedynczej klasy lub pusta. Jeśli ta nazwa jest obecna, po nazwie nowej klasy pojawi się klauzula extends ${SUPERCLASS}.
  • INTERFACES – lista interfejsów rozdzielonych przecinkami lub pusta. Jeśli klasa jest obecna, po jej nazwie znajduje się klauzula implements ${INTERFACES}, a jeśli nie ma takiej klasy, znajduje się klauzula implements ${INTERFACES}. W przypadku interfejsów i typów adnotacji elementy interfejsu zawierają słowo kluczowe extends.
  • ABSTRACT – określa, czy klasa ma być abstrakcyjna, czy nie. Może mieć wartość TRUE lub FALSE.
  • FINAL – określa, czy klasa powinna być ostateczna. Może mieć wartość TRUE lub FALSE.