Genel

Java Metodlar

Metodlar java programlarının ana parçalarıdır. Metodlar sınıfların(class) içinde yer alan küçük program parçacıklarıdır. Metodların çoğunda değişken parametreler metotlar ve sınıflar arasında iletişimi sağlarlar. Ayrıca her metodun kendine özgü değişkenleri de vardır. Metod yapısının ana sebebi programları modüler hale getirmektir. Aynı zamanda aynı program parçacığının tekrarlanmasını önlemeyi de sağlar. Her metod çağrıldığı proğram parçacığına belli bir değişkeni aktarabilir. Metodların tanımlarında aktardıkları değişken türü tanımlanır. Eğer metod hiçbir değişken aktarmıyorsa void sözcüğü yle tanımlanır.

Metodların özellikleri şunlardır ;

  • Class içerisinde tanımlanmalıdır
  • Modifier bulunmalıdır (private,public,protected yada belirtmezsek default)
  • return typeherhangi bir veri tipi yadavoidolabilir
  • Metod ismi belirtilmelidir
  • Metod parametreleri parantez içerisinde belirtilmelidir . Eğer parametre almayacaksa parantez açılıp kapatılır
  • Metod içerisinde kod blokları{ işaretiyle başlar } işaretiylesonlandırılır
  • Metod parametrelerini ayırmak için,işareti kullanılır
  • Exception lar metodların yanında {işaretinden önce belirtilebilir

Metotlar oluşturulma şekillerine göre ikiye ayrılırlar :

  • Önceden Tanımlanmış Metotlar : Java kütüphanelerinde bulunan hazır metotlardır.

Örneğin : pow(x,y) metodu. Math sınıfına ait olan bu metot, x ve y olarak iki değer alır ve bir değerdöndürür. Görevi ilk değerin(x), ikinci değer(y)üssünü almaktır.

  • Kullanıcı Tanımlı Metotlar: Bizim yazdığımız ve oluşturduğumuz metotlardır.

Metotların genel tanımı aşağıdaki gibidir:

Öncelikle bir Main metoduna bakarak hatırlıyalım.Nasıldı o main metodu :

Public Static Void Main(String[] args){} Şimdi bunu genel bir ifadeyle yorumlarsak aşağıdaki olay çıkar…

 

erişim_tipi (public,private) static (olabilir, olmayabilir ) dönüş_tipi(void ,int vb) foksiyon_ismi(parametreler){

  // Gövde kısmı

}

Erişim Tipleri :

  1. public:

public damgası bir değişkeni, metodu ya da sınıfı niteleyebilir. Niteledikleri öğeler herkes tarafından kullanılabilir. Başka pakette olsa bile, program içinkedi her kod onlara erişebilir. public damgalı bir sınıfın değişkenlerine ve metotlarına kendi alt-sınıfları ve dışarıdaki başka sınıflar kısıtsız erişebilir. public damgalı değişkenler ve metotlar için de kısıtsız erişim vardır. Uygulama programlarında main() metodunun public damgalı olmasının nedeni budur.

  1. private

Bazı değişken, metot ya da sınıflara başka sınıftaki kodların erişmesini engellemek isteyebiliriz. Bunun için private nitelemesini kullanırız. private damgalı öğelere yalnız aynı sınıftaki kodlar erişebilir, başka sınıftaki kodlar erişemez. Kendi alt-sınıfları bile erişemez. Bir alt-sınıf, atasının public ve ön-tanımlı öğelerine erişebilir, ama private öğelerine erişemez. Onlara erişebilmesi için, super class interface-fonksiyonu kullanılır.

  1. protected

Bir sınıf içindeki değişken ve metotlara alt-sınıfların erişebilmesini, ama paket içindeki ya da program içindeki başka kodların erişmesini engellemek isteyebiliriz. Bunun için sözkonusu öğeyi, protected damgası ile nitelemek yetecektir.

Static Durumu :

Static anahtar kelimesi kullanılarak oluşturulan değişkenler nesne değişkeni değil “sınıf değişkeni” olarak adlandırılırlar. Bu değişkenler nesneye ait değil, sınıfa ait bilgileri taşırlar. Sınıf değişkenleri içinde tanımlandığı sınıftan hiçbir nesne oluşturulmamış olsa bile bellekte yer kaplarlar. Nesne değişkenleri ise ancak bir nesne tanımlandığında bellekte yer kaplarlar. Bu iki tür değişkenin ayrıldığı bir başka nokta da sınıf değişkenlerinin sadece bir örneğinin olmasıdır. Yani o sınıftan kaç tane nesne oluşturulursa oluşturulsun, bellekte tek bir tane sınıf değişkeni vardır ve ne şekilde erişirsek erişelim, aynı sınıf değişkenine erişiriz.

Dönüş Tipi:

Void: Geri Dönüş değeri almaz.

İnt, String, Float, Double : Return değeri almaktadır.

Parametre:Parametre, malzeme olarak örneklenebilir. Siz metoda malzeme verirsiniz ve o da size onu işleyerek geri döndürür veya döndürmeden kendi işlemlerinde kullanır. Bazı metotlar dışarıdan parametreye ihtiyaç duyarken, bazıları duymaz.

Metod Çağırma (Calling Methods)

Metodları ana mainde iki şekilde çağırabiliriz ;

Eğer metod static değilse :

Sınıfİsmi class = new Sınıfİsmi();
 class.metod();

Eğer metod static ise :

metod();

Örnek: 10 kere java yazan metod

public static void Ornek(int a){
int i;
    for(i=0;i<a;i++){
    System.out.println("Java");
}}
public static void Main(String[] Args){
Ornek(10);
}

Örnek : topla,faktoriyel ve üst alma işlemleri metodu
            public class Ornekler {

      
                public static void main(String[] args) {
System.out.println(topla(10,20));
System.out.println(faktoriyel(5));
System.out.println(usAl(1,3));

}

public static int topla(int a,int b)
{
int toplam=a+b;
return toplam;
}
public static int faktoriyel(int c)
{
int f=1;
for(int i=1;i<=c;i++)
{
f=f*i;
}
return f ;
}
public static int usAl(int taban,int us)
{
int sonuc=1;
for(int i=1;i<=us;i++)
sonuc=sonuc*taban;
return sonuc;
}
}

Örnek:Girilen stringi tersten yazdıran java örneği
            package ornekler;
// kelime tersten
import java.util.Scanner;
            public class Ornekler {

public static String tersCevir(String kelime){
 String sonuc="";
for(int i=kelime.length()-1;i>=0;i--)
{
sonuc+=kelime.charAt(i);
}
return sonuc;
}

public static void main(String[] args){
Scanner scn=new Scanner(System.in);
System.out.println("kelime gir.");
String kelime=scn.nextLine();
System.out.println(tersCevir(kelime));
}
}

Örnek: Girilen string’te kaç tane a olduğunu bulan program
import java.util.Scanner;
            public class Ornekler {
public static int atla(String kelime){

char harf='a';
int adet=0;
for(int i=0;i<kelime.length();i++)
{
if(kelime.charAt(i)==harf){
adet++;
}
}
return adet;

}
public static void main(String[] args) {
System.out.println(atla("aaumitkoseaa"));

}

}

Örnek:İçerisinde kaç tane rakam olduğunu bulan program
            public class Ornekler {
public static int countDigit(String kelime)
{
int sonuc=0;
for(int i=0;i<kelime.length();i++)
if(Character.isDigit(kelime.charAt(i)))
sonuc++;
return sonuc;

}

public static void main(String[] args){
System.out.println(countDigit("4yg54wtgq3t"));

}}

Örnek: İçindeki boşluk sayısı, harf sayısı, tersten yazılışı, kelime sayısını bulan program
            public class Ornekler {
public static int harf(String cumle){
int sonuc=cumle.length();
for(int i=0;i<cumle.length();i++)
if(cumle.charAt(i)==' ')
sonuc--;
return sonuc;
}
public static int cumleS(String cumle){
int adet=1;
for(int i=0;i<cumle.length();i++)
if(cumle.charAt(i)==' ')
adet++;

return adet;
}
public static String ters(String cumle){
String sonuc="";
for(int i=cumle.length()-1;i>=0;i--)
sonuc+=cumle.charAt(i);
return sonuc;
}
public static int sesli(String cumle){
String sesli="aeıiöouü";
int adet=0;
for(int i=0;i<cumle.length();i++)
if(sesli.indexOf(cumle.charAt(i))>=0)
adet++;
return adet;

}
public static int bosluk(String cumle){
int adet=0;
for(int i=0;i<cumle.length();i++)
if(cumle.charAt(i)==' ')
adet++;
return adet;
}
public static void main(String[] args) {
Scanner scn=new Scanner(System.in);
System.out.println("cumle gir. ");
String cumle=scn.nextLine();
System.out.println("harf sayisi: "+harf(cumle));
System.out.println("kelime sayisi: "+cumleS(cumle));
System.out.println("tersten: "+ters(cumle));
System.out.println("sesli sayisi: "+sesli(cumle));
System.out.println("bosluk sayisi: "+bosluk(cumle));

}
}

Örnek : Kelime Tahmin Oyunu {Harf Harf kelimeyi tahmin etmeye çalışın}
import java.util.Random;
import java.util.Scanner;
            public class Ornekler {
                public static void main(String[] args) {

OyunuBaslat();

}

public static void OyunuBaslat(){
String[] dizi = {"computer", "program", "java", "ayrık", "matematik"};
Random rnd = new Random();
int tutulanIndex = rnd.nextInt(dizi.length);

Scanner scn = new Scanner(System.in);
String tutulanKelime = dizi[tutulanIndex];

StringBuilder gosterilenKelime = new StringBuilder();
for(int i=0; i<tutulanKelime.length();i++)
gosterilenKelime.append("*");

System.out.println(gosterilenKelime);
//System.out.println(tutulanKelime);
int yanlisSayisi = 0;
while(true){
String tahmin = scn.next();
if(tutulanKelime.contains(tahmin))//Var ise
{
//System.out.println(tutulanKelime.length());
for(int i=0; i<tutulanKelime.length();i++){
if(tutulanKelime.charAt(i) == tahmin.charAt(0)){
gosterilenKelime.setCharAt(i, tahmin.charAt(0));
//System.out.println(“buldu:”+tutulanKelime);
}
}
}
else
yanlisSayisi++;
System.out.println(gosterilenKelime);

if(!gosterilenKelime.toString().contains("*"))
break;
}

System.out.println("Bildiniz…");
System.out.println("Doğru cevap : " + gosterilenKelime);
System.out.println("Toplam yanlış tahmin sayısı : " + yanlisSayisi);

}
}


 

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir