veri yapıları – 2010 java programlama diline giri şugur/11_12_fall/ds/01_javaintro.pdf · •...

69
Veri Yapıları – 2010 Java Programlama Diline Giriş Doç. Dr. Aybars UĞUR

Upload: others

Post on 05-Jan-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Veri Yapıları – 2010Java Programlama Diline GirişJava Programlama Diline Giriş

Doç. Dr. Aybars UĞUR

Page 2: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Bölüm 1

GİRİŞGİRİŞ

Page 3: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Java

• Java, ilk olarak Sun Microsystems tarafındangeliştirilen nesne yönelimli programlama dilidir.

• 1995 yılında piyasaya sürülmüştür. JamesGosling, Haziran 1991’de “Oak” adıyla

VERİ YAPILARI 01 Java Temel Kavramlar

3

Gosling, Haziran 1991’de “Oak” adıylageliştirmiştir.

• Platform bağımsızlığı (programı bir kere yaz,derle ve her platformda çalıştır), tasarımamaçlarındandır. Birçok donanım, işletim sistemive platformda çalışabilmektedir.

Page 4: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Önemli Java Gerçekleştirimleri

Sürüm Ad Açıklama

JDK 1.1 (1995) Java 1.0 İlk sürüm

J2SE 1.2(1998) J2SE

Java 2

J2SE (Java 2 Platform, Standard Edition)J2EE (Java 2 Platform, Enterprise Edition) J2ME (Java 2 Platform, Micro Edition).

VERİ YAPILARI 01 Java Temel Kavramlar

4

Java 2 J2ME (Java 2 Platform, Micro Edition).

J2SE 5.0(2004) J2SETiger

Generic yapılar, Autoboxing/Unboxing

Gelişmiş for döngüsü, Varargs (Değişken sayıda argüman)

J2SE 6 (2006 sonu) : MustangJ2SE 7 (Ağustos 2006-2010) : Dolphin

Son gelişmeler için : http://en.wikipedia.org/wiki/Java_version_history

Page 5: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

JVM ve Bytecode

• JVM (Java Virtual Machine) veya Java SanalMakinesi: Java’nın özgün sanal makine modelinigerçekleştiren bilgisayar programları ve

VERİ YAPILARI 01 Java Temel Kavramlar

5

gerçekleştiren bilgisayar programları veyapılarından oluşan bir bütündür.

• “Java Bytecode” adı verilen, bilgisayar ara dilinikabul eder. Bir programın bytecode’u, Java diliderleyicileri tarafından üretilir.

Page 6: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

İlk Java Programı

Prog1 adlı java programı :

class Prog1

{

VERİ YAPILARI 01 Java Temel Kavramlar

6

ekrana merhaba yazdırmaktadır.

public static void main(String args[])

{

System.out.println("Merhaba");

}

}

Page 7: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Java Uygulaması

Java programlarında // Satırın geri kalan kısmının açıklama satırı olduğunu gösterir.

VERİ YAPILARI 01 Java Temel Kavramlar

7

Geleneksel /* Açıklama */ işaretleri de özellikle çok satıra yayılan açıklamalarda kullanılır.

Deyimler “;” ile sonlandırılmalıdır.

Her java programı en az bir sınıf tanımı içermelidir.

Page 8: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Java Programının Çalıştırılması

class Prog1

{

public static void main(String args[]) {

Kaynak Kod Prog1.java

.. .. .. ..

.. 80 1a ..

Byte KodProg1.class

DERLEMEjavac derleyicisi

JVM’i (Java Virtual Machine) açmak üzere Java komutukullanıldığında işletilen bilgisayar programına Javauygulaması (application) denilir.

VERİ YAPILARI 01 Java Temel Kavramlar

8

public static void main(String args[]) {

System.out.println("Merhaba");

}

}> javac Prog1.java

.. 80 1a ..

.. .. .. ..

.. .. .. ..

.. 80 1a ..

.. .. .. ..

Byte KodProg1.class ÇALIŞTIRMA

java yorumlayıcısı

> java Prog1> Merhaba

JVM tarafından yorumlanabilir.

Page 9: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Entegre Geliştirme Ortamları

• Programların IDE (Integrated DevelopmentEnvironment) kullanılarak yazılması, işletilmesi, testedilmesi ve hatalardan arındırılması kolay olduğuiçin, bu şekilde uygulama yazılması işlemine RAD(Rapid Application Development) adı verilmektedir.

VERİ YAPILARI 01 Java Temel Kavramlar

9

(Rapid Application Development) adı verilmektedir.

• Eclipse (http://www.eclipse.org/)• NetBeans (http://www.netbeans.org/products/platform/)• JDeveloper (from Oracle)• IntelliJ (JetBrains)• JCreator (http://www.jcreator.com/) …

Page 10: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Bölüm 2

JAVA’daJAVA’daVERİ TİPLERİ

Page 11: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Veri Tipleri

• Java’da iki tür veri tipi vardır:– Temel– Referans

• İki tür veri tipi arasındaki fark atama işlemi sırasında ortaya çıkar.

VERİ YAPILARI 01 Java Temel Kavramlar

11

• Temel tipteki bir değişkenin diğer bir değişkene ataması sırasında veri kopyalanır.

• Referans değişkeninin diğer bir değişkene ataması sırasında ise, her iki değişken de aynı veriyi gösterir. Referanslar, C/C++ işaretçilerine (pointer) benzerler.

• Diziler ve Nesnelerin tümü referans veri tipindedir.

Page 12: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Java’da Temel Veri Tipleri

Type Size in bits Values

boolean 1 true or false

byte 8 -128 to +127

char 16 Unicode

VERİ YAPILARI 01 Java Temel Kavramlar

12

char 16 Unicode

short 16 integer

int 32 integer

long 64 integer

float 32 float

double 64 double

Page 13: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Temel Veri Tiplerinin Sınırları

• Tamsayıların Sınırları

VERİ YAPILARI 01 Java Temel Kavramlar

13

• Ondalıklı Sayıların Sınırları

Page 14: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Java’nın 8 Temel Veri TipiType Size in bits Values Standard boolean 8 true or false

char 16 ’\u0000’ to ’\uFFFF’ (ISO Unicode character set)

byte 8 –128 to +127

short 16 –32,768 to +32,767

int 32 –2,147,483,648 to +2,147,483,647

long 64 –9,223,372,036,854,775,808 to

+9,223,372,036,854,775,807

float 32 –3.40292347E+38 to

+3.40292347E+38

(IEEE 754 floating point)

double 64 –1.79769313486231570E+308 to

+1.79769313486231570E+308

(IEEE 754 floating point)

VERİ YAPILARI 01 Java Temel Kavramlar

14

+1.79769313486231570E+308

• java.lang.Byte• java.lang.Short• java.lang.Integer• java.lang.Long

• java.lang.Float• java.lang.Double

• java.lang.Character• java.lang.Boolean

Sarmalayıcı (Wrapper) Sınıflar

Page 15: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

ASCII ve UNICODE Karakter Setleri

• ASCII, 8 bit kodlama düzenindedir ve en yaygın karakter setidir. 256 karakterle sınırlıdır.

VERİ YAPILARI 01 Java Temel Kavramlar

15

• Unicode, 16 bitlik kodlama düzenindedir ve 65536 karakterlik sahası vardır.

• Java programlama dili Unicode’u kullanır.

Page 16: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

İkiye Tümleyen (Two’s Complement)

İkiye tümleyen, negatif sayıları İkili sayılar içerisindegöstermek için kullanılan bir yöntemdir. İlave bir + ve −sembolüne ihtiyaç duyulmaz. İkili (binary) bir sayının ikiyetümleyeni (two’s complement), sayının ikinin üssündençıkartılması ile elde edilir (n bitlik ikinin tümleyeni için,2N’den çıkarılır).

VERİ YAPILARI 01 Java Temel Kavramlar

16

çıkartılması ile elde edilir (n bitlik ikinin tümleyeni için,2N’den çıkarılır).

Negatif sayıların ikili kodlanması esnasında ikiye tümlememetodu kullanılmadığı taktirde, sayının işareti için ayrı birbit harcanması gerekir. Birbirinden farklı işarete sahipbirden fazla 0 sayısının oluşmasına sebep olur. Bitlerindeğerlerini ve anlamlarını değerlendirecek bir yönetim-denetim mekanizması kullanılması gerekir.

Page 17: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

8 Bitlik İkinin Tümleyeni Tamsayılar

A two's-complement system ortwo's-complement arithmetic isa system in which negativenumbers are represented by thetwo's complement of the absolutevalue.

Pozitif Sayılar doğal şekildedir:

VERİ YAPILARI 01 Java Temel Kavramlar

17

this system is the most commonmethod of representing signedintegers on computers. In such asystem, a number is negated(converted from positive tonegative or vice versa) bycomputing its two's complement.

Sınırları : [-2N-1 … 2N-1-1]

Page 18: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Java Byte Data Type

Decimal 8 bit Binary Invert add 1 for

Twos

Complement

Decimal

0 0000 0000 - - -

+1 0000 0001 1111 1110 1111 1111 -1

+2 0000 0010 1111 1101 1111 1110 -2

VERİ YAPILARI 01 Java Temel Kavramlar

18

+2 0000 0010 1111 1101 1111 1110 -2

+3 0000 0011 1111 1100 1111 1101 -3

+4 0000 0100 1111 1011 1111 1100 -4

+5 0000 0101 1111 1010 1111 1011 -5

¯ ¯

124 0111 1100 1000 0011 1000 0100 -124

125 0111 1101 1000 0010 1000 0011 -125

126 0111 1110 1000 0001 1000 0010 -126

127 0111 1111 1000 0000 1000 0001 -127

- - - 1000 0000 -128

Page 19: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

IEEE 754 Standard for Floating-Point Arithmetic

• http://tr.wikipedia.org/wiki/IEEE_754

• http://en.wikipedia.org/wiki/IEEE_754-1985

• IEEE Kayan Nokta Aritmetiği Standardı, kayan noktalı

VERİ YAPILARI 01 Java Temel Kavramlar

19

• IEEE Kayan Nokta Aritmetiği Standardı, kayan noktalı sayıların gösteriminde en çok kullanılan standarttır.

• IEEE 754 standardına göre sayılar tek duyarlı (32 bit) ve çift duyarlı(64 bit) şekilde gösterilebilirler.

Page 20: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

IEEE 754 : Tek Duyarlı Gösterim

Tek duyarlı gösterimde sayı 32 bitle ifade edilir. Bu bitlerden biri işaret, 8'i üs 23 tanesi ise anlamlı kısmın gösterimi için kullanılır. Tek duyarlı gösterimde üs için

kaydırma değeri 28-1-1 = 127 olarak hesaplanır.

VERİ YAPILARI 01 Java Temel Kavramlar

20

1 bit 8 bit 23 bit

İşaretsign

Üsexponent

Anlamlı Kısımfraction

Page 21: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

IEEE 754 : Tek Duyarlı Gösterim

Tek duyarlı gösterimde 6,375 sayısını temsil etmek istersek :

6 → (110)2

0,375 × 2 = 0,75

0,75 × 2 = 1,5 0,375 = (0,011)2 → 6,375 = (110,011)2

VERİ YAPILARI 01 Java Temel Kavramlar

21

0,5 × 2 = 1,0

Sayıyı olağan duruma getirirsek : 110,011 = 1,10011x22

Sayı > 0 olduğundan işaret biti : 0Sayının üst değerinin saptırılmış hali : 2+127 = 129 → 12910 = 100000012

Anlamlı kısım : 10011000000000000000000Sayı son olarak : 0 10000001 10011000000000000000000 şeklinde ifade edilir.

Page 22: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

IEEE Tek Duyarlı Gösterimdeki Bir Sayının Onluk Düzendeki Değerinin Bulunması

v = s × 2e × m where– s = +1 (positive numbers and +0) when the sign bit is 0 – s = −1 (negative numbers and −0) when the sign bit is 1 – e = exponent − 127 (in other words the exponent is stored with

127 added to it, also called "biased with 127")

VERİ YAPILARI 01 Java Temel Kavramlar

22

127 added to it, also called "biased with 127") – m = 1.fraction in binary (that is, the significand is the binary

number 1 followed by the radix point followed by the binary bits of the fraction). Therefore, 1 ≤ m < 2. (1+fraction)

0 10000001 10011000000000000000000v = +1 * 22 * (1,10011)2 = 6,375

1+ 0,5+ 0,0625+ 0,03125 = 1,59375

Page 23: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

IEEE 754 : Çift Duyarlı Gösterim

Çift duyarlı gösterimde sayı 64 bitle ifade edilir. Bu bitlerden biri işaret, 11'i üs ve 52 tanesi de anlamlı kısmı ifade etmek için kullanılır. Bu gösterimde üs için sapma değeri 211-1-1 = 1023 olarak hesaplanır.

VERİ YAPILARI 01 Java Temel Kavramlar

23

1 bit 11 bit 52 bit

İşaretsign

Üsexponent

Anlamlı Kısımfraction

Page 24: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Değişkenler - I

Tip değişken ismi

int sayi1; // int veri tipidir.

/* sayi1 değişkeninin tamsayı tipinde olduğunu

VERİ YAPILARI 01 Java Temel Kavramlar

24

/* sayi1 değişkeninin tamsayı tipinde olduğunu

belirtir */

........

sayi1=5;

float sayi=5.7f;

Page 25: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Değişkenler - II

• Değişkenler, tanımlandıkları gibi değer alırlar:int a = -5; double b = 10.3;

• Aynı satırda birden çok değişken tanımı yapılabilir.• C++ programlama Dilinde olduğu gibi değişkenler,

herhangi bir yerde tanımlanabilir. Metodun en üstündetanımlanma zorunluluğu yoktur.

VERİ YAPILARI 01 Java Temel Kavramlar

25

herhangi bir yerde tanımlanabilir. Metodun en üstündetanımlanma zorunluluğu yoktur.

• Değişkenlerin, gerekli olduğu yerde tanımlanmasıuygundur.

• Java Dilinde değişkenlerin kullanılmadan önce değerleriolması gerekir.

• Değişkenler sadece tanımlandıkları bloktakullanılabilirler.

Page 26: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Veri Tipi Dönüştürme (Casting)

• Daha geniş bir tipi, daha dar bir veri tipine dönüştürürken “casting” yapmak gerekir.

double sayi1=5;

VERİ YAPILARI 01 Java Temel Kavramlar

26

double sayi1=5;

// float sayi2 = sayi1; // Yanlış

float sayi2 = (float)sayi1; // Doğru

double sayi3 = sayi2; /* Geniş tip olduğundan problem yok */

Page 27: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Yazdırma Komutu

• System.out.print ve System.out.println

System.out.print(“Merhaba”); System.out.println(“Java Dili”);

� Merhaba Java Dili

System.out.println(“\nOrtalama="+57);

System.out.println(5);

VERİ YAPILARI 01 Java Temel Kavramlar

27

int sayi = 5;

System.out.println("Sayi\tKaresi");

System.out.println(sayi+"\t"+(sayi*sayi));

• Sayi Karesi

• 5 25

• System.out.printf (J2SE 5.0’ın yeni özelliklerindendir)String str = "Java"; double versiyon = 5.0;

System.out.printf("Merhaba %s %f ", str, versiyon);

Page 28: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Java’da Klavyeden Okumaimport java.util.Scanner;

class Dene{

public static void main(String args[]){

Scanner str = new Scanner(System.in);

VERİ YAPILARI 01 Java Temel Kavramlar

28

Scanner str = new Scanner(System.in);int i = str.nextInt();

System.out.println(""+(i*i));}

}

Ayrıntılar için : http://java.sun.com/j2se/1.5.0/docs/api/java/util/Scanner.html

Page 29: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

OPERATÖRLER - I

Hesaplamalarda kullanılan operatörler :

Aritmetik : +, -, *, /, % (Mod, kalan), ++, --

Mantıksal : &&, ||, !, &, |, .....

İlişkisel :

VERİ YAPILARI 01 Java Temel Kavramlar

29

İlişkisel :

== (eşittir)

!= (eşit değildir)

>, <, >=, <=

Page 30: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

OPERATÖRLER - II

Atama Operatörü : değişken = deyim;

int x = 5;

double sayi = -3.5;

int a, b, c;

VERİ YAPILARI 01 Java Temel Kavramlar

30

int a, b, c;

a=b=c=100; // Atama zinciri

Bileşik Atamalar : +=, -=, *=, /=, .....

x-=10; // x = x - 10 ile eşdeğer

Page 31: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Operatörler ve Öncelik Sırası

Gruplama Operatorler

Postfix [] . (params) exp++ exp-- Unary ++exp --exp +exp -exp ~ ! Creation, cast new (type)exp Multiplicative * / % Additive + - Shift << >> >>>

VERİ YAPILARI 01 Java Temel Kavramlar

31

Shift << >> >>> Relational < > <= >= instanceof Equality == != Bitwise AND & Bitwise EXOR ^ Bitwise OR |

Logical AND && Logical OR || Conditional ?: Assignment = *= /= %= += -= >>= <<= >>>=

&= ^= |=

Page 32: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Bölüm 3

YAPISAL PROGRAMLAMA YAPISAL PROGRAMLAMA ve DENETİM YAPILARI

Page 33: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

YAPISAL PROGRAMLAMA

Yapısal Programlamada üç tür denetim yeterlidir:

• Sıra (Sequence)

• Seçim (Selection)

• Tekrar (Repetition)

VERİ YAPILARI 01 Java Temel Kavramlar

33

• Tekrar (Repetition)

Sıralı işletim ?

Page 34: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

PROGRAM DENETİM YAPILARI

• SEÇİM YAPILARI– if– if/else– switch

VERİ YAPILARI 01 Java Temel Kavramlar

34

• TEKRAR YAPILARI (Döngüler)– while– do/while– for

Page 35: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

SEÇİM YAPILARI : IF

if (koşul) ifade

if(notu>=60) System.out.println("Geçti");

Koşul : boolean veri tipindedir. true veya false olabilir.

VERİ YAPILARI 01 Java Temel Kavramlar

35

Koşul : boolean veri tipindedir. true veya false olabilir.

int notu=65, sayac=0;

if(notu>=60) // İfade bloğu

{ System.out.println("Gecti"); sayac++; };

Page 36: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

SEÇİM YAPILARI : IF/ELSE

if (koşul) ifade;

else ifade;

if(notu>=60)

VERİ YAPILARI 01 Java Temel Kavramlar

36

if(notu>=60)

System.out.println("Gecti");

else

System.out.println("Kaldı");

Page 37: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

CONDITIONAL OPERATOR (?:)

System.out.println(notu>=60? "Geçti":"Kaldı");

Eşdeğer ifade :

VERİ YAPILARI 01 Java Temel Kavramlar

37

Eşdeğer ifade :

if (notu>=60)System.out.println("Geçti");

elseSystem.out.println("Kaldı");

Page 38: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

IF-ELSE-IF MERDİVENİ(CASCADING IF)

if(koşul) ifade

else if (koşul) ifade

else if (koşul) ifade

...............

else ifade;

if (notu>=90)

str = “A”;

else if (notu>=80)

str = “B”;

else if (notu>=70)

VERİ YAPILARI 01 Java Temel Kavramlar

38

else ifade; else if (notu>=70)

str = “C”;

else if (notu>=60)

str = “D”;

else str = “E”;

System.out.println(str);

Page 39: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

SEÇİM YAPILARI : SWITCHÇoklu Seçim

switch (deyim) {case sabit1:ifade1;break;

case sabit2:

int sayi = 4;

switch(sayi) {

case 0 :

System.out.println(" Sayı 0");

break;

VERİ YAPILARI 01 Java Temel Kavramlar

39

case sabit2:ifade2; break;

....default : ifade;break;

}

case 1 :

System.out.println(" Sayı 1");

break;

case 2 :

System.out.println(" Sayı 2");

break;

default : System.out.println("X");

break;

Page 40: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

DÖNGÜLER : FOR

sayac : kontrol değişkeni olmak üzere,

for(int sayac=0; sayac<10; ++sayac)

ifade

VERİ YAPILARI 01 Java Temel Kavramlar

40

for(başlangıç; devam koşulu; kontrol değişkeni değişimi)

ifade

for(int sayac=0; sayac<10; ++sayac) {

ifadeler

}

Page 41: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

DÖNGÜLER : WHILE ve DO-WHILE

while(koşul) ifade

do {

ifadeler

VERİ YAPILARI 01 Java Temel Kavramlar

41

ifadeler

} while (koşul);

int sayac=1, toplam=0;

while(sayac<10) { toplam+=sayac; sayac++; };

Page 42: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

DÖNGÜDEN ÇIKMAK : BREAK

for(int x=1; x<10; ++x)

{

toplam+=x;

if (x==5) break;

VERİ YAPILARI 01 Java Temel Kavramlar

42

if (x==5) break;

}

System.out.println("1 ile 5 arasındaki sayıların toplamı = "+toplam);

break sadece en içteki döngüden çıkar.

Page 43: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

DÖNGÜDE ERKEN TEKRAR : CONTINUE

1 ile 100 arasındaki tek sayıları yazan program :

for(int i=0; i<100; ++i)

{

VERİ YAPILARI 01 Java Temel Kavramlar

43

{

if ( (i%2)!=1) continue;

System.out.println(i);

}

Page 44: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Mantıksal Operatörler

• VE : Conditional AND &&• VEYA : Conditional OR ||if ( (yas>50) && (boy>170) ) …;

Conditional ve/veya, kısa devre hesaplaması yapabilir.

VERİ YAPILARI 01 Java Temel Kavramlar

44

Conditional ve/veya, kısa devre hesaplaması yapabilir.

• VE : Boolean Logical AND &• VEYA : Boolean Logical OR |if ( (yas>50) && (boy>170) ) …;

Boolean mantıksal ve/veya, tüm operand’ları hesaplar.

Page 45: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Bölüm 4

DİZİLERDİZİLER

Page 46: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

DİZİLER - I

Dizi (array), aynı tipteki değişkenler topluluğudur.

int[] arr = new int[10];

int[] dizi = {5,7,12,2,9,8,14,21,-6,5};

VERİ YAPILARI 01 Java Temel Kavramlar

46

int[] dizi = {5,7,12,2,9,8,14,21,-6,5};

double[] sayilar; sayilar = new double[5];

5 7 12 2 9 8 14 21 -6 5

-3.4 12.5 27.0 1.1 25.33

0 1 2 3 4 5 6 7 8 9

Page 47: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Diziler - II

Diziler, temel veri tipi listesi veya referans listesi içerebilirler.

Diziler, köşeli parantezlerle ifade edilirler : []

Köşeli parantezler veri tipinden sonraya yerleştirildiğinde, tüm değişkenleri dizi olarak tanımlar:

VERİ YAPILARI 01 Java Temel Kavramlar

47

değişkenleri dizi olarak tanımlar:

int[] sayilar, numaralar;

Köşeli parantezlerin değişkenden sonraya yerleştirilmesi sadece o değişkeni dizi yapar:

int sayilar[], sayac;

Page 48: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Diziler - III

Diğer referans tipleri (nesneler) gibi diziler de, ya bazı verileri gösteriyordur veya hiçbir yere işaret etmiyordur.

Hiçbir yeri göstermiyorsa, int sayilar[] = null; şeklinde olduğu gibi tanımlanmalıdır.

Bellekten 15 tamsayılık yer ayırmak için : sayilar = new int[15];

VERİ YAPILARI 01 Java Temel Kavramlar

48

Bellekten 15 tamsayılık yer ayırmak için : sayilar = new int[15]; şeklinde kullanılabilir.

“new” operatöründen sonraki veri tipi, tanımlı değişkenin veri tipi ile aynı olmalıdır.

Java dizinin her elemanına default olarak 0 değerini atar.

Page 49: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

DİZİ KULLANIM ÖRNEKLERİ

dizi[2]++;

dizi[3]=dizi[1]+dizi[2];

System.out.println(dizi[5]);

VERİ YAPILARI 01 Java Temel Kavramlar

49

Dizi elemanlarının toplamını bulduran programı yazınız : dizi.length kullanınız!

Page 50: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

İKİ BOYUTLU DİZİLER (MATRİSLER)

• M x N • M satır, N sütun

61173

83321

9152

tablo

M=42

1

0

210

VERİ YAPILARI 01 Java Temel Kavramlar

50

• Oluşturulması : int[][] tablo = new int[4][3];• Kullanımı : tablo[0][2]

5389

N=3

3

Page 51: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

ÇOK BOYUTLU DİZİLER

• Tip []…[] isim = new tip[büyüklük1]...[büyüklükN]

• Tip isim[]…[] = new tip[büyüklük1]...[büyüklükN]

Örnek :

VERİ YAPILARI 01 Java Temel Kavramlar

51

float cbDizi[][][][]; // 4 boyutlu dizi

cbDizi = new float[3][4][2][6];

Page 52: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

STRING’LER ve KARAKTER DİZİLERİ

• Karakter dizisi : Karakterlerden oluşan dizidir.

char harfDizi[] = { ‘T', 'e', ‘s', ‘t' };for(int i=0; i<harfDizi.length;++i)System.out.println(harfDizi[i]);

VERİ YAPILARI 01 Java Temel Kavramlar

52

• String : Karakter dizisinden farklıdır. Çok sayıda metot içerir. Java’nın String sınıfı kullanılır.

String str = "Merhaba"; System.out.println(str);

str = new String(harfDizi); System.out.println(str);

Page 53: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Dizilerden Oluşan Diziler

int[][] list = new int[10][];

list[0] = new int[5];

list[1] = new int[10];

list[1][6] = 23;

VERİ YAPILARI 01 Java Temel Kavramlar

53

list[1][6] = 23;

list[0][6] = 23; /* Hata! Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6 at Ornek3.main(Ornek3.java:34) */

Page 54: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Bölüm 5

METOTLARMETOTLAR

Page 55: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

BÖL ve ÇÖZ (Divide and Conquer)

• Yazılım Mühendisliği deneyimleri, büyük programlargeliştirmenin en iyi yolunun küçük program parçaları(modül) yazıp onları birleştirmek olduğunu göstermiştir.

• Böl ve Çöz olarak bilinen bu yöntem aynı zamanda,hatalardan arındırmayı, programı gelişen şartlara göre

VERİ YAPILARI 01 Java Temel Kavramlar

55

hatalardan arındırmayı, programı gelişen şartlara görebüyütmeyi, değişiklikler yapmayı kolaylaştırmak veanlaşılırlığı artırmak gibi birçok avantajı da beraberindegetirmektedir.

• Java’da temel modüller, sınıf (class) ve metotlardır(method). Metotlar yazılım içinde yeniden kullanılarakkodu ve yazılım geliştirme süresini kısaltmaktadır.

Page 56: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

METOTLAR (METHOD)

• Bir işlemin yapılması için bir veya daha fazla ifadekullanmak gerekir. Verilen bir matrisi ekrana yazdırmakgibi. İlgili kodu “yazdir()” adını verdiğimiz bir metot içineyazarak istediğimiz zaman, ismi ile çağırabiliriz.

• Java, matematik hesaplamalarını, string, karakter,girdi/çıktı işlemlerini ve diğerlerini yapmak için hazırsınıflar ve metotlar içermektedir. Ayrıca değişik alanlarda

VERİ YAPILARI 01 Java Temel Kavramlar

56

girdi/çıktı işlemlerini ve diğerlerini yapmak için hazırsınıflar ve metotlar içermektedir. Ayrıca değişik alanlardahazırlanmış veya kendimizin daha önceden hazırladığımetotları da kullanmak mümkündür.

• Hazır veya kullanıcı tanımlı paketleri,import java.util.Random;import java.util.*;biçimlerinde görüldüğü gibi “import” kullanılarak yüklenirler.

Page 57: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Java Paketleri

• Hazır Java paketleri içerisinde, birçok sınıf mevcuttur.

java.applet Java.net

java.awt Java.text

java.awt.event Java.util

VERİ YAPILARI 01 Java Temel Kavramlar

57

• Java.lang paketi, Java’da çok kullanılan sınıfları içerir. Bu pakettekijava.lang.Math sınıfı içerisinde bulunan bazı sahalar ve metotlarsonraki slaytlarda gösterilmiştir. (Sadece “lang” paketine özgüolarak, kullanıcının getirme “import” zorunluluğu yoktur)

java.awt.event Java.util

java.io Java.swing

Java.lang Java.swing.event …

Page 58: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Field Summary

static double E

static double PI

Method Summary

static double abs(double a) Returns the absolute value of a double value.

static float abs(float a) Returns the absolute value of a float value.

static int abs(int a) Returns the absolute value of an int value.

static long abs(long a) Returns the absolute value of a long value.

static double acos(double a)

Returns the arc cosine of a value; the returned angle is in the range 0.0

through pi.

static double asin(double a)

Returns the arc sine of a value; the returned angle is in the range -pi/2

through pi/2.

VERİ YAPILARI 01 Java Temel Kavramlar

58

through pi/2.

static double atan(double a)

Returns the arc tangent of a value; the returned angle is in the range -

pi/2 through pi/2.

static double atan2(double y, double x)

Returns the angle theta from the conversion of rectangular coordinates

(x, y) to polar coordinates (r, theta).

static double ceil(double a)

Returns the smallest (closest to negative infinity) double value that is

greater than or equal to the argument and is equal to a mathematical integer.

static double cos(double a)

Returns the trigonometric cosine of an angle.

static double exp(double a)

Returns Euler's number e raised to the power of a double value.

static double floor(double a)

Returns the largest (closest to positive infinity) double value that is

less than or equal to the argument and is equal to a mathematical integer.

Page 59: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Hazır java.lang.Math sınıfının bazı metotları

static double log(double a)

Returns the natural logarithm (base e) of a double value.

static double log10(double a)

Returns the base 10 logarithm of a double value.

static double max(double a, double b)

Returns the greater of two double values.

static double min(double a, double b)

Returns the smaller of two double values.

static double pow(double a, double b)

Returns the value of the first argument raised to the power of the

VERİ YAPILARI 01 Java Temel Kavramlar

59

Returns the value of the first argument raised to the power of the

second argument.

static long round(double a) Returns the closest long to the argument.

static double sin(double a) Returns the trigonometric sine of an angle.

static double sqrt(double a) Returns the correctly rounded positive square root of a

double value.

static double tan(double a) Returns the trigonometric tangent of an angle.

static double toDegrees(double angrad)

Converts an angle measured in radians to an approximately equivalent

angle measured in degrees.

static double toRadians(double angdeg)

Converts an angle measured in degrees to an approximately

equivalent angle measured in radians.

http://java.sun.com/javase/6/docs/api/java/lang/Math.html

Page 60: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

METOTLARIN GENEL BİÇİMİ

erişim dönüş_tipi isim(parametre listesi)

{

metodun gövdesi

}

VERİ YAPILARI 01 Java Temel Kavramlar

60

Erişim : public, private gibi

Dönüş_tipi : metodun döndürdüğü veri tipi. Değer döndürmüyorsa void.

Parametre listesi : “,” lerle ayrılmış tip ve parametre ismi.

Page 61: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Değer Döndürmeyen Metotlarvoid metotları

public void yazdir() {

System.out.println("Merhaba");

}

VERİ YAPILARI 01 Java Temel Kavramlar

61

}

Çağrılması :

yazdir();

Page 62: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Değer Döndüren Metotlar

public int topla(int a, int b) {return (a+b);

}

VERİ YAPILARI 01 Java Temel Kavramlar

62

Çağrılması :int y=topla(5,6);

Metodun iki de parametresi var.

Page 63: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Parametre, Argüman, Return

Argüman : Metoda aktarılan değer

Parametre : Argümanı kabul eden değişken

Return : Metottan çıkmak veya geri dönmek

VERİ YAPILARI 01 Java Temel Kavramlar

63

Return : Metottan çıkmak veya geri dönmek

Page 64: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Değişkenlerin Kapsama Alanı

{…int x = 5; if(sayi>5){int y = 12;… y değişkeninin tanımlı olduğu bölge

VERİ YAPILARI 01 Java Temel Kavramlar

64

… }// y tanımlı değil// x tanımlı}

for(int i=0; i<5; ++i)System.out.println(i);

i=10; // Hatalı!

y değişkeninin tanımlı olduğu bölge

Page 65: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Metotlar – Örnek 1int dizi[] = { 5,6,7,8 }; veya benzer şekilde verilen bir tamsayı dizisinin elemanlarının toplamını bulan metodu içeren java programını yazınız.

class DiziTopla{

public static void main(String args[]){

int dizi[] = { 5,6,7,8 };

VERİ YAPILARI 01 Java Temel Kavramlar

65

int dizi[] = { 5,6,7,8 };System.out.println(topla(dizi));

}public static int topla(int dizi[]){

int toplam = 0;for(int i=0; i<dizi.length; ++i)

toplam+=dizi[i];return toplam;

}}

Page 66: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Metotlar – Örnek 2class Ornek2{

public static void main(String args[]){

String str = "test";nyazdir(str,10);

VERİ YAPILARI 01 Java Temel Kavramlar

66

}

public static void nyazdir(String str, int n){

for(int i=0; i<n; ++i)System.out.println(str);

}}

Page 67: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Metotlar – Örnek 3Faktöriyel

class Ornek3{

public static String f(int n){

int carpim = 1;if (n<0) return "Invalid Input For Function";elsefor(int i=1; i<=n;++i)

VERİ YAPILARI 01 Java Temel Kavramlar

67

for(int i=1; i<=n;++i)carpim*=i;

return ""+carpim;}

public static void main(String args[]){

int sayi = 5;System.out.println(f(sayi));

}}

Sayı döndüren faktöriyel fonksiyonunu yazınız.

Page 68: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Geliştirilmiş for (enhanced for)

Java 5.0 ile gelen bir özelliktir.

For ( parameter : arrayName)Statement

VERİ YAPILARI 01 Java Temel Kavramlar

68

İki parçadan oluşur : • Type and identifier : “int sayi” gibi• arrayName : dolaşılacak (iterate) dizi

Ayrıca, diziler dışında koleksiyonların da dolaşılmasını sağlar.

Page 69: Veri Yapıları – 2010 Java Programlama Diline Giri şugur/11_12_Fall/DS/01_JavaIntro.pdf · • Java programlama dili Unicode’u kullanır. İkiye Tümleyen (Two’s Complement)

Varargs

Varargs (Variable arguments), bir metodun değişken sayıda parametre alabilmesidir.

Java 5.0'ın sunduğu kolaylıklardan biridir.

class DegSayParametre {

public static void merhabalar(String... names) {for (String name : names) {System.out.println("Merhaba " + name);

}

VERİ YAPILARI 01 Java Temel Kavramlar

69

Aynı amaçla dizi de kullanılabilir ama elemanları diziye yerleştirmekten kurtarır. Değerler metot içine dizi olarak gelir.

Bir metotta sadece 1 varargs bulunabilir.

}}

public static void main(String[] args) {merhabalar("Ali", "Veli", "Ayse");

}

}

Merhaba AliMerhaba VeliMerhaba Ayse