"Hai Amigo! Muga-muga sampeyan seneng ngrampungake tugas kanthi nggunakake metode sampeyan dhewe, lan sampeyan ngerti carane trep nggawe metode. Saiki ayo ngomong babagan topik sing paling menarik."

"Sampeyan wis narik kawigatenku, Diego... Topik anyar?"

"Saben topik anyar kanggo sampeyan, robot enomku! Lan iki ora ana sing istiméwa. Sanadyan sepisan maneh babagan metode. Sampeyan bisa uga wis ngeweruhi saka metode kaya ngono, kita bisa ngirim System.out.println()argumentasi menyang metode. Sawise kita mlebu metode kasebut. , kita deleng minangka paramèter."

"Parameter apa sing kita tulis ing jero kurung?"

"Ya, persis. Lan, nyatane, paramèter ningkatake keuntungan sing kita entuk saka nggawe lan nggunakake metode."

"Aku entuk apa sing sampeyan gunakake, lan ternyata aku wis rampung. Kepiye carane kita ngumumake metode kanthi paramèter?"

"Satemene cukup prasaja:

public static void name(parameters)
{
  method body
}

"Endi namejeneng unik saka cara lan method bodynggantosi printah sing nggawe serep cara. Lan parametersplaceholder kanggo paramèter cara, dipisahake dening koma."

"Hmm... Aku rumangsa ngerti ... Utawa mungkin ora ... "

"Aku bakal menehi sawetara rincian liyane babagan cithakan iki supaya sampeyan yakin manawa sampeyan ngerti yen sampeyan ngerti:

public static void name(Type1 name1, Type2 name2, Type3 name3)
{
  method body
}

Ing ngisor iki sawetara conto:

Kode Panjelasan
public static void print(String str)
{
}
Cara kasebut printdiumumake kanthi parameter:
String str
public static void print(String str, int count)
{
}
Cara kasebut printdiumumake kanthi rong paramèter:
String str
int count
public static void write(int x, int y)
{
}
Cara kasebut writediumumake kanthi rong paramèter:
int x
int y

"Ah... Saiki wis jelas. Lan yen kita ora pengin metode kasebut duwe paramèter, banjur kita mung ninggalake kurung kosong."

"Persis. Sejatine, paramèter minangka variabel khusus ing sawijining metode. Kanthi bantuan kasebut, sampeyan bisa ngliwati macem-macem nilai menyang metode kasebut nalika diarani. Lan yen sampeyan ora perlu ngliwati nilai, banjur ninggalake kurung kosong.

"Contone, ayo nulis cara sing nampilake baris teks sing diwenehi kaping pirang-pirang. Apa ana pikirane babagan carane nindakake iki?"

"Inggih ... Kayane aku ngerti carane nulis kode kanggo nampilake senar ing layar kaping pirang-pirang ... "

"Kepiye carane sampeyan nemtokake senar sing bakal ditampilake? Lan kepiye sampeyan nemtokake jumlah garis sing ditampilake? Apa sampeyan bisa ngira?"

"Iku wiwit dadi cetha ... Mungkin kanthi bantuan paramèter metode?"

"Persis. Parameter senar kanggo baris teks, lan parameter numerik kanggo jumlah baris sing ditampilake. Kode sing nindakake iki bakal katon kaya iki:

Kode Panjelasan
class Solution
{
   public static void printLines(String text, int count)
   {
     for (int i = 0; i < count; i++)
       System.out.println(text);
   }

   public static void main(String[] args)
   {
     printLines("Hi", 10);
     printLines("Bye", 20);
   }
}

Kita ngumumake printLinesmetode kasebut kanthi paramèter ing ngisor iki:
String text, int count

Cara nampilake text countkaping String



Kita nelpon printLinesmetode kanthi macem-macem paramèter

"Saben-saben metode diarani, paramèter kasebut diwenehi nilai sing dilewati, lan mung banjur kita miwiti nglakokaké printah ing cara kasebut.

Argumentasi

"Aku pengin sampeyan menehi perhatian khusus marang cara nelpon sing duwe paramèter. Nilai sing diterusake menyang metode kasebut biasane diarani argumen nalika diterusake menyang metode kasebut.

Ayo goleki conto liyane:

Kode Panjelasan
class Solution
{
   public static void printLines(String text, int count)
   {
     for (int i = 0; i < count; i++)
       System.out.println(text);
   }

   public static void main(String[] args)
   {
     printLines("Hi", 10);
     printLines("Bye", 20);
   }
}

Kita ngumumake printLinesmetode kasebut kanthi paramèter ing ngisor iki:
String text, int count

Cara nampilake String text countkaping


