Codegym Üniversitesi kursunun bir parçası olarak bir akıl hocası ile bir ders parçası. Tüm kurs için kaydolun.


"Zaten burada mısın, Amigo? Bir sürü Java komutu öğrendiğini biliyorum. Neredeyse benim seviyeme ulaştın!"

"Bu doğru mu Diego?"

"Tabii ki hayır, ha-ha. Hala yapacak çok çalışman ve öğrenmen var. Yine de, oldukça karmaşık programlar yazmak için yeterince bilgin var. Bir programda 10, 20, 30 satırlık kodlar çok büyük bir program değil. Sağ?"

"Sanırım haklısın. Özellikle de kıvrık ayraçları ayrı satırlara koyarsan."

"Ama 100'den fazla satırlık bir program, şimdi bu büyük. Biz robotlar bile bu tür kodları anlamakta oldukça zorlanıyoruz. Ne düşünüyorsunuz, çok fazla kod içeren programları yazmayı ve okumayı bir şekilde basitleştirmek için yapabileceğiniz herhangi bir şey var mı?"

"İçtenlikle öyle umuyorum!"

"Umutlarınız boşuna değil. Programları basitleştirmek mümkündür ve yöntemler bu konuda bize yardımcı olmak için buradalar. Bunlara bazen işlevler denir .

"İşlevler, yöntemler... Ah, bunlar ne?"

"Çok basit bir şekilde ifade edersek, bir yöntem, benzersiz bir ada sahip bir komutlar grubudur . Diğer bir deyişle, birkaç komutu tek bir gruba koyar ve ona benzersiz bir ad veririz. İşte bu kadar - boom - bir yöntemimiz var. Çoğu genellikle, bu komutlar küçük ve belirli bir görevi çözmek için bazı gerekçelere göre gruplandırılır, örneğin, "bir dosyadan satır yazdırma yöntemi" veya "bir sayıyı bir üsse yükseltme yöntemi".

"Yani, programı yöntemlere mi ayıracağız?"

"Evet ve kodu basitleştiriyor.

Örnek:

Yöntem olmadan bir yöntem ile
class Solution
{
   public static void main(String[] args)
   {
     System.out.print("Wi-");
     System.out.println("Fi");
     System.out.print("Wi-");
     System.out.println("Fi");

     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void main(String[] args)
   {
     printWiFi();
     printWiFi();
     printWiFi();
   }
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}

"Sol sütundaki programda, aynı kodu üç kez tekrarlıyoruz - bunu kasıtlı olarak bir noktayı göstermek için yaptık. Ancak sağdaki programda, tekrarlanan kodu ayrı bir yönteme taşıdık ve ona benzersiz bir ad verdik - printWiFi.

printWiFi()Ve yeniden konumlandırılan kod yerine, yöntemi 3 kez çağırıyoruz .

"Sağdaki sütundaki program çalıştırıldığında, metot her çalıştırıldığında printWiFi(), metodun içindeki tüm komutlar printWiFi()çalıştırılır. Az önce birkaç komutu tek bir grupta birleştirerek yeni bir komut (yöntem) oluşturduk.

"Herhangi bir kod, ayrı yöntemlere bölünebilir. Bu, işleri basitleştirmek için yapılır: Buradaki fikir, tek bir büyük yöntemdense birçok küçük yönteme sahip olmanın daha iyi olduğudur.

"Bir programı yöntemlere bölmek harika bir fikir.

"Yakında kendi yöntemlerinizi oluşturmadan programları nasıl yazdığınızı merakla hatırlayacaksınız."

"Dinlemeye ve yöntemler yazmaya hazırım! Sadece nasıl yapacağımı söyle."

Java'da bir yöntem bildirmek

"En basit yöntemi nasıl ilan edebiliriz? İşte nasıl:

public static void name()
{
  method body
}

nameYöntemin benzersiz adı nerededir ve yöntemi method bodyoluşturan komutları temsil eder. public, static, ve sözcüklerinin anlamı voiddaha sonra tartışılacaktır.

"Bir yöntem oluşturduktan sonra, onu diğer yöntemlerimizde çağırabiliriz. Bir yöntem çağrısı şöyle görünür:

name();

" nameÇağırmak istediğimiz yöntemin, yani yöntem çağrısına geldiğimizde komutlarını yürütmek istediğimiz yöntemin benzersiz adı nerede?

"Program yöntem çağrısına ulaştığında, yalnızca yönteme adım atar, tüm komutlarını yürütür, orijinal yönteme geri döner ve yürütmeye devam eder.

"Ve şimdi, Amigo, daha önce öğrendiğin komutlara yeni gözlerle bak. Örneğin ... Bunun gerçekte ne olduğuna dair aklına bir şey geliyor mu?"System.out.println()

"Bütün bu komutların diğer programcılar tarafından yazılmış yöntemler olduğunu mu söylüyorsunuz?"

"Hepsi değil ama çoğu. Evet, aynen! Bazıları da hayatımızı kolaylaştırmak için yazmış."

" public static void main(String[] args)Bir yöntem de öyle... Şimdi daha mantıklı!"

"Elbette öyle! Programlama! Ana yöntemin -programın alfa ve omega'ları- başka yöntemlere çağrılar içerebileceği ortaya çıktı:

kod Not
class Solution
{
   public static void main(String[] args)
   {
     printWiFi10Times();
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}




print10TimesWiFi()Yöntemi çağırırız Yöntemi


bildiririz  Yöntemi bir döngü içinde 10 olarak çağırırız Yöntemi bildiririz Ekranda " " gösteririzprint10TimesWiFi


printWiFi()


printWiFi

Wi-Fi

Yöntemler hakkında gerçekler

"Yöntemlerle ilgili bazı yararlı gerçekleri sizin için bir kenara ayırdım. İşte keyfini çıkarın:

Gerçek 1. Bir yöntem her zaman bir sınıfın parçasıdır.

Bir metot sadece bir sınıfta bildirilebilir. Bir metot başka bir metot içinde bildirilemez. Bir metot sınıf dışında bildirilemez.

Gerçek 2. Bir yöntemin adının kutsal bir anlamı yoktur.

Hangi yöntemlerin çağrıldığı önemli değil - bu hiçbir şeyi etkilemez. Ana yöntem, tıpkı diğerleri gibi bir yöntemdir. Sadece bu ad, Java makinesinin programı yürütmeye başlayacağı yöntem için seçilmiştir. Bunda büyülü bir şey yok. Bütün bunlar, en azından ne işe yaradıklarını biraz netleştiren yöntem adlarını seçmek daha iyidir. Bundan biraz sonra bahsedeceğim.

Gerçek 3. Bir sınıftaki yöntemlerin sırası önemli değil

Yöntemlerinizi bir sınıfa herhangi bir sırayla yazabilirsiniz - bu, programın yürütülmesini hiçbir şekilde etkilemez. Örnek:

kod
class Solution
{
   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }
   
