Latest web development tutorials

metoda Java

W ciągu kilku pierwszych rozdziałów, często używamy do System.out.println (), to co to jest?

println () to metoda (metoda), a system jest systemem klasy (Class), obecnie jest standard obiektu wyjściowego (Object). Wykorzystanie tego stwierdzenia jest zadzwonić wyjście standardowy system system klasy obiektów z metody println ().

Jaki jest więc sposób to zrobić?

Metoda Java jest zestaw stwierdzeń, które wspólnie wykonują funkcję.

  • Metoda ta jest uporządkowana mieszanina rozwiązać problemy klasę kroku
  • Metody zawarte w klasie lub obiektu
  • Metoda ta została utworzona w programie, w odniesieniu innym

zdefiniowanymi metodami

Na ogół, określenie metody obejmujące następującą składnię:

修饰符 返回值类型 方法名 (参数类型 参数名){
    ...
    方法体
    ...
    return 返回值;
}

Sposób zawiera nagłówek sposobu i korpusu metodą. Tutaj są częścią procesu:

  • Modyfikator: modyfikator, który jest opcjonalny, aby poinformować kompilator, jak wywołać metodę. Określa rodzaj dostępu dla tego sposobu.
  • Wartość zwracana Typ: metoda może zwrócić wartość. returnValueType to metoda zwraca typ danych wartości. Niektóre metody wykonywania pożądanego działania, ale nie zwraca wartości. W tym przypadku, returnValueType kluczowe nieważne.
  • Nazwa metody: aktualna nazwa metody. Nazwa metody i lista parametrów razem stanowią podpis metody.
  • Typ parametru: Parametr jak zastępczy. Gdy jest metoda zwana wartość przekazana do tego parametru. Wartość ta nazywana jest argument lub zmienne. Lista parametrów jest liczba typu parametru metody, porządku i parametrów. Parametr ten jest opcjonalny, metoda ta nie może zawierać żadnych parametrów.
  • Sposób ciała: Sposób obejmuje konkretnego komunikatu do określenia funkcji sposobu.

Takich jak:

public static int age(int birthday){...}

Możesz mieć więcej niż jeden parametr:

static float interest(float principal, int year){...}

Uwaga: w inny sposób języki odnosi się do procesu i funkcji. Non-void Zwraca typ wartości zwracanej przez funkcję zwaną metodą; metoda zwraca wartość zwracaną void typu zwanego procesem.

Przykłady

Następująca metoda zawiera dwa parametry num1 i num2, zwraca maksymalną wartość tych dwóch parametrów.

/** 返回两个整型变量数据的较大值 */
public static int max(int num1, int num2) {
   int result;
   if (num1 > num2)
      result = num1;
   else
      result = num2;

   return result; 
}

metoda Inwokacja

Java obsługuje dwa sposoby na wywołanie metody, w zależności od tego, czy wartość metoda powrotu do wyboru.

Kiedy program wywołuje metodę, program do kontrolowania metody jest tzw. Gdy return w zwana metoda jest wykonywana lub do korpusu metodą gdy zamykający nawias kontrola powrotu do programu.

Gdy sposób powraca do wartości metoda wywołanie jest zwykle traktowany jako wartość. Na przykład:

int larger = max(30, 40);

Jeśli wartość Sposób powrotu jest nieważna, wywołanie metoda musi być oświadczenie. Na przykład, metoda zwraca println nieważne. Poniższa rozmowa jest stwierdzenie:

System.out.println("Welcome to Java!");

przykład

Poniższy przykład pokazuje jak zdefiniować metody i jak to nazwać:

public class TestMax {
   /** 主方法 */
   public static void main(String[] args) {
      int i = 5;
      int j = 2;
      int k = max(i, j);
      System.out.println("The maximum between " + i +
                    " and " + j + " is " + k);
   }

   /** 返回两个整数变量较大的值 */
   public static int max(int num1, int num2) {
      int result;
      if (num1 > num2)
         result = num1;
      else
         result = num2;

      return result; 
   }
}

Powyższe przykłady zebrane wyniki przedstawiają się następująco:

The maximum between 5 and 2 is 5

Program ten zawiera główny sposób i metodę max. Główną metodą JVM jest wywoływany, oprócz głównego i innych metod bez różnicy.

Głowa Główną metodą jest taka sama jak w pokazanym przykładzie, z modyfikatorami publicznych i statycznych, wartość void typ zwracany, nazwa metody jest głównym, dodatkowo za pomocą ciąg [] parametrów typu. String [], że argument jest tablicą ciągów.


słowo void

W tej sekcji opisano sposób zadeklarować i wywołać metodę void.

Poniższy przykład deklaruje metodę o nazwie printGrade i nazywają go wydrukować dany wynik.

przykład

public class TestVoidMethod {

   public static void main(String[] args) {
      printGrade(78.5);
   }

   public static void printGrade(double score) {
      if (score >= 90.0) {
         System.out.println('A');
      }
      else if (score >= 80.0) {
         System.out.println('B');
      }
      else if (score >= 70.0) {
         System.out.println('C');
      }
      else if (score >= 60.0) {
         System.out.println('D');
      }
      else {
         System.out.println('F');
      }
   }
}

Powyższe przykłady zebrane wyniki przedstawiają się następująco:

C

Tutaj metoda printGrade jest sposobem typu pustki nie zwraca wartość.

Pustka wywołanie metody musi być oświadczenie. Dlatego też głównym sposobem trzeciej linii połączenia w postaci instrukcji. Jak każde oświadczenie kończy się średnikiem podobnego.


Przekazywanie parametrów przez wartość

Wywołuje metodę, gdy trzeba zapewnić parametry, należy podać listę parametrów według podanej kolejności.

Na przykład, poniższy sposób ciągły n razy wypisuje komunikat:

public static void nPrintln(String message, int n) {
  for (int i = 0; i < n; i++)
    System.out.println(message);
}

przykład

Poniższy przykład ilustruje wpływ przekazywane przez wartość.

Program tworzy metody stosowanej do wymiany dwóch zmiennych.

public class TestPassByValue {

   public static void main(String[] args) {
      int num1 = 1;
      int num2 = 2;

      System.out.println("Before swap method, num1 is " +
                          num1 + " and num2 is " + num2);

      // 调用swap方法
      swap(num1, num2);
      System.out.println("After swap method, num1 is " +
                         num1 + " and num2 is " + num2);
   }
   /** 交换两个变量的方法 */
   public static void swap(int n1, int n2) {
      System.out.println("\tInside the swap method");
      System.out.println("\t\tBefore swapping n1 is " + n1
                           + " n2 is " + n2);
      // 交换 n1 与 n2的值
      int temp = n1;
      n1 = n2;
      n2 = temp;

      System.out.println("\t\tAfter swapping n1 is " + n1
                           + " n2 is " + n2);
   }
}

Powyższe przykłady zebrane wyniki przedstawiają się następująco:

Before swap method, num1 is 1 and num2 is 2
        Inside the swap method
                Before swapping n1 is 1 n2 is 2
                After swapping n1 is 2 n2 is 1
After swap method, num1 is 1 and num2 is 2

Przechodzą dwa parametry, aby wywołać metodę wymiany. Co ciekawe, po metoda zwana wartość argumentu nie zmieniona.


Przeciążone metody

Metoda max wykorzystuje powyższe odnosi się tylko do danych typu int. Ale jeśli chcesz, aby uzyskać maksymalną wartość dwóch zmiennoprzecinkowych typ danych to?

Roztwór jest stworzenie innego parametru o tej samej nazwie, ale z inną metodą, jak pokazano na poniższym kodu:

public static double max(double num1, double num2) {
  if (num1 > num2)
    return num1;
  else
    return num2;
}

Jeśli wywołanie metody max jest przekazywany parametr int, max metoda int argumentem jest wywoływana;

Jeśli przeszedł podwójną parametr typu, rodzaju metody podwójnego doświadczenia max nazywa, to się nazywa metoda przeciążenia;

Że dwie metody klasy mają tę samą nazwę, ale z innej listy parametrów.

Kompilator Java według podpisu metody określania jaka metoda powinna zostać wywołana.

Metoda przeciążenie może uczynić program bardziej czytelny. Sposób wykonania jest ściśle powiązane zadania powinny używać tej samej nazwy.

Przeciążone metody muszą mieć inną listę parametrów. Nie można po prostu na podstawie różnych typów modyfikatorów lub powrót do przeciążonych metod.


zmienna Zakres

Zmienny zakres jest częścią programu, w którym zmienna może się odwoływać.

Zmienne w definicji metody nazywane są zmienne lokalne.

Zakres zmiennej lokalnej deklaracji od początku do końca bloku zawierającego go.

Zmienne lokalne muszą być zadeklarowane, zanim będą mogły być wykorzystane.

Sposób obejmujący całą gamę parametrów metody. Parametr jest rzeczywiście zmienna lokalna.

Zmienna część inicjalizacji instrukcji for pętli, zakres jego roli w cyklu.

Ale Zmienna instrukcji ciała pętli jest zestawienie jej zakresu od niego do końca pętli. Zawiera ona zmienną zadeklarowaną w następujący sposób:

Można w taki sposób, poszczególne bloki zakaz wielokrotnie zagnieżdżone zadeklarować zmienną lokalną o tej samej nazwie, ale nie mogą być zagnieżdżone w bloku dwa razy do deklarowania zmiennych lokalnych.

Używanie parametrów wiersza poleceń

Czasami chcesz uruchomić program, gdy następnie przekazywane wiadomości. Zależy to od przechodzącej argumenty wiersza polecenia do funkcji main (), aby osiągnąć.

argument wiersza poleceń następuje informacji na temat czasu realizacji po nazwie programu.

Przykłady

Poniższy program drukuje wszystkie argumenty wiersza polecenia:

public class CommandLine {

   public static void main(String args[]){ 
      for(int i=0; i<args.length; i++){
         System.out.println("args[" + i + "]: " +
                                           args[i]);
      }
   }
}

Jak widać poniżej, należy uruchomić program:

java CommandLine this is a command line 200 -100

Wyniki przedstawiają się następująco:

args[0]: this
args[1]: is
args[2]: a
args[3]: command
args[4]: line
args[5]: 200
args[6]: -100

konstruktor

Gdy tworzony jest obiekt, gdy konstruktor służy do zainicjowania obiektu. I to jest w konstruktorze klasy o tej samej nazwie, ale konstruktor nie ma wartości zwracanej.

Często użyć konstruktora do instancji klasy zmiennymi wartościami początkowymi lub wykonywania innych niezbędnych kroków w celu stworzenia kompletnego obiektu.

Czy jesteś niestandardowy konstruktor, wszystkie klasy mają konstruktora, ponieważ Java automatycznie zapewnia konstruktor domyślny, którego wszyscy członkowie są inicjowane na zero.

Po zdefiniowaniu własnego konstruktor, konstruktor domyślny zawiedzie.

Przykłady

Oto przykład użycia konstruktora:

// 一个简单的构造函数
class MyClass {
   int x;
   
   // 以下是构造函数
   MyClass() {
      x = 10;
   }
}

Możesz zadzwonić, jak tego konstruktora do inicjalizacji obiektu:

public class ConsDemo {

   public static void main(String args[]) {
      MyClass t1 = new MyClass();
      MyClass t2 = new MyClass();
      System.out.println(t1.x + " " + t2.x);
   }
}

Większość czasu trzeba parametr konstruktora.

Przykłady

Oto przykład użycia konstruktora:

// 一个简单的构造函数
class MyClass {
   int x;
   
   // 以下是构造函数
   MyClass(int i ) {
      x = i;
   }
}

Możesz zadzwonić, jak tego konstruktora do inicjalizacji obiektu:

public class ConsDemo {

   public static void main(String args[]) {
      MyClass t1 = new MyClass( 10 );
      MyClass t2 = new MyClass( 20 );
      System.out.println(t1.x + " " + t2.x);
   }
}

Wyniki przedstawiają się następująco:

10 20

parametrem zmiennym

Jako JDK 1.5, obsługa Java przepuszczenie tego samego rodzaju zmiennych parametrów sposobu.

Zadeklarować zmienne parametry sposobu są następujące:

typeName... parameterName

W oświadczeniu metody, określony typ parametru po dodaniu wielokropek (...).

Metoda może podać tylko jedną zmienną parametr musi być ostatnim parametrem metody. Wszelkie wspólne parametry muszą być zadeklarowane przed nim.

Przykłady

public class VarargsDemo {

   public static void main(String args[]) {
      // 调用可变参数的方法
	  printMax(34, 3, 3, 2, 56.5);
      printMax(new double[]{1, 2, 3});
   }

   public static void printMax( double... numbers) {
   if (numbers.length == 0) {
      System.out.println("No argument passed");
      return;
   }

   double result = numbers[0];

   for (int i = 1; i <  numbers.length; i++)
      if (numbers[i] >  result)
      result = numbers[i];
      System.out.println("The max value is " + result);
   }
}

Powyższe przykłady zebrane wyniki przedstawiają się następująco:

The max value is 56.5
The max value is 3.0

sfinalizowania () metoda

Java pozwala zdefiniować sposób, w którym obiekt jest wywoływana przed destructor śmieciarza (recykling), ta metoda jest wywoływana sfinalizowania (), która służy do kasowania odzyskane przedmioty.

Na przykład, można użyć sfinalizowania (), aby upewnić się, że otwarty plik obiekt jest zamknięty.

W metodzie sfinalizowania (), należy określić czynność należy wykonać, gdy obiekt jest niszczony.

sfinalizowania () to ogólny format:

protected void finalize()
{
   // 在这里终结代码
}

Słowo chroniona jest kwalifikator, zapewnia, że ​​metoda sfinalizowania () nigdy nie jest wywoływana kod spoza klasy.

Oczywiście, garbage collection Java mogą być wykonywane automatycznie przez JVM. W przypadku korzystania z podręcznika, można użyć powyższej metody.

Przykłady

public class FinalizationDemo {  
    public static void main(String[] args) {  
        Cake c1 = new Cake(1);  
        Cake c2 = new Cake(2);  
        Cake c3 = new Cake(3);  
          
        c2 = c3 = null;  
        System.gc(); //调用Java垃圾收集器
    }  
}  
  
class Cake extends Object {  
    private int id;  
    public Cake(int id) {  
        this.id = id;  
        System.out.println("Cake Object " + id + "is created");  
    }  
      
    protected void finalize() throws java.lang.Throwable {  
        super.finalize();  
        System.out.println("Cake Object " + id + "is disposed");  
    }  
}  

Uruchom powyższy kod, wyniki wyjściowe są następujące:

C:\1>java FinalizationDemo  
Cake Object 1is created  
Cake Object 2is created  
Cake Object 3is created  
Cake Object 3is disposed  
Cake Object 2is disposed