Kita nelpon printLinesmetode kanthi argumen ing ngisor iki:
text = "Hi"; count = 10;
text = "Bye"; count = 20;

"Nalika printLinesmetode kasebut pisanan diarani, paramèter kasebut diwenehi nilai ing ngisor iki:

String text = "Hi", int count = 10.

"Nalika printLinesmetode kasebut diarani kaping pindho, paramèter kasebut diwenehi nilai sing beda:

String text = "Bye", int count = 20.

"Parameter ora luwih lan ora kurang saka variabel sing diwenehi nilai tartamtu nalika metode diarani. Nilai "Hi", "Bye", 10, lan 20dhewe diarani argumen."

"Aku bakal nyoba ngelingi prabédan lan ora mbingungake konsep kasebut."

Jeneng variabel sing bertentangan nalika nelpon metode

"Yen sampeyan nelpon metode, sampeyan bisa nggunakake variabel minangka argumen.

"Inggih, punika masuk akal!"

"Iku akal, nanging bisa nyebabake sawetara kesulitan. Ayo bali menyang conto maneh, nanging wektu iki kita bakal mindhah argumen menyang variabel sing kapisah:

Kode Panjelasan
class Solution
{
   public static void printLines(String text, int count)
   {
     for (int i = 0; i < count; i++)
       System.out.print(text);
   }

   public static void main(String[] args)
   {
     String str = "Hi";
     String n = 10;
     printLines(str, n);
   }
}

Kita ngumumake printLinesmetode kasebut kanthi paramèter ing ngisor iki:
String text, int count

Cara nampilake String text countkaping



Kita nelpon printLinesmetode kanthi argumen ing ngisor iki:
text = str;
count = n;

"Hmm... Aku ora weruh kangelan. Kita duwe variabel str. Nilai kasebut ditugasake menyang textparameter nalika metode kasebut diarani. Kita duwe variabel n. Nilai kasebut ditugasake menyang countparameter nalika metode kasebut diarani." "Nganti saiki, kabeh wis jelas."

"Apik, apik. Saiki ayo ganti jeneng variabel ing mainmetode:

Kode Panjelasan
class Solution
{
   public static void printLines(String text, int count)
   {
     for (int i = 0; i < count; i++)
       System.out.print(text);
   }

   public static void main(String[] args)
   {
     String text = "Hi";
     String count = 10;
     printLines(text, count);
   }
}

Kita ngumumake printLinesmetode kasebut kanthi paramèter ing ngisor iki:
String text, int count

Cara nampilake String text countkaping



Kita nelpon printLinesmetode kanthi argumen ing ngisor iki:
text = text;
count = count;

“Nggatekake rong perkara

Pisanan: kita duwe variabel kanthi jeneng sing padha ing macem-macem cara. Iki minangka variabel sing beda-beda (kita sengaja nggambarake kanthi nggunakake warna sing beda). Kabeh kerjane padha karo conto sadurunge, ing ngendi variabel ing mainmetode kasebut dijenengi strlan n.

Kapindho: Ora ana gaib sing kedadeyan nalika metode kasebut diarani. Parameter kasebut mung diwenehi nilai argumen. Preduli saka apa iku nomer, strings, variabel, utawa ekspresi.

"Sawise kita ngganti jeneng variabel ing cara utama, ora ana owah-owahan. Padha variabel beda ing cara beda sadurunge, lan supaya padha tetep. Ora ana sambungan gaib antarane loro textvariabel."

"Saiki aku ngerti."

Maringaken referensi kanggo cara

"Muga-muga sampeyan wis nyasarake kabeh sing dakkandhakake babagan menehi argumentasi menyang metode. Aku ngomong, amarga saiki kita bakal nyilem luwih jero menyang topik iki. Rungokake kanthi teliti."

"Sampeyan wis ngerti manawa sawetara variabel ing Jawa ora nyimpen nilai-nilai kasebut, nanging minangka referensi , yaiku alamat blok memori ing ngendi nilai kasebut. Iki minangka variabel senar lan variabel array.

"Nalika pangembang nemtokake variabel array liyane menyang variabel array, apa sing kedadeyan?"

"Apa dheweke banjur nunjuk ing alamat sing padha?"

"Bener. Loro variabel kasebut wiwit ngrujuk menyang papan sing padha ing memori:

"Lan apa sing kedadeyan yen salah sawijining variabel kasebut minangka parameter metode?

Kode Panjelasan
class Solution
{
   public static void sum(int[] data)
   {
     int total = 0;
     for (int i = 0; i < data.length; i++)
       total = total + data[i];
     System.out.println(total);
   }
   
