Articles

Funzioni

Posted by admin

In Java, tutte le definizioni di funzione devono essere all’interno di classi. Chiamiamo anche metodi di funzioni. Diamo un’occhiata ad un esempio metodo

public class Main { public static void foo() { // Do something here }}

foo è un metodo che abbiamo definito nella classe Main. Nota alcune cose su foo.

  • static significa che questo metodo appartiene alla classe Main e non a una specifica istanza di Main. Il che significa che possiamo chiamare il metodo da una classe diversa come quella Main.foo().,
  • void significa che questo metodo non restituisce un valore. I metodi possono restituire un singolo valore in Java e deve essere definito nella dichiarazione del metodo. Tuttavia, è possibile utilizzare return da solo per uscire dal metodo.
  • Questo metodo non ottiene argomenti, ma ovviamente i metodi Java possono ottenere argomenti come vedremo più avanti.,

Argomenti

Mi piace sempre dire che gli argomenti ai metodi Java sono passati per valore, anche se alcuni potrebbero non essere d’accordo con la mia scelta di parole, lo trovo il modo migliore per spiegare e capire come funziona esattamente.

Per valore si intende che gli argomenti vengono copiati quando viene eseguito il metodo. Diamo un’occhiata a un esempio.,

public void bar(int num1, int num2) { ...}

Ecco un altro punto del codice, dove è chiamato

int a = 3;int b = 5;bar(a, b);

Si può immaginare nella tua testa che quando bar(a, b) viene eseguito, come all’inizio del bar le seguenti due righe scritto:

int num1 = a;int num2 = b;

E solo allora il resto del metodo viene eseguito.

Ciò significa che a il valore viene copiato in num1 e b il valore viene copiato in num2., La modifica dei valori dinum1 enum2 non influirà sua eb.

Se gli argomenti erano oggetti, le regole rimangono le stesse, ma agisce in modo leggermente diverso. Ecco un esempio:

public void bar2(Student s1, Student s2) { ...}

Ed ecco come usarlo

Student joe = new Student("joe");Student jack = new Student("jack");bar2(joe, jack);

anche in questo caso possiamo immaginare le stesse due righe all’inizio del bar2

Student s1 = joe;Student s2 = jack;

Ma quando ci assegnare oggetti, è un po ‘ diverso rispetto all’assegnazione di primitive., s1ejoe sono due diversi riferimenti allo stesso oggetto. s1 == joe è vero. Ciò significa che i metodi in esecuzione su s1cambieranno l’oggettojoe. Ma se cambieremo il valore di s1 come riferimento, non influirà sul riferimento joe.

Metodi non statici

I metodi non statici in Java vengono utilizzati più dei metodi statici. Questi metodi possono essere eseguiti solo su oggetti e non sull’intera classe.,

I metodi non statici possono accedere e modificare il campo dell’oggetto.

Chiamare i metodi richiederà un oggetto di tipoStudent.

Sommario

Leave A Comment