   public static void main(String[] args)
   {
     printWiFi10Times();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }
   public static void main(String[] args)
   {
     printWiFi10Times();
   }
}

Gerçek 4. Bir yöntemin içindeki değişkenler, diğer yöntemlerin değişkenleriyle hiçbir şekilde ilişkili değildir.

Vegasta olan Vegasta kalır. Ve bir yöntem içinde bildirilen değişkenler, yöntemin içinde kalır.

Aynı ada sahip değişkenler iki yan yana metotta bildirilebilir ve bu değişkenler hiçbir şekilde birbiriyle ilişkili değildir.

Yöntem adları

"O halde... Size yöntem adlarından söz edeceğime söz verdim. Programlamadaki en zor iki sorunun, yöntemler için doğru adları seçmek ve değişkenler için doğru adları seçmek olduğu uzun zamandır biliniyor."

"Bunun bu kadar zor olduğunu hiç düşünmemiştim!"

"Değişkenlerin ve yöntemlerin keyfi adlara sahip olduğu diğerlerinin belirsiz kodları hakkında pek bir şey bilmiyordunuz. Sadece bu kodu anlamaya çalışın. Aslında, yöntemlerin doğru şekilde nasıl adlandırılacağına ilişkin neredeyse bütün bir bilim ortaya çıktı. kendi standartları.

"Java'da şu ilkeleri takip etmek adettendir:

İlke 1. Bir yöntem adı, yöntemin ne yaptığını kısaca açıklamalıdır.

Ardından, kodunuzu okuyan başka bir programcı, kodun ne yaptığını tahmin etmek için yöntemin adına güvenebilir. Her seferinde çağrılan yöntemlerin koduna bakması gerekmeyecek. Ve yöntemlerin amacını hatırlamak daha kolaydır.

Örneğin, 'programı uyku moduna geçirmek' için kullanılır ve 'sonraki tamsayıyı okumak' için kullanılır. Uygun ha?Thread.sleep()Scanner.nextInt()

İlke 2. Bir yöntem adı birden çok sözcük olabilir.

Ancak, bunu yaparken birkaç sınırlama vardır:

  • Yöntem adında boşluk olamaz: tüm sözcükler birlikte yazılır.
  • İlk kelime hariç her kelime büyük harfle yazılır.
  • Yöntem adı her zaman küçük harfle başlar

Yöntemi hatırla print10TimesWiFi. Bu isim ne anlama geliyor? "'WiFi' kelimesini 10 kez göster". Bir yöntemin adına çok fazla sözcük eklememelisiniz: ad, onun özünü yansıtmalıdır.

Yöntemleri adlandırmak için bu standarda CamelCase denir (Büyük harfler bir deve hörgücü gibidir).

İlke 3. Yöntem adı bir fiille başlar.

Bir yöntem her zaman bir şeyler yapar, bu nedenle yöntem adındaki ilk sözcük her zaman bir eylemdir.

İşte yöntemler için bazı kötü isimler: home, cat, car, train, ...;

Bazı iyi isimler şunlardır: run, execute, print, read, write, ...

İlke 4. Bir yöntem adı yalnızca Latin harflerini ve rakamlarını kullanır.

Java, farklı diller için mükemmel desteğe sahiptir. Değişkenlerin, yöntemlerin ve sınıfların adlarını Çince'nin yanı sıra Rusça da yazabilirsiniz - her şey işe yarayacak!

Ancak! System.out.println()Yöntem Çince yazılmış olsaydı, Java'yı ne kadar süreyle çalışmak zorunda kalacağınızı bir düşünün .

Şimdiden çok daha uzun, değil mi? Bu ilk nokta.

İkincisi, birçok yazılım geliştirme ekibi uluslararasıdır. Çok sayıda Java kitaplığı, dünyanın her yerinden programcılar tarafından kullanılmaktadır.

Bu nedenle metot isimlerinde sadece Latin harf ve rakamlarının kullanılması tavsiye edilir.

Önemli:

Bir yöntemin adı bir harfle başlamalıdır (bir sayı ile başlayamaz).

"Bunların tümü, Java'da yöntem adlandırmayı yöneten temel ilkelerdir. Ders bitti. Gidip görevleri çözün!"

"Ben zaten koşuyorum, Diego!"


Codegym Üniversitesi kursunun bir parçası olarak bir akıl hocası ile bir ders parçası. Tüm kurs için kaydolun.