Metot Kavramı

advertisement
MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ
Ders 11: Metot Kavramı
Yard. Doç. Dr. Alper Kürşat Uysal
Bilgisayar Mühendisliği Bölümü
[email protected]
Ders Web Sayfası: http://ceng.anadolu.edu.tr/Ders.aspx?dersId=101
1
Metot
•
Metotlar sınıfların(class) içinde yer alan küçük program parçacıklarıdır.
•
Metot 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 metot çağrıldığı proğram parçacığına belli bir değişkeni aktarabilir.
•
Metotların tanımlarında aktardıkları değişken türü tanımlanır.
•
Eğer metot hiçbir değişken aktarmıyorsa void sözcüğüyle tanımlanır. Metotların
genel tanımı aşağıdaki gibidir.
Genel Metot tanımı
(public) (static) sınıf değişken türü sınıf ismi( sınıf değişken girdi listesi)
{
sınıf içinde geçerli degişken tanımları
Metotun ana gövdesi
return metot çıktı değişkeni
}
2
Örnek Bir Metot Tanımı:
public static double metotornegi(int x, double y)
{
double z = 3.5;
double f ;
f = z*x*x+y;
return f;
}
Bu metotdaki x ve y gerçek (double) değişkenleri metotun girdi değişkenleridir. z ve f değişkenleri
metotun yerel değişkenleridir ve bu metot dışında tanımları yoktur. Metot f değişkeninin değerini çıktı
olarak metotun dışına aktarmaktadır. Eğer yukarıdaki metot main metotunda aşağıdaki gibi bir örnekte
kullanılırsa
double z = 2.5;
double r ;
int i = 3;
r = metotornegi(i,z);
System.out.println(“r = “+r);
r = 34 sonucuna ulaşılır.
3
Metot örneği-1
import javax.swing.*;
public class metotornek1
{
public static double kare(double x) {
return x*x;
}
public static void main(String[] args) {
double sayi=Double.parseDouble(JOptionPane.showInputDialog("Bir
gerçek sayı giriniz : "));
JOptionPane.showMessageDialog(null,"girilen sayının karesi :
"+kare(sayi));
}
}
4
5
Metot örneği-2
import javax.swing.*;
public class metotornek2 {
public static long faktoriyel(int x) {
long faktoriyel=1;
for(int sayi=1;sayi<=x;sayi++) {
faktoriyel=faktoriyel*sayi;
}
return faktoriyel;
}
public static void main(String args[]) {
int faktoriyelsayi;
faktoriyelsayi=Integer.parseInt(JOptionPane.showInputDialog("Bir tam sayı giriniz :
"));
String s=faktoriyelsayi+" faktoriyel: "+faktoriyel(faktoriyelsayi);
JOptionPane.showMessageDialog(null,s);
}
}
6
7
Metot örneği-3
import javax.swing.JOptionPane;
public class metotornek3
{
public static double kuvvet(double sayi,int kuvvet) {
double sonuc=1;
for(int i=1;i<=kuvvet;i++){
sonuc=sonuc*sayi;
}
return sonuc;
}
public static void main(String[] args) {
double cikti;
double sayi=Double.parseDouble(JOptionPane.showInputDialog("Bir gerçek sayı
giriniz : "));
int derece=Integer.parseInt(JOptionPane.showInputDialog("Kuvvetini giriniz : "));
cikti=kuvvet(sayi,derece);
JOptionPane.showMessageDialog(null,sayi+" üzeri "+derece+" = "+cikti);
}
}
8
9
Metot örneği-4 (Değer Döndürmeyen Metot Tanımı)
public class metotornek4 {
public static void PrintLine() {
System.out.println("This is a line of text.");
}
public static void main(String[] args) {
System.out.println("Start Here");
PrintLine();
System.out.println("Back to the Main");
PrintLine();
System.out.println("End Here");
}
}
Çıktı:
Start Here
This is a line of text.
Back to the Main
This is a line of text.
End Here
10
Math kütüphanesindeki hazır metotlara örnekler
Metot
Tanım
Örnek
abs(x)
x değişekeninin mutlak değeri
Math.abs(9.2) = 9.2
Math.abs(-9.2) = 9.2
ceil(x)
x degişkenini bir üst tamsayıya dönüştürür (türkçesi
: tavan)
Math.ceil(9.2) = 10
Math.ceil(-9.8) = -9
floor(x)
cos(x)
x değişkenini bir alt tamsayıya dönüştürür. (türkçesi
: taban)
x in trigonometrik cosünisü (x radyan )
Math.floor(9.2) = 9
Math.floor(-9.8) = -10
Math.cos(1.0)=0.54030230568
sin(x)
tan(x)
acos(x)
asin(x)
x in trigonometrik sinüsü (x radyan cinsinden tanımlanmıştır.)
x in trigonometrik tanjantı (x radyan )
x in trigonometrik cosünisünün tersi (sonuç radyan)
x in trigonometrik sinüsü (sonuç radyan )
Math.sin(1.0)=0.8414709840709
Math.tan(1.0)=1.557040724655
Math.acos(0.54030230568)=1.0
Math.asin(0.8414709840709)=1.0
atan(x)
atan2(x,y)
x in trigonometrik tanjantı (sonuç radyan )
4.0*Math.atan(1.0)=3.14159265359
4.0*Math.atan2(1.0,1.0)=3.14159265
exp(x)
x
e e(2.7182818284590452354) nin x inci kuvveti
log(x)
log10(x)
pow(x,y)
max(x,y)
e tabanına göre logaritma
10 tabanına göre logaritma
x in y inci kuvveti
x ve y nin büyük olanı. x değeri double, float ve int ve long olarak
tanımlanmıştır
x ve y nin küçük olanı. x değeri double, float ve int ve long olarak
tanımlanmıştır
Raslantısal sayı (0 ile 1 arasinda)
Math.exp(1.0) =2.718281828459
Math.exp(2.0) =7.389056098931
Math.log(2.718281828459)=1.0
Math.log(10.0)=1.0
Math.pow(3,2)=9.0
Math.max(2.3,12.7)=12.7
min(x,y)
random()
Math.min(2.3,12.7)=2.3
Math.random() = 0 ila bir arasında her
sayı çıkabilir
11
Java kütüphanelerinden metot kullanım örneği (Sayı Tahmin Oyunu)
import javax.swing.*;
public class sayitahmin {
public static void main(String[] args) {
// TODO Auto-generated method stub
double tutulansayi=Math.round(Math.random()*10);
System.out.println("Tutulan sayi="+tutulansayi);
double tahmin=-1;
while(tahmin!=tutulansayi){
tahmin=Double.parseDouble(JOptionPane.showInputDialog("Bir sayi tahmin
edin"));
if (tahmin<tutulansayi)
JOptionPane.showMessageDialog(null, "Sayı daha büyük");
else if (tahmin>tutulansayi)
JOptionPane.showMessageDialog(null, "Sayı daha küçük");
}
JOptionPane.showMessageDialog(null, "Tebrikler doğru tahmin");
}
}
12
13
KAYNAKÇA
1. Turhan Çoban, Java Bilgisayar Diliyle Programlama.
14
Download