Tworzenie klasy lub typu Java

Za pomocą okna Utwórz nową klasę i szablonów plików Android Studio pomaga szybko tworzyć nowe klasy i typy:

  • klasy Java,
  • Klasy wyliczania i typu singleton
  • Interfejs i typy adnotacji

Po wypełnieniu pól w oknie Create New Class (Utwórz nową klasę) i kliknięciu OK (OK) Android Studio utworzy plik .java zawierający kod szablonowy, 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ą sposób generowania przez Android Studio kodu szkieletu. Szablony plików udostępnione w Android Studio możesz stosować w niezmienionej formie lub dostosowywać je do potrzeb 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 typów i klas Javy za pomocą okna Utwórz nową klasę. Możesz je dostosować.

Okno tworzenia nowych zajęć.

Rysunek 1 Okno Utwórz nową klasę.

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

Aby wyświetlić szablony, znaleźć dostosowania i je zmodyfikować:

  1. Wykonaj jedną z tych czynności:

    • W przypadku systemu Windows lub Linux wybierz Plik > Ustawienia > Edytowanie > Plik i kod > Szablony > Pliki.
    • W systemie macOS wybierz Android Studio > Ustawienia > Edytor > Pliki i szablony kodu > Pliki.

    Na liście szablonów nazwy wewnętrzne szablonów są wyświetlane pogrubioną czcionką. Nazwy spersonalizowanych szablonów są wyróżnione na wybrany kolor, np. na niebiesko.

  2. W razie potrzeby dostosuj szablony plików.

    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 artykułach Szablony plików i kodu oraz Szablony plików i kodu – okno dialogowe.

Tworzenie klasy lub typu Java

Android Studio pomaga w tworzeniu nowych klas Java, klas wyliczania i pojedynczych klas oraz typów interfejsów i adnotacji wykorzystujących szablony plików.

Aby utworzyć nową klasę lub typ Java:

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

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

  3. W oknie Utwórz nową klasę wypełnij te 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 (superklasa) – 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 automatycznie uzupełnić.
    • Interfejsy – co najmniej jeden interfejs, który nowa klasa lub typ implementuje. Jeśli podajesz kilka interfejsów, rozdziel je przecinkami i opcjonalnie spacją. Możesz wpisać nazwę pakietu i interfejsu lub tylko nazwę interfejsu, a potem kliknąć dwukrotnie element na liście rozwijanej, aby automatycznie uzupełnić pole.
    • Autouzupełnianie działa tylko w przypadku nazwy pierwszego interfejsu. Pamiętaj, że chociaż przecinek i ta nazwa interfejsu mogą wywołać błąd etykietki, możesz go zignorować, ponieważ nie ma to wpływu na wygenerowany kod.

    • Pakiet – pakiet, w którym będzie się znajdować klasa lub typ. Domyślna wartość zostanie automatycznie wyświetlona w polu. Jeśli w polu wpiszesz nazwę pakietu, wszystkie elementy identyfikatora pakietu, które nie istnieją, zostaną podświetlone na czerwono. W tym przypadku po kliknięciu OK pakiet zostanie utworzony przez Android Studio. 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 przez Ciebie otwarte okno Utwórz nową klasę. Jeśli w oknie Projekt najpierw wybrano plik lub folder Java, domyślnie wybrany zostanie pakiet dla wybranego elementu. Jeśli najpierw klikniesz plik Java w Edytorze kodu, domyślnie wybrany będzie pakiet zawierający ten plik.

    • Widoczność – określ, czy zajęcia lub typ mają być widoczne dla wszystkich zajęć, czy tylko dla tych z własnego pakietu.
    • Modyfikatory – wybierz modyfikator Abstraktowy lub Ostateczny dla Klasy. Możesz też nie wybrać żadnego modyfikatora.
    • Pokaż okno wyboru zastąpień – w przypadku rodzaju Zajęcia zaznacz tę opcję, aby po kliknięciu OK otworzyć okno Wybierz metody do zastąpienia lub wdrożenia. W tym oknie możesz wybrać metody, które chcesz zastąpić lub zaimplementować, a Android Studio wygeneruje dla nich kod szablonu.

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

  4. Kliknij OK.
  5. Android Studio tworzy plik Java z kodem szkieletowym, który możesz modyfikować. Otworzy plik w Edytorze kodu.

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

Szablony plików w Android Studio

W tej sekcji znajduje się kod szablonu pliku w Android Studio napisany w języku skryptowym VTL, a za nim definicje zmiennych. Wartości podane w oknie Utwórz nowe zajęcia stają się wartościami zmiennymi w szablonie. Pamiętaj, że wiersze zaczynające się od #if (${VISIBILITY} sięgają do otwierającej klamry ({).

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 typu wyliczenie

#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 pliku wartościami w wygenerowanym pliku Java. Wartości te wpisujesz w oknie Create New Class (Utwórz nowe zajęcia). W szablonie dostępne są te zmienne:

  • IMPORT_BLOCK – rozdzielana znakami nowego wiersza lista instrukcji Java import niezbędnych do obsługi superklas lub interfejsów bądź pustego ciągu (""). Jeśli na przykład wdrożysz tylko interfejs Runnable i niczego nie rozszerzysz, zmienną będzie "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 – czy zajęcia będą dostępne publicznie. Może mieć wartość PUBLIC lub PACKAGE_PRIVATE.
  • SUPERCLASS – nazwa jednej klasy lub pusta. Jeśli tak, po nowej nazwie klasy pojawi się klauzula extends ${SUPERCLASS}.
  • INTERFACES – lista interfejsów rozdzielona przecinkami lub pusta. Jeśli jest obecna, po superklasie lub po nazwie klasy (jeśli nie ma superklasy) znajduje się klauzula implements ${INTERFACES}. W przypadku interfejsów i typów adnotacji interfejsy mają słowo kluczowe extends.
  • ABSTRACT – określa, czy klasa ma być abstrakcyjna. Może mieć wartość TRUE lub FALSE.
  • FINAL – określa, czy zajęcia mają być ostateczne. Może mieć wartość TRUE lub FALSE.