JAVA FONKSİYONLARI
Bu makalede size Java Fonksiyonlarından bahsedeceğim.
Bir Java yöntemi bir işlemi gerçekleştirmek üzere kümelenen tablolar topluluğudur. Eğer System.out.println yöntemini çağırdığınızda, örneğin, sistem aslında konsolda bir mesaj görüntülemek için çeşitli ifadeleri yürütür.
Şimdi, dönüş değerleri ile veya olmadan kendi yöntemleri oluşturmak parametreleri, aynı adları kullanarak aşırı yük yöntemleri olan veya olmayan bir yöntem çağırmak ve program tasarımı yöntemi soyutlama uygulamayıda öğreneceksiniz.
Bir fonksiyon oluşturma
Genel olarak, fonksiyon sözdizimi aşağıdaki gibidir:
değiştirici returnValueType methodName (parametre listesi) {
/ / Yöntem vücut;
}
Bir fonksiyon olup, bir tanım başlık ve bir yöntem gövdesinden oluşur. Burada yöntemin bütün parçaları şunlardır:
- Değiştiriciler: isteğe bağlıdır değiştirici, yöntemi çağırmak için nasıl derleyici söyler. Bu yöntemin erişim tipi tanımlar.
- Dönüş Türü: bir yöntem bir değer döndürebilir. ReturnValueType değeri yöntemi döndürür veri türüdür. Bazı yöntemler bir değer dönmeden istenen işlemleri gerçekleştirmek. Bu durumda, returnValueType anahtar kelime geçersizdir.
- Yöntem Adı: Bu yöntem gerçek adıdır. Yöntem adı ve parametre listesi birlikte yöntem imzası oluşturmaktadır.
- Parametreler: Bir parametre bir yer tutucu gibidir. Bir yöntem çağrıldığında, parametre için bir değer geçmek. Bu değer, gerçek parametre veya değişken olarak adlandırılır. Parametre listesi tipi, sırayla ve bir yöntem parametrelerinin sayısını ifade eder. Parametreler isteğe bağlıdır,, bir yöntem herhangi bir parametre içerebilir olduğunu.
- Yöntem Gövde: Yöntem gövdesi yöntemi ne tanımlamak tabloların bir koleksiyonu içerir.
Not: Belirli diğer diller, yöntem prosedürler ve fonksiyonlar olarak adlandırılır. Bir nonvoid dönüş değer türü olan bir yöntem bir fonksiyon denir; bir void dönüş değer türü olan bir yöntem bir prosedür olarak adlandırılır.
Örnek
Burada max () denilen yukarıda tanımlanan yöntemin kaynak kodu. Bu yöntem iki parametre num1 ve num2 alır ve ikisi arasındaki maksimum verir:
/ ** Iki sayı * / public static int max (int num1, int num2) arasındaki maksimum dön {int sonuc; (num1> num2) Sonuç = num1 ise, başka sonuç = num2, dönüş sonucu;}
Bir yöntem arama
Bir yöntem oluştururken, yöntem yapmak ne bir tanımını vermek. Bir yöntem kullanmak için, onu aramak ya da çağırmak zorundadır. Bir yöntem aramak için iki yol vardır; seçim yöntemi bir değer döndürür olsun veya olmasına dayanmaktadır.
Bir program, bir yöntemini çağırdığında, program kontrolü olarak adlandırılan yönteme aktarılır. Bir arayana yöntem geri döndüğünde kontrolü metodu-sonu Kapanış ayracı ulaşıldığında geri dönüş deyimi yürütüldüğünde ya çağırdı.
Bu yöntem, bir değer, bu yöntem bir arama dönerse Ortalama bir değer olarak kabul edilir. Örneğin:
int büyük = max (30, 40);
Yöntemi geçersiz dönerse, yöntem çağrısı bir açıklama olmalıdır. Örneğin, yöntem println void döndürür. Aşağıdaki arama bir ifadedir:
System.out.println ("Java Hoş Geldiniz!");
Örnek:
Aşağıda bir yöntem tanımlamak için nasıl ve onu aramak için nasıl göstermek için örnek:
public class TestMax {
/ ** Main yöntemi * /
public static void main (String [] args) {
int i = 5;
Int J = 2;
int k = max (i, j);
System.out.println (+ i "ile arasındaki azami" +
"Ve" + + j "olan" + H);
}
/ ** Iki sayı arasındaki maksimum dön * /
public static int max (int num1, int num2) {
int sonuc;
if (num1> num2)
= num1 neden;
başka
= num2 neden;
sonuç döndürür;
}
}
Bu şu sonucu üretecektir:
5 ve 2 arasında, en fazla 5 olan
Bu program ana yöntem ve maksimum yöntemi içerir. Ana yöntem sadece JVM tarafından çağrılan olması dışında başka bir yöntemle gibidir.
Ana yöntemin başlık kamu ve statik değiştiriciler ile, bu örnekte gibi, her zaman aynıdır, değer türü void, ana yöntem adı ve String [] türünde bir parametre döner. String [] parametre dize bir dizi olduğunu gösterir.
Boşluk Kelimeler:
Bu bölüm, bir boşluk yöntem bildirmek ve çağırmak gösterilmiştir. Örneğin ardından printGrade adlı bir yöntemi bildirir ve belirli bir puan için sınıf yazdırmak için çağırır bir program verir.
Örnek:
public class TestVoidMethod {
public static void main (String [] args) {
printGrade (78.5);
}
public static void printGrade (çift puan) {
if (puan> = 90.0) {
System.out.println ('A');
}
else if (puan> = 80.0) {
System.out.println ('B');
}
else if (puan> = 70.0) {
System.out.println ("C");
}
else if (puan> = 60.0) {
System.out.println ('D');
}
else {
System.out.println ('F');
}
}
}
Bu şu sonucu üretecektir:
C
Burada yöntem, bir boşluk printGrade yöntemdir. Bu herhangi bir değer döndürmez. Bir boşluk yöntemi çağrısı bir açıklama olmalıdır. Yani, ana yöntem satır 3 bir ifadesi olarak çağrılır. Bu ifade bir noktalı virgül ile sona herhangi bir Java açıklaması gibidir.
Değerler tarafından Parametreler geçen:
Bir yöntem ararken, yöntem şartnamede kendi parametre olarak aynı sırada verilmelidir argümanlar, sağlamanız gerekir. Bu parametre için dernek olarak bilinir.
Örneğin, aşağıdaki yöntemi, bir mesaj n kere yazdırır:
public static void nPrintln (String mesaj, int n) {
(; i <n, i + + int i = 0) için
System.out.println (mesaj);
}
Burada, "Merhaba" üç kez yazdırmak için nPrintln ("Merhaba", 3) kullanabilirsiniz. NPrintln ("Merhaba", 3) deyimi parametre, mesaj gerçek dize parametresi, "Merhaba", geçer; n 3 geçer ve "Merhaba" üç kez yazdırır. Ancak, açıklamada nPrintln (3, "Merhaba") yanlış olur.
Bir parametre ile bir yöntem çağırdığınızda, argüman değerini parametre geçirilir. Bu pass-by-değer olarak adlandırılır. Argüman yerine değişmez bir değer daha bir değişken ise, değişkenin değerini parametre geçirilir. Değişken ne olursa olsun yöntemi içinde parametre için yapılan değişikliklerin, etkilenmez.
Kolaylık olması açısından, Java programcıları genellikle aslında y x değerini geçen demektir bir parametre y, bir argüman x geçen söylüyorlar.
Örnek:
Aşağıdaki değer geçirerek etkisini gösteren bir programdır. Program iki değişken takas için bir yöntem oluşturur. Takas yöntemi iki argüman ileterek çağrılır. Yöntemi çağrılır sonra İlginçtir, argümanların değerleri değişmez.
public class TestPassByValue {
public static void main (String [] args) {
num1 = 1 int;
int num2 = 2;
System.out.println ("takas yöntemi önce, num1 olan" +
num1 +) + num2 "ve num2 olan";
/ / Takas yöntemini çağırır
(num1, num2) takas;
System.out.println ("takas yöntemi sonra, num1 olan" +
num1 +) + num2 "ve num2 olan";
}
/ ** İkinci yöntem değişken * / takas
public static void swap (int n1, int n2) {
System.out.println ("\ Tinside takas yöntemi");
System.out.println ("\ t \ tBefore takas n1 olan" + n1
+) + N 2 "n2 olduğu";
N2 ile / / Yedek n1
int temp = n1;
n1 = n2;
2 = temp;
System.out.println ("\ t \ tAfter takas n1 olan" + n1
+) + N 2 "n2 olduğu";
}
}
Bu şu sonucu üretecektir:
Takas yöntemi önce, num1 1 ve num2 n1 1 n2 n1 olan takas sonra 2 n2 takas yöntemi sonra 1 2 olduğunu takas önce takas yöntemi içinde 2 olduğunu, num1 1 ve num2 2'dir
Aşırı Yöntem:
Daha önce kullanılan maksimum yöntem int veri türü ile çalışır. Ama ne en yüksek değeri olan iki kayan noktalı sayıları hangi bulmak gerekiyorsa? Çözüm aşağıdaki kodda gösterildiği gibi, aynı ada ancak farklı parametrelerle başka bir yöntem oluşturmaktır:
public static double max (çift num1, çift num2) {
if (num1> num2)
num1 dönmek;
başka
num2 dönmek;
}
Int parametreleri, int parametreleri çağrılır bekliyor max yöntemi ile maksimum çağırırsanız; çift parametreleri, çift parametreleri çağrılır bekliyor max yöntemi ile maksimum çağırırsanız. Bu yöntem, aşırı yüklenme olarak adlandırılır; iki yöntem bir sınıf içinde aynı ada ancak farklı parametre listeleri vardır.
Java derleyicisi yöntem imzası dayalı kullanıldığı yöntemini belirler. Yöntemleri Aşırı programları daha net ve okunabilir yapabilirsiniz. Yakından ilgili görevleri yerine Yöntemleri aynı adı verilmelidir.
Aşırı yöntemleri farklı parametre listeleri olmalıdır. Bu aşırı yük yöntemleri farklı değiştirici veya dönüş türlerine göre olamaz. Bazen benzer yöntem imzası nedeniyle yöntemin bir çağırma için iki veya daha fazla olası eşleşmeleri, bu nedenle derleyici en özel maç belirleyemiyor. Bu belirsiz çağırma olarak adlandırılır.
Değişkenler Kapsamı:
Bir değişken kapsam değişken başvurulabilir programın bir parçasıdır. Bir yöntem içinde tanımlanan bir değişken bir yerel değişken olarak adlandırılır.
Bir yerel değişken kapsamı bildiriminden itibaren başlar ve değişken içeren bloğunun sonuna kadar devam eder. Kullanılmadan önce bir yerel değişken olarak ilan edilmelidir.
Bir parametre aslında yerel bir değişkendir. Bir yöntem parametresi kapsamı tüm yöntem kapsar.
Döngü başlık için bir ilk eylem bölümünde ilan Değişken, tüm döngü içinde kapsamı vardır. Döngüsü vücut için kendi ilanından aşağıda gösterildiği gibi değişken içeren bloğun sonuna kadar döngü vücutta sınırlı kapsamı vardır içinde ama bir değişken ilan:
Sen bir yöntem farklı olmayan iç içe bloklar aynı adı birden çok kez yerel bir değişkeni bildirmiş, ancak iç içe bloklar iki kez bir yerel değişken ilan edemez.
Komut satırı bağımsız değişkenleri kullanarak:
Bazen bunu çalıştırdığınızda bir programa bilgi aktarmak isteyeceksiniz. Bu ana () için komut satırı argümanları geçerek gerçekleştirilir.
Bir komut satırı argüman yürütüldüğünde doğrudan komut satırında programın adını izleyen bilgidir. Bir Java programı içinde komut satırı argümanları erişmek için oldukça easy.they) (ana geçirilen dize dizisinde dizeleri olarak depolanır edilir.
Örnek:
Aşağıdaki program ile denir komut satırı argümanları görüntüler:
CommandLine public class {
public static void main (String args []) {
(; i <argümanlar.length; i + + int i = 0) {için
System.out.println ("args [" + i + "]:" +
args [i]);
}
}
}
Burada gösterildiği gibi, bu programı çalıştırmadan deneyin:
CommandLine java bu bir komut satırı 200 -100 olduğu
Bu şu sonucu üretecektir:
args [0]: Bu
args [1]: bir
bağımsız değişken [2]: Bir
args [3]: komutu
args [4]: çizgi
bağımsız değişken [5]: 200
args [6]: -100
Markalar:
Oluşturulduğu zaman bir yapıcı bir nesne başlatır. Onun sınıf olarak aynı ada sahip ve bir yönteme sözdizimsel benzer. Ancak, yapıcılar açık bir dönüş türü var.
Genellikle, sınıf tarafından tanımlanan örnek değişkenleri için başlangıç değerleri vermek için bir kurucu kullanacak, ya da eksiksiz nesnesi oluşturmak için gerekli diğer başlatma işlemleri gerçekleştirmek için.
Tüm sınıflar Java otomatik olarak sıfıra tüm üye değişkenleri başlatır bir varsayılan kurucu sağlar çünkü, bir tanımlamak olsun ya da olmasın, yapıcılar var. Ancak, bir kez kendi yapıcı tanımlamak, varsayılan yapıcı artık kullanılır.
Örnek:
Burada bir kurucu kullanan basit bir örnek:
/ / Basit bir kurucu.
class Sınıfım {
int x;
/ / Aşağıdaki yapıcı
Sınıfım () {
x = 10;
}
}
Aşağıdaki gibi nesneleri başlatmak için yapıcı çağırır:
public class ConsDemo {
public static void main (String args []) {
Sınıfım t1 = new Sınıfım ();
Sınıfım t2 = new Sınıfım ();
System.out.println (t1.x + "" + t2.x);
}
}
Çoğu zaman bir veya daha fazla parametre kabul eden bir kurucu gerekir. Parametreler bir yöntem eklenir aynı şekilde bir kurucu eklenir: sadece yapıcı adını sonra parantez içinde bunları yayınlama.
Örnek:
Burada bir kurucu kullanan basit bir örnek:
/ / Basit bir kurucu.
class Sınıfım {
int x;
/ / Aşağıdaki yapıcı
Sınıfım (int i) {
x = i;
}
}
Aşağıdaki gibi nesneleri başlatmak için yapıcı çağırır:
public class ConsDemo {public static void main (String args []) {Sınıfım t1 = new Sınıfım (10); Sınıfım t2 = new Sınıfım (20); System.out.println (t1.x + "" + t2.x) ;}}
Bu şu sonucu üretecektir:
10 20
Değişken Bağımsız değişkenler (var-args):
JDK 1.5 bir yöntem için aynı tip bağımsız değişken bir dizi geçmek sağlar. Yönteminde parametre şu şekilde bildirilir:
typeName ... parameterName
Yöntem bildirimi olarak, (...) üç nokta takip türünü belirtmek sadece bir değişken uzunluklu parametre bir yöntem belirtilen olabilir, ve bu parametre son parametre olmalıdır. Herhangi bir düzenli parametreleri koymanız gerekir.
Örnek:
public class VarargsDemo {
public static void main (String args []) {
/ / Arama değişken args ile yöntemi
printMax (34, 3, 3, 2, 56.5);
printMax (yeni çift [] {1, 2, 3});
}
public static void printMax (double. .. sayılar) {
if (numbers.length == 0) {
System.out.println ("geçti yok argüman");
dönmek;
}
çift Sonuç = numaraları [0];
(; i <numbers.length; i + + int i = 1) için
(sayılar [i]> sonuç) ise
neden = numaraları [i];
System.out.println (+ sonuç "maksimum değer");
}
}
Bu şu sonucu üretecektir:
Maksimum değeri 56.5 olan
Maksimum değeri 3.0 olan
Yöntem sonuçlandırmak:
Bu çöp toplayıcı tarafından sadece bir nesnenin son imha önce çağrılacak bir yöntem tanımlamak mümkündür. Bu yöntem, sonuçlandırmak () olarak adlandırılır ve bir nesne temiz sona sağlamak için kullanılabilir.
Örneğin, bu nesne tarafından sahip olunan bir açık dosya kapalı olduğundan emin olmak için) (sonuçlandırmak kullanabilirsiniz.
Bir sınıfa bir sonlandırıcı eklemek için, sadece () yöntemini sonuçlandırmak tanımlar. Bu sınıfın bir nesnesi geri dönüşüm hakkında her Java çalışma zamanı bu yöntemi çağırır.
(Sonuçlandırmak yöntemi içinde bir nesne yok edilir önce yapılmalıdır bu eylemleri belirleyecektir.)
(Sonuçlandırmak yöntemi bu genel biçime sahiptir:)
protected void sonuçlandırmak ()
{
/ / Burada sonuçlandırılması kodu
}
Burada, korumalı anahtar kelime sınıfının dışında tanımlanan kodu ile (sonuçlandırmak için erişimi engelleyen bir belirteci olduğunu)
Bu yürütülür when.or bile) (if.finalize bilmek anlamına gelir. Çöp toplama meydana gelmeden önce program sona Örneğin, yürütmez) (sonuçlandırılmaz.