   public static void main(String[] args)
   {
     int[] months = {31, 28, 31, 30, 31, 30, 31, 31, 30};
     sum(months);
   }
}


Cara sumngetung jumlah nomer ing larik liwati lan nampilake ing layar

"Persis bab sing padha: dataparameter bakal ngemot referensi menyang area memori sing padha karo monthsvariabel. Nalika metode kasebut diarani, ana tugas sing prasaja: .data = months

"Lan amarga loro variabel nuduhake area memori sing padha nyimpen integer, banjur sumcara kasebut ora mung bisa maca nilai saka array, nanging uga ngganti!"

"Aku rumangsa ngerti, nanging aku butuh conto liyane!"

"Inggih, contone, kita bisa nulis cara kita dhewe sing ngisi array loro-dimensi karo nilai padha. Iki carane bisa katon:

Kode Panjelasan
class Solution
{
   public static void fill(int[][] data, int value)
   {
     for (int i = 0; i < data.length; i++)
     {
       for (int j = 0; j < data[i].length; j++)
         data[i][j] = value;
     }
  }

   public static void main(String[] args)
   {
     int[][] months = {{31, 28}, {31, 30, 31}, {30, 31, 31}};
     fill (months, 8);
   }
}


Cara kasebut fill ngulang saben sel ing array rong dimensi sing dilewati lan ditugasake value.






Kita nggawe array rong dimensi.
Kita ngisi kabeh array kanthi nomer kasebut 8.

Metode kanthi jeneng sing padha

"Saiki ayo bali menyang jeneng metode maneh."

"Aku ora bisa mbayangno apa maneh sing bisa diomongake babagan jeneng!"

“Inggih, standar basa Jawa mbutuhake kabeh metode ing kelas padha duwe jeneng unik.

"Dadi, ora bisa ngumumake rong cara sing padha ing kelas sing padha?"

"Saiki — mbayar manungsa waé sing cedhak! Metode ing kelas pancen bisa duwe jeneng sing padha! Nanging ing kasus iki, kudu duwe paramèter sing beda-beda. Ing tembung liya, metode dibandhingake kanggo kesamaan, ora mung jeneng kasebut dianggep, nanging uga . jinis paramèter ! Elinga yen aku khusus ngandika jinis. Jeneng paramèter ora dianggep . Conto:

Kode Panjelasan
void fill(int[] data, int value) {
}
void fill(int[][] data, int value) {
}
void fill(int[][][] data, int value)  {
}
Telung cara iki minangka cara sing beda . Padha bisa diumumake ing kelas sing padha.
void print(String str) {
}
void print(String str, String str2) {
}
void print(int val) {
}
void print(double val) {
}
void print() {
}
Saben limang cara iki dianggep beda . Padha bisa diumumake ing kelas sing padha.
void sum(int x, int y) {
}
void sum(int data, int value) {
}
"Cara loro iki dianggep padha , tegese ora bisa diumumake ing kelas sing padha."

"Aku babar blas bingung! Yagene kita kudu kabeh iki? Yagene sawetara cara dianggep padha , nalika liyane beda ? Lan apa jeneng parameter ora dijupuk menyang akun nalika nemtokake uniqueness saka cara? Apa uniqueness perlu ing kabeh?"

"Iku yen kompiler nyusun program, mesthine kudu ngerti cara sing sampeyan pengin nelpon ing sembarang panggonan.

"Contone, yen sampeyan nulis , compiler pinter lan bakal gampang nyimpulake yen sampeyan arep nelpon cara kene karo parameter. Nanging yen sampeyan nulis , compiler bakal weruh telpon kanggo metode karo parameter. jeneng apa sing diwènèhaké programmer marang paramèter nalika mratelakake metode kasebut."System.out.println("Hi")println()StringSystem.out.println(1.0)println()double

Ahh, kayane wiwit liwat!

"Nalika metode diarani, kompiler mesthekake yen jinis argumen cocog karo jinis paramèter. Ora nggatekake jeneng argumen kasebut. Ing Jawa, jeneng parameter ora mbantu kompiler nemtokake cara sing bakal ditindakake. telpon Programer kudu wong, ora compiler.

"Lan aku guess pramila padha ora dijupuk menyang akun nalika nemtokake uniqueness saka cara?"

"Ya, pancen bener. Jeneng metode lan jinis paramèter kasebut diarani teken metode . Contone, sum (int, int)"

"Dadi saben kelas kudu duwe metode kanthi teken unik tinimbang metode kanthi jeneng unik."

"Inggih, Amigo! Sampeyan ngringkes pelajaran iki kanthi sampurna. Yen ana sing ora jelas, aja gupuh. Topik iki bakal jelas sawise sawetara tugas."