JAVADA PROGRAM DENET İ M İ VE OPERATÖRLER. int a ; a=4 ; // do ğ ru bir atama 4=a ; // yanlış bir atama!

Slides:



Advertisements
Benzer bir sunumlar
Programlama-II (Java ile Bilgisayar Programlama)
Advertisements

Java Programlama Giriş/Çıkış
Ders İçeriği Ağaç Veri Modeli Tanım ve Gerçekleştirim İkili Ağaç
OPERATÖRLER.
SCANNER SINIFI ve KLAVYEDEN VERİ OKUNMASI
Değişken , Veri Türleri ve Operatörler
BÖLÜM Atama Deyimi (Assignment)
Değişkenler ve bellek Değişkenler
JavaScript Birinci Hafta.
OPERATÖRLER Programlama dillerinde tanımlanmış sabit ve değişkenler üzerinde işlemler yapmayı sağlayan karakter ya da karakter topluluklarına operatör.
Programlama-II (Java ile Bilgisayar Programlama)
Bölüm 4 – Kontrol İfadeleri:1.kısım
EDUTIME Java Day 4 Serdar TÜRKEL.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
BPR151 ALGORİTMA VE PROGRAMLAMA - I
Özyinelemeli(Recursive) Algoritma Tasarımı
Karar ifadeleri ve Döngüler
P AKET E RIŞIMLERI SıNıFLARıN YENIDEN KULLANıMı. P AKET ( P ACKAGE ) Paketler kütüphaneleri oluşturan elemanlardır. import java.io.BufferedReader; BufferedReader.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Sınıfların Tekrardan Kullanılması
Operatörler.
Nesneye Yönelik Programlama Dr. Pelin GÖRGEL
DİZİLER.
P 2. Ünitede Nesneye Dayalı Programlama anlatılıyor. p Nesneye dayalı programlama yeni veri tiplerinin ve bu tipleri işletmek için gereken işlemleri oluşturmayı.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
DELEGATE OOP-UYG.
Erişim Denetimi, Fonksiyon
C# Metot Overloading (Aşırı yükleme)
Sorular? Öneriler?. Referanslar Referanslar (Tekrar) Eğer aşağıdaki gibi yazarsak ne olur: int x; double y; char c; ???
Nesneye Yönelik Programlama (2. Sunu). Konsol Üzerinde Türkçe Karakterler Görebilmek İçin…
JAVA İ LE PROGRAMLAMAYA G İ R İ Ş Ekim Dr. Galip Aydın.
.Net teknolojisi ve C# Yasin Gedik Dokuz Eylül Üniversitesi (4. Sınıf) Microsoft Danışman Öğrenci
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
Java Sınıf ve Nesne Kavramı UML Gösterimi
BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL
JAVA İLE PROGRAMLAMAYA GİRİŞ
Önceki Dersi Hatırlama !!
DEĞİŞKENLER.
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
JAVA’DA DÖNGÜLER.
EDUTIME Java Day 8 Serdar TÜRKEL.
Numaralandırmalar(Enumaration)
Class KahveFincani { public KahveFincani() { System.out.println("KahveFincani..."); } } public class YapilandirciBasitOrnek { public static void main(String[]
JAVA’DA DİZİLER Dr.Galip AYDIN.
Sınıflar ve Nesneler Sınıf: bir nesnenin şablonunu, kalıbını, şeklini, davranışını, kalıtımını değişkenleri, metodları ve ebeveynleri vasıtasıyla tanımlar.
Trees, Vectors, Iterators. ADT Abstract Data Type (ADT) vs implementation -Soyut Veri Türleri - Uygulamaları.
Ders İçeriği Liste Soyut veri yapısı (ADT)
Bölüm 5 Nesneler ve Metotlar
Bil 102 Bölüm 6 Diziler.
Bil 102 Bölüm 3 Java’da Program Akış Denetimi Bil 1021.
İNTERNET PROGRAMCILIĞI I BTP 207 Ders 8.  Tamsayı Değerler (Integer) Tamsayılar, 10 tabanlı (decimal), 8 tabanlı (octal) veya 16 tabanlı (hexadecimal)
Outline 4.1 Giriş 4.2 Algoritmalar 4.3 Pseudocode 4.4 Kontrol İfadeleri 4.5 if tek-seçimli ifadeler 4.6 if else seçimli ifadeler 4.7 while döngü ifadeleri.
Değerler ve Değişkenler
JAVA PROGRAMLAMA ORNEKLER
Görsel C# ile Windows Programlama
ODTU-SEM Copyright (c) 2011 Kalıtım(Inheritance) Subclass lar tüm method ve attributes larının superclass ından alırlar. Bu işlem için extends keyword.
SINIFLAR ve NESNELER. İlk sınıfımızı ekleyelim class KrediHesap { public ulong HesapNo; public double Limit; public string KartSahibi; }
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Değişkenler Sabitler İşlemciler İfadeler Deyimler 1 Programlama Dillerinin Temel Elemanları (Hafta5) BSM208 PROGRAMLAMA DİLLERİNİN PRENSİPLERİ.
Bölüm 4 Seçme Komutları Alıştırmalar
Programlama Dillerinin Temel Elemanları
2- C# BAŞLANGIÇ Nesne Yönelimli Programlama - i
3- VERİ TİPLERİ - OPERATÖRLER Nesne Yönelimli Programlama - i
ARDUİNO Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri
Veri Tipleri 12/4/2018.
Bilgisayar Programlama
BLM-111 PROGRAMLAMA DİLLERİ I Ders-2 Değişken Kavramı ve Temel Operatörler Yrd. Doç. Dr. Ümit ATİLA
JAVA’DA DİZİLER. Özet  Dizi: belirli sayıda ve aynı veri türünden de ğ işkenlere aynı adla erişilmesini sa ğ layan bir yapıdır.  Dizilerde döngü işlemleri.
Kurucular(Yapıcılar), Yıkıcılar
Nesneye Dayalı Programlama 1
Sunum transkripti:

JAVADA PROGRAM DENET İ M İ VE OPERATÖRLER

int a ; a=4 ; // do ğ ru bir atama 4=a ; // yanlış bir atama!

Atama işlemi, temel (primitive) tipler için basittir. Temel tipler, de ğ erleri do ğ rudan kendileri üzerlerinde tuttukları için, bir temel tipi di ğ erine atadı ğ ımız zaman de ğ işen sadece içerikler olur. int a, b ; a=4 ; b=5 ; a=b ;

Nesneler için atama işlemleri, temel tiplere göre biraz daha karmaşıktır. Nesneleri yönetmek için referanslar kullanılır; e ğ er, nesneler için bir atama işlemi söz konusu ise, akla gelmesi gereken ilk şey, bu nesnelere ba ğ lı olan referansın gösterdi ğ i hedeflerde bir de ğ işiklik olaca ğ ıdır.

class Sayi { int i; } public class NesnelerdeAtama { public static void main(String[] args) { Sayi s1 = new Sayi(); Sayi s2 = new Sayi(); s1.i = 9; s2.i = 47; System.out.println("1: s1.i: " + s1.i +", s2.i: " + s2.i); s1 = s2; // referanslar kopyalaniyor.. nesneler degil System.out.println("2: s1.i: " + s1.i +", s2.i: " + s2.i); s1.i = 27; System.out.println("3: s1.i: " + s1.i +", s2.i: " + s2.i); }

Yordamların parametre kabul ettiklerini ve bu parametreleri alarak işlemler gerçekleştirdi ğ ini biliyoruz. Peki yordamlara parametre olarak neler gitmektedir? Nesnelerin kendisi mi? Yoksa nesnelere ait referanslar mı?

class Harf { char c; } public class Pas { static void f(Harf h) { /* Harf nesnesine yeni bir referans ba ğ landı (h), yoksa oluşturulan Harf nesnesinin veya yeni bir Harf nesnesinin bu yordama gönderilmesi gibi birşey söz konusu de ğ ildir. */ h.c = 'z'; } public static void main(String[] args) { Harf x = new Harf(); // Harf nesnesini oluşturuluyor. x.c = 'a'; // Harf nesnesinin c alanına de ğ er atandı System.out.println("1: x.c: " + x.c); f(x); // dikkat System.out.println("2: x.c: " + x.c); }

public class IlkelPas { static void f(double a) { System.out.println(a + " gonderildi"); a = 10 ; System.out.println("gonderilen parametrenin degeri 10'a” + “esitlendi"); } public static void main(String[] args) { double a = 5 ; f(a); System.out.println("a --> " + a ); }

IlkelPas uygulamasında double tipindeki a de ğ işkenine 5 de ğ eri atanmaktadır; daha sonra bu de ğ işkenimiz double tipinde parametre kabul eden f() yordamına gönderilmektedir. f() yordamı içerisinde a=10 ifadesi, gerçekte, main() yordamı içerisindeki double tipindeki a de ğ işkeni ile hiç bir ilgisi yoktur. Bu iki de ğ işken birbirlerinden tamamen farklıdırlar. Sonuç olarak, temel tipler de ğ erleri kendi üzerlerinde taşırlar. Yordamlara gönderilen parametreler yerel de ğ işkenler gibidir.

Operatörler programlama dillerinin en temel işlem yapma yetene ğ ine sahip simgesel isimlerdir. Tüm programlama dillerinde önemli bir yere sahip olup bir işlem operatör ile gerçekleştirilebiliyorsa “en hızlı ve verimli ancak bu şekilde yapılır” denilebilir. Yalnızca bir operatör ile gerçekleştirilemeyen işlemler, ya bir grup operatörün biraraya getirilmesiyle ya da o işlemi gerçekleştirecek bir yordam (method) yazılmasıyla sa ğ lanır. Java dili oldukça zengin ve esnek operatör kümesine sahiptir; örne ğ in matematiksel, mantıksal, koşulsal, bit düzeyinde vs. gibi birçok operatör kümesi vardır; ve, bunlar içerisinde çeşitli operatörler bulunmaktadır: Aritmetik Operatör İ lişkisel Operatör Mantıksal Operatörler Bit düzeyinde (bitwise) Operatörler

Operatörler, genel olarak, üzerinde işlem yaptı ğ ı de ğ işken/sabit sayısına göre tekli operatör (unary operator) veya ikili operatör (binary operator) olarak sınıflanmaktadır; 3 adet de ğ işken/sabite ihtiyaç duyan operatörlere de üçlü operatör denilir. Yani, tek de ğ işken/sabit üzerinde işlem yapan operatör, iki de ğ işken/sabit üzerinde işlem yapan operatör gibi... Tekli operatörler hem ön-ek (prefix) hem de son-ek (postfix) işlemlerini desteklerler. Ön-ek’ten kastedilen anlam operatörün de ğ işkenden önce gelmesi, son-ke’ta de operatörden sonra gelmesidir..

operatör de ğ işken //ön-ek ifadesi Son-ek işlemlerine örnek olarak, de ğ işken operatör // son-ek ifadesi İ kili operatörlerde operatör simgesi ara-ek (infix) olarak iki de ğ işkenin ortasında bulunur: de ğ işken1 operatör de ğ işken2 //ara-ek Üçlü operatörlerde ara-ek (infix) işlemlerde kullanılır. Java’da üçlü operatör bir tanedir. de ğ işken1 ? de ğ işken2 : de ğ işken3 //ara ek

Java programlama dili kayan-noktalı (floating-point) ve tamsayılar için birçok aritmetik işlemi destekleyen çeşitli operatörlere sahiptir. Bu işlemler toplama operatörü (+), çıkartma operatörü (-), çarpma operatörü (*), bölme operatörü (/) ve son olarak da artık bölme (%) operatörüdür.

OperatörKullanılışAçıklama + de ğ işken1 + de ğ işken2de ğ işken1 ile de ğ işken2’yi toplar - de ğ işken1 - de ğ işken2de ğ işken1 ile de ğ işken2’yi çıkarır * de ğ işken1 * de ğ işken2de ğ işken1 ile de ğ işken2’yi çarpar / de ğ işken1 / de ğ işken2de ğ işken1, de ğ işken2 tarafından bölünür % de ğ işken1 % de ğ işken2de ğ işken1’in de ğ işken2 tarafından bölümünden kalan hesaplanır

public class AritmetikOrnek { public static void main(String[] args) { // De ğ işkenler atanan de ğ erler int a = 57, b = 42; double c = , d = 7.22; System.out.println(“Degisken Degerleri...”); System.out.println(“ a = “ + a); System.out.println(“ b = “ + b); System.out.println(“ c = “ + c); System.out.println(“ d = “ + d); // Sayıları topluyoruz System.out.println(“Toplama...”); System.out.println(“ a + b = “ + (a + b)); System.out.println(“ c + d = “ + (c + d)); // Sayıları çıkartıyoruz System.out.println(“Cikartma...”); System.out.println(“ a - b = “ + (a - b)); System.out.println(“ c - d = “ + (c - d)); // Sayıları Çarpıyoruz.

System.out.println(“Carpma...”); System.out.println(“ a * b = “ + (a * b)); System.out.println(“ c * d = “ + (c * d)); // Sayıları bölüyoruz System.out.println(“Bolme...”); System.out.println(“ a / b = “ + (a / b)); System.out.println(“ c / d = “ + (c / d)); // Bölme işlemlerinden kalan sayıyı hesaplıyoruz System.out.println(“Kalan sayiyi hesaplama...”); System.out.println(“ a % b = “ + (a % b)); System.out.println(“ c % d = “ + (c % d)); // double ve int tiplerini karışık şekilde kullanıyoruz. System.out.println(“Karisik tipler...”); System.out.println(“ b + d = “ + (b + d)); System.out.println(“ a * c = “ + (a * c)); }

Verilen örnek dikkatlice incelenecek olursa, tamsayı ile kayan noktalı sayılar bir operatörün de ğ işkenleri olursa sonuç kayan noktalı sayı olmaktadır. Bu işlemde tamsayı, kendili ğ inden kayan noktalı sayıya çevrilir

Temel bir veri tipi di ğ er bir temel tipe dönüştürebilir; fakat, oluşacak de ğ er kayıplarından tasarımcı sorumludur

public class IlkelDonusum { public static void main(String args[]) { int a = 5; double b = (double) a; double x = 4.15 ; int y = (int) x ; long z = (long) y ; System.out.println(“b = “ + b + “ y = “ + y + “ z = “ + z); } }

OperatörKullanış ŞekliAçıklama ++ de ğ işken++Önce de ğ işkenin de ğ erini hesaplar sonra de ğ işkenin de ğ erini bir arttırır de ğ işkenÖnce de ğ işkenin de ğ erini arttırır sonra de ğ işkenin de ğ erini hesaplar. -- de ğ işken--Önce de ğ işkenin de ğ erini hesaplar sonra de ğ işkenin de ğ erini bir azaltır de ğ işkenÖnce de ğ işkenin de ğ erini azaltır sonra de ğ işkenin de ğ erini hesaplar.

Örne ğ in (++a veya --a) şeklinde verilmesinde, önce matematiksel toplama/çıkartma işlemi gerçekleşir; daha sonra de ğ er üretilir. Ancak, (a++ veya a--) şeklinde verilmesi durumunda ise, önce de ğ er üretilir; daha sonra matematiksel toplama/çıkartma işlemi gerçekleşir. Aşa ğ ıda verilen kısa program bunu güzel bir şekilde ifade etmektedir:

public class OtomatikArtveAz { static void ekranaYaz(String s) { System.out.println(s); } public static void main(String[] args) { int i = 1; ekranaYaz("i : " + i); ekranaYaz("++i : " + ++i); // önek artırım ekranaYaz("i++ : " + i++); // sonek artırım ekranaYaz("i : " + i); ekranaYaz("--i : " + --i); // önek azaltma ekranaYaz("i-- : " + i--); // sonek azaltma ekranaYaz("i : " + i); }

OperatörKullanılış Şekli True de ğ eri döner e ğ er ki > de ğ işken1 > de ğ işken2de ğ işken1, de ğ işken2’den büyükse >= de ğ işken1 >= de ğ işken2de ğ işken1, de ğ işken2’den büyükse veya eşitse < de ğ işken1 < de ğ işken2de ğ işken1, de ğ işken2’den küçükse <= de ğ işken1 <= de ğ işken2de ğ işken1, de ğ işken2’den küçükse veya eşitse == de ğ işken1 == de ğ işken2de ğ işken1, de ğ işken2’ye eşitse != de ğ işken1 != de ğ işken2de ğ işken1, de ğ işken2’ye eşit de ğ ilse

Public class IliskiselDeneme { public static void main(String[] args) { // de ğ işken bildirimleri int i = 37, j = 42, k = 42; System.out.println(“Degisken degerleri...”); System.out.println(“ i = “ + i); System.out.println(“ j = “ + j); System.out.println(“ k = “ + k); //Büyüktür System.out.println(“Buyuktur...”); System.out.println(“ i > j = “ + (i > j)); //false - i, j den küçüktür System.out.println(“ j > i = “ + (j > i)); //true - j, i den Büyüktür System.out.println(“ k > j = “ + (k > j)); //false - k, j ye eşit //Büyüktür veya eşittir System.out.println(“Buyuktur veya esittir...”); System.out.println(“ i >= j = “ + (i >= j)); //false - i, j den küçüktür System.out.println(“ j >= i = “ + (j >= i)); //true - j, i den büyüktür System.out.println(“ k >= j = “ + (k >= j)); //true - k, j’ye eşit //Küçüktür System.out.println(“Kucuktur...”); System.out.println(“ i < j = “ + (i < j)); //true - i, j’den küçüktür System.out.println(“ j < i = “ + (j < i)); //false - j, i’ den büyüktür System.out.println(“ k < j = “ + (k < j)); //false - k, j’ye eşit //Küçüktür veya eşittir

System.out.println(“Kucuktur...”); System.out.println(“ i < j = “ + (i < j)); //true - i, j’den küçüktür System.out.println(“ j < i = “ + (j < i)); //false - j, i’ den büyüktür System.out.println(“ k < j = “ + (k < j)); //false - k, j’ye eşit //Küçüktür veya eşittir System.out.println(“Kucuktur veya esittir...”); System.out.println(“ i <= j = “ + (i <= j)); //true - i, j’den küçüktür System.out.println(“ j <= i = “ + (j <= i)); //false - j, i den büyüktür System.out.println(“ k <= j = “ + (k <= j)); //true - k, j ye eşit //Eşittir System.out.println(“Esittir...”); System.out.println(“i == j =“ + (i == j)); //false - i, j’den küçüktür System.out.println(“ k == j = “ + (k == j)); //true - k, j’ye eşit //Eşit de ğ il System.out.println(“Esit degil...”); System.out.println(“ i != j = “ + (i != j)); //true - i, den küçüktür System.out.println(“ k != j = “ + (k != j)); //false - k, ye eşit }}

“+” operatörü String verilerde birleştirme görevi görür; e ğ er ifade String ile başlarsa, onu izleyen veri tipleri de kendili ğ inden String’e dönüştürülür. Bu dönüştürme sırrı ve ayrıntısı ilerleyen bölümlerde ele alınmaktadır:

public class OtamatikCevirim { public static void main(String args[]) { int x = 0, y = 1, z = 2; System.out.println(“Sonuc =” + x + y + z); }

Uygulama Çalışmaları: 1- Yukarıdaki “aritmetikornek.java” programını, kullanıcıdan alaca ğ ınız 2 sayı ve yine kullanıcıdan alaca ğ ınız “+ “,”- “ gibi operatörler ile dört işlem yapılacak halde yeniden yazınız. Örnek çıktı: Birinci sayi=5 İ kinci sayi=25 Operatör= / Sonuc=0.2