JAVA ile DAĞITIK PROGRAMLAMA

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "JAVA ile DAĞITIK PROGRAMLAMA"

Transkript

1 KARADENİZ TEKNİK ÜNİVERSİTESİ Bilgisayar Mühendisliği Bölümü Bilgisayar Sistemleri Laboratuarı JAVA ile DAĞITIK PROGRAMLAMA 1. Giriş JAVA, ağdaki programların haberleşmesi için TCP ve UDP olmak üzere iki farklı socket türü kullanır. Her iki socket türü de haberleşmede Client-Server ilişkisini kullanır. Bu deneyde TCP socket kullanılarak Server ve Client bilgisayarlar için yazılacak socket programları ile JAVA ile dağıtık programlama anlatılacaktır. Örnek programlar An Introduction to Network Programming with Java adlı kitaptan alınmıştır. 2. Server Socket Setlemeleri Burada Client bilgisayar ile haberleşme için gerekli Server Socket setlemeleri anlatılacaktır: 2.1. ServerSocket Nesnesi Türetme servsock isimli ServerSocket nesnesi arası yani özel amaçlar için ayrılmış numaraların dışında bir port numarası seçerek aşağıdaki gibi oluşturulur: ServerSocket servsock = new ServerSocket(1234); 2.2. Server ı Bekleme Konumuna Getirme servsock, ServerSocket sınıfına ait accept methodunu kullanarak herhangi bir Client ın bağlanmasını bekler. Bağlantı kurulduğunda aşağıdaki gibi link isimli bir Socket nesnesi türetilir: Socket link = servsock.accept(); 2.3. Gönderilecek/Alınacak Veriler için Input/Output Stream Setleme Client bilgisayardan gelecek mesajları almak ve ona mesaj göndermek üzere Socket sınıfına ait getinputstream ve getoutputstream methodları kullanılarak input ve output isimli stream nesneleri aşağıdaki gibi türetilir: Scanner input = new Scanner(link.getInputStream()); PrintWriter output = new PrintWriter(link.getOutputStream(),true); 2.4. Veri Gönderme ve Alma Veri gönderme ve alma işlemleri için sırasıyla println ve nextline methodları kullanılır : output.println(... ); String message = input.nextline();

2 2.5. Bağlantıyı Sonlandırma Bağlantı Socket sınıfının close methodu ile sonlandırılır: link.close(); 3. Client Socket Setlemeleri Server ile bağlantı kurma dışındaki Client Socket setlemeleri yukarıda Server için anlatılanlarla ayınıdır. Server ile bağlantı kurmak için link isimli Socket nesnesi Server ın ismi (veya IP adresi) ve port numarası parametreleri yardımıyla aşağıdaki gibi türetilir: Socket link = new Socket( ServerName, 1234); 4. Client-Server Programı Aşağıda örnek bir Client-Server programı ve ekran çıktısı verilmiştir. Öncelikle TCPServer.java programı koşularak Server başlatılır. Sonra TCPClient.java koşularak Server ile bağlantı kurulur. Bu örnekte Client tarafından gönderilen mesajlar Server tarafından sayılır ve BYE BYE mesajı geldiğinde bağlantı sonlandırılırken toplam mesaj sayısı yazılır. TCPServer.java import java.io.*; import java.net.*; import java.util.*; public class TCPServer private static ServerSocket servsock; private static final int PORT = 1234; public static void main(string[] args) servsock = new ServerSocket(PORT); System.out.println("Waiting for connection...\n"); System.out.println("Unable to attach to port!"); do while (true); handleclient(); 2

3 private static void handleclient() Socket link = null; String message = null; link = servsock.accept(); Scanner input = new Scanner(link.getInputStream()); PrintWriter output = new PrintWriter(link.getOutputStream(),true); int nummessages = 1; TCPClient.java import java.io.*; import java.net.*; import java.util.*; message = input.nextline(); while (!message.equals("bye BYE")) System.out.println("Received Message : " + message); nummessages++; message = input.nextline(); output.println(nummessages + " messages received."); ioex.printstacktrace(); Finally System.out.println("Because of Received Message : " + message); System.out.println(" * Closing connection... *"); link.close(); System.out.println("Unable to disconnect!"); public class TCPClient private static InetAddress host; private static final int PORT = 1234; public static void main(string[] args) //host = InetAddress.getByName("ServerName"); host = InetAddress.getLocalHost(); System.out.println("Connected to Server"); catch(unknownhostexception uhex) System.out.println("Host ID not found!"); accessserver(); 3

4 private static void accessserver() Socket link = null; link = new Socket(host,PORT); Scanner input = new Scanner(link.getInputStream()); PrintWriter output = new PrintWriter(link.getOutputStream(),true); Scanner useren = new Scanner(System.in); String message, response; do System.out.print("Enter message : "); message = useren.nextline(); output.println(message); while (!message.equals("bye BYE")); response = input.nextline(); System.out.println("\nSERVER > "+response); ioex.printstacktrace(); finally System.out.println("* Closing connection... *"); link.close(); System.out.println("Unable to disconnect!"); SERVER [0]Waiting for connection... [3]Received Message : MERHABA [5]Received Message : NASILSIN [7]Because of Received Message : BYE BYE * Closing connection... * CLIENT [1]Connected to Server [2]Enter message : MERHABA [4]Enter message : NASILSIN [6]Enter message : BYE BYE [8]SERVER > 3 messages received. * Closing connection... * 4

5 5. Multithreading Java ile dağıtık programlamada Server bilgisayara 1 den fazla Client bilgisayarın bağlantı kurması durumunda her bir Client bilgisayar için bir thread başlatılır. Bunun için öncelikle Thread sınıfı miraslanarak bir thread nesnesi türetilir. start methodu ile bu threadin yapacağı işin kodunu barındıran run methodu çağrılır. Çok sayıda thread aynı anda koşarken birbirlerine zaman ayırmaları için sleep methodu kullanılır ve parametre olarak aldığı milisaniye cinsinden zaman kadar askıda durur. Aşağıdaki örnek programda biri 5 kere Hello ; diğeri de 1-5 arası sayıları ekrana yazan iki threadi çağıran ThreadHelloCount adlı java programı ve çıktısı verilmiştir: ThreadHelloCount.java import java.io.*; public class ThreadHelloCount public static void main(string[] args) HelloThread hello = new HelloThread(); CountThread count = new CountThread(); hello.start(); count.start(); class HelloThread extends Thread public void run() for (int i=0; i<5; i++) System.out.println("Hello!"); sleep((int)(math.random()*1000)); catch (InterruptedException interruptex) System.out.println(interruptEx); class CountThread extends Thread public void run() for (int i=0; i<5; i++) System.out.println(i); sleep((int)(math.random()*1000)); catch (InterruptedException interruptex) System.out.println(interruptEx); Hello! 0 1 Hello! 2 3 Hello! Hello! 4 Hello! 5

6 Yukarıdaki program çıktısına dikkat edilirse threadler farklı sıklıklarla çağrılmıştır. Bunun nedeni sleep methodundaki Math.random()*1000 ifadesidir. Böylece random fanksiyonu ile her bir thread 0 ile 1 saniye arasında değişen farklı sürelerde askıda durmaktadır. Dolayısıyla ThreadHelloCount adlı program her koşuşunda farklı bir çıktı üretecektir. Aşağıda, daha önce anlatılan TCPServer ve TCPClient programlarının multithreading versiyonu verilmiştir. MutiServer.java programı, Thread sınıfını miraslayan ClientHandler sınıfı herbir Client bağlantısında bir thread başlatmaktadır. MultiClient.java programı TCPClient ile hemen hemen aynıdır. MultiServer.java import java.io.*; import java.net.*; import java.util.*; public class MultiServer private static ServerSocket serversocket; private static final int PORT = 1234; public static void main(string[] args) throws IOException serversocket = new ServerSocket(PORT); catch (IOException ioex) System.out.println("\nUnable to set up port!"); do Socket client = serversocket.accept(); System.out.println("\nNew client accepted.\n"); ClientHandler handler = new ClientHandler(client); handler.start(); //As usual, method calls run. while (true); class ClientHandler extends Thread private Socket client; private Scanner input; private PrintWriter output; public ClientHandler(Socket socket) //Set up reference to associated socket... client = socket; input = new Scanner(client.getInputStream()); output = new PrintWriter( client.getoutputstream(),true); ioex.printstacktrace(); 6

7 public void run() String received; do //Accept message from client on the socket's input stream... received = input.nextline(); //Echo message back to client on the socket's output stream... output.println("echo: " + received); while (!received.equals("quit")); //Repeat above until 'QUIT' sent by client... if (client!=null) System.out.println("Closing down connection..."); client.close(); System.out.println("Unable to disconnect!"); MultiClient.java import java.io.*; import java.net.*; import java.util.*; public class MultiClient private static InetAddress host; private static final int PORT = 1234; public static void main(string[] args) //host = InetAddress.getByName("ServerName"); host = InetAddress.getLocalHost(); catch(unknownhostexception uhex) System.out.println("\nHost ID not found!\n"); sendmessages(); 7

8 private static void sendmessages() Socket socket = null; socket = new Socket(host,PORT); Scanner networkinput = new Scanner(socket.getInputStream()); PrintWriter networkoutput = new PrintWriter(socket.getOutputStream(),true); Scanner useren = new Scanner(System.in); String message, response; do System.out.print("Enter message ('QUIT' to exit): "); message = useren.nextline(); networkoutput.println(message); response = networkinput.nextline(); System.out.println("\nSERVER> " + response); while (!message.equals("quit")); ioex.printstacktrace(); finally System.out.println("\nClosing connection..."); socket.close(); System.out.println("Unable to disconnect!"); 6. Synchronized Thread ler Farklı threadlerin ortak kullandıkları kaynaklara eşzamanlı erişimleri yanlış sonuçlar üretmeye neden olabilir. O yüzden ortak kaynaklara erişimi engelleyecek bir mekanizmaya ihtiyaç vardır. Java synchronized anahtar kelimesi ile bunu gerçekleştirir. Örneğin aşağıdaki methodda ortak kullanılan sum adlı değişkenin aynı anda farklı threadler tarafından güncellenmemesi için updatesum adlı method synchronized yapılmıştır. public synchronized void updatesum(int amount) sum+=amount; Synchronized bir methodu koşan thread e o anlık bir iş düşmüyorsa wait methodunu çağırarak synchronized method üzerindeki kilidi kaldırır ve böylece diğer threadlerin de o methodu koşmasına izin verir. Eğer bir thread işini tamamlamışsa ve wait konumundaki başka bir thread in çalışmasını sağlamak istiyorsa notify methodunu kullanır. Wait konumundaki bütün threadlerin çalıştırılması için de notifyall methodu kullanılır. Bu durumda hangi thread e öncelik verileceğine JVM karar verir. 8

9 6.1. Producer-Consumer Problemi Bilindiği gibi producer-consumer probleminde producerın ürettiği consumerın tükettiği ortak kaynak kullanılmaktadır. Burada en önemli problem kaynağa eş zamanlı erişimi engelleyerek tutarlılığı sağlamaktır. Yukarıda da bahsedildiği gibi producer ve consumerın ortak çağırdıkları methodlar synchronized yapılarak tutarlı bir kaynak güncellemesi yapılabilecektir. Producer-consumer uygulaması, kaynak kodlardan Multi Producer-Consumer adlı klasörün içindedir. Producer ve consumerın ortak erişeceği, kaynak (resourse) üretme ve tüketme işini yapan addone ve takeone methodları, Resourse.java programı içindedir. ResourseServer.java programı öncelikle item isimli bir Resourse nesnesi türetir ve bu nesneyi parametre vererek türettiği Producer türünden producer isimli thread nesnesinde addone methodunu sürekli çağırarak kaynak üretmeye başlar. ResourseServer adından da anlaşılabileceği gibi aynı zamanda bir server programıdır. Kaynak üreten server programıdır. Kaynak tüketimi de bu servera bağlanan clientlar tarafından yapılacaktır. Bağlantı kurulduğunda ResourseServer programında handler isimli bir ClientThread threadi başlatılır ve clientlerın isteklerine cevap verilir. Client bilgisayar 1 karakteri yolladıkça kaynakları tutan item nesnesinin takeone methodu çağrılarak kaynak harcanır. 0 karakteri ile de bağlantı sonlandırılır. Kaynak üretimi belli bir MAX (5) değerle sınırlandırılmıştır. Bu değere ulaşıldığında wait methodu çağrılarak clientların kaynağı harcaması beklenir. Ayrıca herhangi bir kaynak üretildiğinde de yine tüketilebilmesi için notifiyall methodu ile clientlara bilgi verilir. 7. Deneye Hazırlık Bölüm 6.1. de anlatılan Producer-Consumer uygulamasında Client bilgisayarda koşacak program Multithreading uygulamasındaki MultiClient.java programına çok benzediği için ayrıca anlatılmamıştır. MultiClient.java programının ismini ConsumerClient.java olarak değiştiriniz ve gerekli değişiklikleri yaparak Producer-Consumer uygulamasının doğru bir şekilde çalışmasını sağlayınız. Yazdığınız programı deneye getiriniz. 8. Deneyin Yapılışı Resource.java programı ekrana addone methodunda üretilen, takeone da da kalan numresources toplam kaynak sayısını yazmaktadır. Bunun yerine Resourse.java programına ( Deneyin Yapılışı adlı klasördeki basit bir Stack uygulamasından da yararlanarak) Stack ekleyip, addone methodu çağrıldığında hangi kaynağın üretildiğini PUSHED ITEM = 55 şeklinde, takeone çağırıldığında da hangi kaynağın tüketildiğini POPED ITEM = 55 şeklinde ekrana yazınız. Burada üretilen kaynak numresources değişkeninden farklı olarak arası random belirlensin. Dolayısıyla stack e itilen ve stack ten çekilen değerler de arası olacaktır. Stack in dolu veya boş olduğu bilgisini de STACK IS FULL/EMPTY şeklinde ekrana yazınız. Resourse.java programının başında java.util.*; adlı package i import etmeyi unutmayınız. ResourseServer.java, ConsumerClient.java ya YOU POPED = 55 şeklinde stackten çekilen değeri yollasın. ConsumerClient.java programından gelen isteklere ( 1 veya 0 ) bağlı olarak ResourseServer.java ve ConsumerClient.java programlarının ekran çıktısı aşağıdakine benzer olmalıdır : 9

10 RESOURSESERVER.JAVA CONSUMERCLIENT.JAVA PUSHED ITEM = 55 Enter message ('0' to exit): 1 New client accepted. SERVER> YOU POPED = 55 POPED ITEM = 55 Enter message ('0' to exit): 1 PUSHED ITEM = 21 SERVER> YOU POPED = 21 POPED ITEM = 21 Enter message ('0' to exit): 1 STACK IS EMPTY SERVER> YOU POPED = 12 PUSHED ITEM = 12 Enter message ('0' to exit): 1 POPED ITEM = 12 SERVER> YOU POPED = 73 STACK IS EMPTY Enter message ('0' to exit): 1 PUSHED ITEM = 73 SERVER> YOU POPED = 6 POPED ITEM = 73 Enter message ('0' to exit): 1 PUSHED ITEM = 51 SERVER> YOU POPED = 51 PUSHED ITEM = 6 Enter message ('0' to exit): 1 POPED ITEM = 6 SERVER> YOU POPED = 47 POPED ITEM = 51 Enter message ('0' to exit): 0 STACK IS EMPTY SERVER> Connection closed... PUSHED ITEM = 47 Closing connection... POPED ITEM = 47 Process completed. PUSHED ITEM = 48 PUSHED ITEM = 18 PUSHED ITEM = 17 PUSHED ITEM = 0 PUSHED ITEM = 70 STACK IS FULL Closing down connection Rapor Raporu programların olduğu klasördeki şablon belgeyi kullanarak yazınız. Rapor grup adına yazılacaktır. Her öğrencinin ayrı ayrı rapor yazmasına gerek yoktur. Raporun son teslim tarihi sonraki hafta deney saatidir. Daha geç verilen raporlar değendirilmeyecektir. 9. Değerlendirme Kriterleri Deney notu aşağıdaki kriterlere göre verilecektir: DENEYE HAZIRLIK DENEYİN YAPILIŞI RAPOR 40 PUAN 40 PUAN 20 PUAN 10

KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUARI. Soket Programlama

KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUARI. Soket Programlama KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUARI Soket Programlama 1. Giriş JAVA dili süreçler arası iletişim için TCP ve UDP olmak üzere iki farklı soket yapısı

Detaylı

Görsel Programlama DERS 12. Görsel Programlama - Ders12/

Görsel Programlama DERS 12. Görsel Programlama - Ders12/ Görsel Programlama DERS 12 1 Java Ağ İşlemleri (Java Networking) Birbirleri ile ağ araçları ve kabloları ile bağlantılı bilgisayarlar bir ağ sistemi oluştururlar. İnternet, şirketlerin yerel bilgisayar

Detaylı

Soket, bir sunucu programı ve bir veya birden çok istemci programı arasında çift yönlü iletişim kuran bir yazılım uç noktasıdır.

Soket, bir sunucu programı ve bir veya birden çok istemci programı arasında çift yönlü iletişim kuran bir yazılım uç noktasıdır. Bölüm 24 Java Ağ Uygulamaları 24.1 Java Soket Programlama Soket, bir sunucu programı ve bir veya birden çok istemci programı arasında çift yönlü iletişim kuran bir yazılım uç noktasıdır. Sunucu programı

Detaylı

BİL132 Bilgisayar Programlama II

BİL132 Bilgisayar Programlama II BİL132 Bilgisayar Programlama II 8. Olağandışı durumlar (exceptions) Hacettepe Üniversitesi Bilgisayar Mühendisliği Bölümü Yüksel Tarhan Olağandışı durum Kütük bulunamadı Diskte yer kalmadı Nesne referans

Detaylı

BMS-302 İleri Web Programlama. İş Parçacığı (Thread) ve Soket (Socket) Programlama

BMS-302 İleri Web Programlama. İş Parçacığı (Thread) ve Soket (Socket) Programlama BMS-302 İleri Web Programlama İş Parçacığı (Thread) ve Soket (Socket) Programlama İş Parçacıkları (Threads) Ana programa paralel çalışan işler oluşturmak için kullanılır Makine birden fazla çekirdeğe sahipse

Detaylı

WWW.OZTEKHABERLESME.COM

WWW.OZTEKHABERLESME.COM ÖZTEK HABERLEŞME APİ DÖKÜMANI WWW.OZTEKHABERLESME.COM VER:6.1.0 ~ 1 ~ İÇİNDEKİLER BİLMENİZ GEREKENLER... 3 HTTP POST (XML) YÖNTEMİ... 4 TANIMLAR... 4 ÖRNEK XML YAPISI... 4 PHP ÖRNEK KOD... 5 Örnek Sayfayı

Detaylı

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/ Ana Main Kodları /*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/ package javaapplication1; public class JavaApplication1 public static void

Detaylı

F.Ü. Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Bilgisayar Sistemleri Laboratuvarı DENEY NO: 6 JAVA İLE DAĞITIK PROGRAMLAMA.

F.Ü. Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Bilgisayar Sistemleri Laboratuvarı DENEY NO: 6 JAVA İLE DAĞITIK PROGRAMLAMA. F.Ü. Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Bilgisayar Sistemleri Laboratuvarı DENEY NO: 6 JAVA İLE DAĞITIK PROGRAMLAMA Deneyin Amacı: Bu deneyde nesne tabanlı bir programlama dili olan JAVA

Detaylı

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) BBS-515 Nesneye Yönelik Programlama Ders #9 (16 Aralık 2009) Geçen ders: Java Applet lerde bileşen yerleştirme türleri ( applet layouts

Detaylı

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. 1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. [10 puan] int param = 30; int result = 300; if (param > 45) result

Detaylı

Dağıtık Sistemler CS5001

Dağıtık Sistemler CS5001 Dağıtık Sistemler CS5001 Th. Letschert Çeviri: Turgay Akbaş TH Mittelhessen Gießen University of Applied Sciences İstemci-Sunucu Uygulamaları: Aktive Monitörler Pasif monitörden(paylaşılan durum) aktif

Detaylı

Alıştırmalar 2 - Dağıtık Sistemler. Alıştırma 2. Prof. Dr. Th. Letschert Çeviri: Turgay Akbaş FB MNI 16. Mai 2013

Alıştırmalar 2 - Dağıtık Sistemler. Alıştırma 2. Prof. Dr. Th. Letschert Çeviri: Turgay Akbaş FB MNI 16. Mai 2013 1 Prof. Dr. Th. Letschert Çeviri: Turgay Akbaş FB MNI 16. Mai 2013 Alıştırmalar 2 - Dağıtık Sistemler Alıştırma 1 1. Neden dağıtık algoritmalar ardışık algoritmaların aksine her zaman literatürde bir melin

Detaylı

// hataları işaret eden referans

// hataları işaret eden referans System sınıfı java.lang.object java.lang.system public final class System extends Object System sınıfı, java.lang paketi içindedir. Platformdan bağımsız olarak sistem düzeyindeki eylemleri belirleyen dingin

Detaylı

Dağıtık Sistemler CS5001

Dağıtık Sistemler CS5001 Dağıtık Sistemler CS5001 Th. Letschert Çeviri: Turgay Akbaş TH Mittelhessen Gießen University of Applied Sciences Dağıtık Programlar ve Uygulamalar II - - 2 Katman / 3 Adım Yaklaşımı Dağıtık Programlar

Detaylı

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır. Ders İçeriği An introduction to Object-oriented programming with Java Third Edition Update Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır. Nesneye Yönelik Öğr.

Detaylı

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web Sayfası: http://ceng.anadolu.edu.tr/ders.aspx?dersid=101

Detaylı

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ Java programlama dili, Java SUN bilgisayar şirketi tarafından 1991 yılında geliştiril Program bloklar halinde yazılır ve bloklar { } ile oluşturulur. Komutlar aynı satıra

Detaylı

BİL-141 Bilgisayar Programlama I (Java)

BİL-141 Bilgisayar Programlama I (Java) 1 BİL-141 Bilgisayar Programlama I (Java) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu,

Detaylı

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN GİRİŞ Ekrana «Merhaba Java» şeklinde bir mesajı 100 defa yazmak istediğinizi düşünelim. Aşağıdaki komut satırını 100 kez yazmak sıkıcı

Detaylı

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

Java ile Nesneye Yönelik Programlama (Object Oriented Programming) Java ile Nesneye Yönelik Programlama (Object Oriented Programming) Giriş Yrd. Doç. Dr. Aybars UĞUR Örnek 1 Bir Yolcu sınıfı, yolcu1 nesnesi oluşturulması ve kullanılması class Yolcu String ad; String soyad;

Detaylı

F.Ü. Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Bilgisayar Sistemleri Laboratuvarı DENEY NO: 6 JAVA İLE DAĞITIK PROGRAMLAMA.

F.Ü. Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Bilgisayar Sistemleri Laboratuvarı DENEY NO: 6 JAVA İLE DAĞITIK PROGRAMLAMA. F.Ü. Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Bilgisayar Sistemleri Laboratuvarı DENEY NO: 6 JAVA İLE DAĞITIK PROGRAMLAMA Deneyin Amacı: Bu deneyde nesne tabanlı bir programlama dili olan JAVA

Detaylı

BİL-141 Bilgisayar Programlama I (Java)

BİL-141 Bilgisayar Programlama I (Java) 1 BİL-141 Bilgisayar Programlama I (Java) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu,

Detaylı

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat 1. Kısım Çoktan Seçmeli (48 puan) 1) Aşağıdaki JAVA kod parçası çalıştırıldığında

Detaylı

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1 Görsel Programlama DERS 03 Görsel Programlama - Ders03/ 1 Java Dili, Veri Tipleri ve Operatörleri İlkel(primitive) Veri Tipleri İLKEL TİP boolean byte short int long float double char void BOYUTU 1 bit

Detaylı

JAVA DA GİRİŞ/ÇIKIŞ İŞLEMLERİ. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 9 1

JAVA DA GİRİŞ/ÇIKIŞ İŞLEMLERİ. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 9 1 JAVA DA GİRİŞ/ÇIKIŞ İŞLEMLERİ Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 9 1 G/Ç işlemleriyle uygulamalara neler yaptırabiliriz... Dosya işlemleri Dosyadan okuma Dosyaya yazma Verilerin Aktarılması

Detaylı

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ 2017-2018 BaharYarıyılı Balıkesir Üniversitesi Endüstri Mühendisliği Bölümü 7 BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Java Programlama Dili ve Algoritmadan Kodlamaya Geçiş) Yrd. Doç. Dr. İbrahim Küçükkoç

Detaylı

Scanner Sınıfı. Class Scanner. java.util. java.lang.object java.util.scanner. Kılgıladığı Arayüzler: Closeable, AutoCloseable, Iterator<String>

Scanner Sınıfı. Class Scanner. java.util. java.lang.object java.util.scanner. Kılgıladığı Arayüzler: Closeable, AutoCloseable, Iterator<String> Sınıfı java.util Class java.lang.object java.util. Kılgıladığı Arayüzler: Closeable, AutoCloseable, Iterator Bildirimi: public final class extends Object implements Iterator, Closeable

Detaylı

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama 1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Genel Bilgiler Ders konuları 1. Programlamaya Giriş 2. Program Denetimi ve Operatörler 3. Nesnelerin

Detaylı

Nesneye yönelik: Javada herşey bir nesnedir. Java nesne yönelimli olduğu için kolayca geliştirilebilir.

Nesneye yönelik: Javada herşey bir nesnedir. Java nesne yönelimli olduğu için kolayca geliştirilebilir. BÖLÜM 1 Java Programlamaya Giriş Java programlama dili ilk olarak başında James Gosling`n bulundugu Sun Microsystems tarafından 1995 yılında, Sun Java Platformunun ana unsuru olarak geliştirilmeye başlandı.

Detaylı

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır. GİRİŞ Algoritması tasarlanmış (metin olarak yazılmış, sözde kodlarla kodlanmış veya akış diyagramı çizilmiş) bir problemi/işlemi, bilgisayar programlama dillerinden birisiyle kodlamak son derece kolaydır.

Detaylı

İş Parçacıkları Thread(s)

İş Parçacıkları Thread(s) İş Parçacıkları Thread(s) Bir çok geliştirici programlarını doğrusal(linear) bir şekilde oluşturmaktadır. Böyle bir durumda tek bir processin işini bitirmesi beklenmekte ve ardından bir sonraki kod parçasına

Detaylı

Java Class Yapısında Finalize Metotunun Kullanımı

Java Class Yapısında Finalize Metotunun Kullanımı Java'da finalize() Metodu: Java dili kullanılmayan nesneleri silmek için arka planda çalışan bir sisteme sahiptir. Bu yüzden C++ gibi dillerde dinamik nesne tanımlarında mutlaka yer alması gereken nesneyi

Detaylı

ByteArrayOutputStream

ByteArrayOutputStream ByteArrayOutputStream java.io java.lang.object java.io.outputstream java.io.bytearrayoutputstream Kılgıladığı Arayüzler: Closeable, Flushable, AutoCloseable public class ByteArrayOutputStream extends OutputStream

Detaylı

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır. GİRİŞ Algoritması tasarlanmış (metin olarak yazılmış, sözde kodlarla kodlanmış veya akış diyagramı çizilmiş) bir problemi/işlemi, bilgisayar programlama dillerinden birisiyle kodlamak son derece kolaydır.

Detaylı

Programlama Dillerinde Kullanılan Veri Tipleri

Programlama Dillerinde Kullanılan Veri Tipleri Programlama Dillerinde Kullanılan Veri Tipleri Taban/Biçim Basic Paskal C/C++/C#/Java 10 (Decimal ) - - - 16 (Hexadecimal) &hsayı veya &Hsayı $sayı 0xsayı veya 0Xsayı Üstel eüs veya Eüs eüs veya Eüs eüs

Detaylı

Görsel Programlama DERS 11. Görsel Programlama - Ders11/ 1

Görsel Programlama DERS 11. Görsel Programlama - Ders11/ 1 Görsel Programlama DERS 11 Görsel Programlama - Ders11/ 1 ÇOKLU KULLANIM(Multi Threading) Günümüz işletim sistemleri çok görevli(multi tasking) dir. Aynı anda farklı programlar çalışmakta, görevler yerine

Detaylı

Klavyeden Basit Giriş/Çıkış İşlemleri

Klavyeden Basit Giriş/Çıkış İşlemleri Klavyeden Basit Giriş/Çıkış İşlemleri Klavyeden veri girilmesi, girilen verilere çeşitli işlemler uygulandıktan sonra ekrana yazdırılması ya da herhangi bir yazıcıdan çıktı alınması gibi işlemlerdir. Javada

Detaylı

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü: Bölüm 24 Java Ağ Uygulamaları 24.1 Java Appletleri Applet, Web tarayıcısında çalışan bir Java programıdır. Bir applet, Java uygulaması için tamamen fonskiyonel olabilir çünkü bütün Java API ye sahiptir.

Detaylı

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır. Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır. Örneğin; bir öğrenci, sıra, çember, bir buton birer nesnedir. Bir

Detaylı

JAVA PROGRAMLAMAYA GİRİŞ

JAVA PROGRAMLAMAYA GİRİŞ LAB I JAVA PROGRAMLAMAYA GİRİŞ Java Kurulumu Java dili ile programlama yapabilmek için java jdk ve java kodlama yapılabilecek uygun bir geliştirme ortamı kurulmalıdır. Eclips IDE yaygın olarak kullanılan

Detaylı

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 4. UYGULAMA

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 4. UYGULAMA -3 GÜZ DÖNEMİ AKT5 BİLGİSAYAR PROGRAMLAMA DERSİ 4. UYGULAMA ÖRNEK : f() ve g() parçalı fonksiyonları aşağıdaki gibi tanımlanmıştır. değerini kullanıcıdan isteyen ve hesaplamalar sonucunda elde edilecek

Detaylı

JAVA API v2.0 Belge sürümü: 2.0.2

JAVA API v2.0 Belge sürümü: 2.0.2 JAVA API v2.0 Belge sürümü: 2.0.2 1. İçindekiler 1. İÇİNDEKİLER... 2 2. BU BELGENİN AMACI... 3 3. BELGE SÜRÜMLERİ... 3 4. SİSTEM GEREKSİNİMLERİ... 3 5. KULLANIM ŞEKLİ... 4 5.1. GENEL... 4 5.2. UYARILAR...

Detaylı

ATATÜRK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BIM 205 GÖRSEL PROGRAMLAMA 2014-2015 GÜZ DÖNEMİ ÖDEV-1

ATATÜRK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BIM 205 GÖRSEL PROGRAMLAMA 2014-2015 GÜZ DÖNEMİ ÖDEV-1 ATATÜRK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BIM 205 GÖRSEL PROGRAMLAMA 2014-2015 GÜZ DÖNEMİ ÖDEV-1 (Son Teslim Tarihi: 08.11.2014 17:00 e kadar) Teslim: Arş. Gör. Uğur Güven ADAR. Java da Kullanıcıdan

Detaylı

CharArrayReader. Kılgıladığı Arayüzler: Bildirimi: Değişkenleri (fields): java.io.reader Sınıfından Kalıtsal Gelen Değişken:

CharArrayReader. Kılgıladığı Arayüzler: Bildirimi: Değişkenleri (fields): java.io.reader Sınıfından Kalıtsal Gelen Değişken: CharArrayReader java.lang.object java.io.reader java.io.chararrayreader Kılgıladığı Arayüzler: Closeable, AutoCloseable, Readable Bildirimi: public class CharArrayReader extends Reader Karekter giriş akımı

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Kapsülleme (Erişim Denetleyiciler) Java da Sınıf Oluşturmak Java da Nesne Oluşturmak Java da Constructor Kavramı Java da This Kavramı Java da Constructor

Detaylı

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

Bire-bir Sahiplik İlişkisi ile İlgili Sorular: Bire-bir Sahiplik İlişkisi ile İlgili Sorular: Soru 1: Bir füzenin kilometre cinsinden menzili ve kilogram cinsinden ağırlığı mevcuttur. Bir füze ya kara hedefleri ya da hava hedefler için tasarlanır.

Detaylı

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ Amaçlar: 1- Arayüzler (Interfaces) 2- Soyut Sınıflar ve Metotlar(Abstract classes and methods) Uygulama-1: interface:cihaz ac() kapat() goster(string) class: TV class: LCD class: Projector... Cihaz adındaki

Detaylı

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58; BTEP212 Java DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI Lab7 bazen bir metodun içinde o metodun ait olduğu sınıftan yaratılacak nesneyi veya o nesnenin bir alt

Detaylı

BİL-141 Bilgisayar Programlama I (Java)

BİL-141 Bilgisayar Programlama I (Java) 1 BİL-141 Bilgisayar Programlama I (Java) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu,

Detaylı

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır.

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır. Stack Sınıfı (yığıt) java.util Class Stack java.lang.object java.util.abstractcollection java.util.abstractlist java.util.vector java.util.stack Stack (yığıt) sınıfı nesnelerin LIFO (last-input-first-output)

Detaylı

BM-209 Nesne Yönelimli Programlama

BM-209 Nesne Yönelimli Programlama BM-209 Nesne Yönelimli Programlama Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Bilgisayar Programlamaya Giriş,

Detaylı

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 9. UYGULAMA

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 9. UYGULAMA 2012-2013 GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 9 UYGULAMA ÖRNEK 1: Kullanıcıdan anapara miktarını istedikten sonra 0025, 0050, 0075 ve 0100 dönem faizi değerlerini kullanarak gelecek 10 dönem

Detaylı

Örnek 1: Programı yazın ve çalıştırın.

Örnek 1: Programı yazın ve çalıştırın. 1 0 Örnek 1: Programı yazın ve çalıştırın import javautilscanner; public class MatrisFaiz1 public static void main(string[] args) Scanner klavye=new Scanner(Systemin); double [][] faiztablo = new double

Detaylı

public static int Toplam int x, int y

public static int Toplam int x, int y static Kavramı 1 İçinde bulunduğu sınıftan nesne oluşturulmadan veya hiç bir nesneye referans olmadan kullanılabilen üyeler static olarak nitelendirilir. Metotlar ve alanlar static olarak tanımlanabilir.

Detaylı

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi Görsel Programlama Kalıtım, Temel/Alt Sınıf, Temel/Alt Sınıf Tip Dönüşümleri, Temel Sınıf Yapıcıları, super Anahtar Kelimesi, Sınıf Üyesi Görünürlüğü, Statik Üyeler ve Final Üyeler Sınıflar Programcı tarafından

Detaylı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 11

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 11 NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 11 G/Ç işlemleriyle uygulamalara neler yaptırabiliriz... Dosya işlemleri Dosyadan okuma Dosyaya yazma Verilerin Aktarılması Ağ (network) üzerinden Nesnelerin kalıcı

Detaylı

İki Yöntem. Komposizyon (Composition) Kalıtım (Inheritance)

İki Yöntem. Komposizyon (Composition) Kalıtım (Inheritance) İki Yöntem Komposizyon (Composition) Kalıtım (Inheritance) Komposizyon(Composition) class Meyva { } //... class Elma { } private Meyva m = new Meyva(); //... Komposizyon - UML Örnek Motor.java AileArabasi.java

Detaylı

Sınıfların Tekrardan Kullanılması. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 1

Sınıfların Tekrardan Kullanılması. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 1 Sınıfların Tekrardan Kullanılması Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 1 İki Yöntem Komposizyon (Composition) Kalıtım (Inheritance) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı

Detaylı

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN TEMEL AMAÇLAR Bir dairenin yarıçapını kullanıcıdan alarak dairenin alanını hesaplamak istediğimizi düşünelim. Eğer girilen değer

Detaylı

Java da İşleçler, Ders #3 (4 Kasım 2009)

Java da İşleçler, Ders #3 (4 Kasım 2009) Java da İşleçler, Kontrol Akış ve Döngü Deyimleri BS-515 Nesneye Yönelik Programlama Ders #3 (4 Kasım 2009) İçerikç Geçen ders: Nesne ve Sınıf Kavramları Nesne ve Sınıf ın Java da gerçekleştirilmesi Bu

Detaylı

BIL101 07/11/2012 Lab5 Programlama Sorulari

BIL101 07/11/2012 Lab5 Programlama Sorulari BIL101 07/11/2012 Lab5 Programlama Sorulari 1- Bir kişinin banka hesabı üstünden yapacağı para çekme ve yatırma işlemleri sonucu banka hesap bakiyesini hesaplayacak bir program yazınız. Programiniz asagidaki

Detaylı

Sunum İçeriği. Programlamaya Giriş 22.03.2011

Sunum İçeriği. Programlamaya Giriş 22.03.2011 Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon

Detaylı

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO while(), do-while(), for() Döngü (loop) : Bir koşul sağlandığı (true olduğu) sürece bir veya birden çok komutun tekrarlanması işlemidir. Java Döngüler (loops) While() do-while() for ( ) while ( koşul )

Detaylı

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama İçerik Java da İşleçler, Kontrol Akış ve Döngü Deyimleri Geçen ders: Nesne ve Sınıf Kavramları Nesne ve Sınıf ın Java da gerçekleştirilmesi Bu ders: Java da işleçler ( operators ) Java da kontrol-akış

Detaylı

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM 2014) //Class (Sınıf) // Sınıf (class) soyut veri tipidir. // Nesne (object) sınıfın somutlaşan bir cismidir. // static : nesnesi oluşturulmaz.

Detaylı

BMH-303 Nesneye Yönelik Programlama

BMH-303 Nesneye Yönelik Programlama BMH-303 Nesneye Yönelik Programlama Kurucu metotlar (constructors) ve statik deyimi Dr. Musa ATAŞ Siirt Üniversitesi Bilgisayar Mühendisliği Kurucu Metotlar (Constructors) Kurucu metot çeşitleri Varsayılan

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama JSP Üst Düzey Programlama-ders04/ 1 JSP JSP durağan HTML ile dinamik oluşturulan içeriği birleştirmeyi sağlar. Bir web sayfası tasarlama programı ile web sayfasını tasarlar daha sonra

Detaylı

İŞ PARÇACIKLARI (THREADS)

İŞ PARÇACIKLARI (THREADS) İŞ PARÇACIKLARI (THREADS) 1 İŞ PARÇACIKLARI Geçen bölümlerde yapılan uygulama örnekleri hep sıralıydı. Program başlar, belli bir yolu izleyerek işlemler yapar ve biterdi. public class Selam{ public static

Detaylı

Java Programlamada Paket Yapısı Ve Import

Java Programlamada Paket Yapısı Ve Import Java programlamada paket yapısı ve import Java Programlamada Paket yapısı ve Java programları paketlerden oluşmaktadır. Paketlerin içinde sınıflar ve arayüzler bulunur. İstenirse var olan paketlerden başka

Detaylı

PORT HABERLEŞME SERİ PORT FARUK BOZAN

PORT HABERLEŞME SERİ PORT FARUK BOZAN PORT HABERLEŞME SERİ PORT FARUK BOZAN farukbozan@javatiryakileri.com bozanfaruk@gmail.com Merhaba değerli Java dostları. Bu yazımızda port haberleşme konusuna değineceğiz. Yalnız şu noktaya dikkatinizi

Detaylı

3.Hafta. . Kontrol Deyimleri/İfadeler

3.Hafta. . Kontrol Deyimleri/İfadeler . Kontrol Deyimleri/İfadeler Kontrol deyimleri bir uygulamanın yürütülmesi sırasında program akışını yönlendiren yapılar/kalıplardır. Kontrol deyimi olmaksızın bir uygulama yazılması neredeyse olanaksıdır

Detaylı

Ders - 7 while döngüsü

Ders - 7 while döngüsü Ders - 7 while döngüsü import java.util.scanner; public class StringKiyaslama { public static void main(string[] args) { Scanner klavye=new Scanner(System.in); Oncelikle Lab icin bir aciklama System.out.println("1.

Detaylı

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi 5.HAFTA Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi Sınıf Kavramı: Sınıf (class) soyut bir veri tipidir. Nesne (object) onun somutlaşan bir cismidir. Java da sınıf (class) kavramını

Detaylı

T.C. KOCAELİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

T.C. KOCAELİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ T.C. KOCAELİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ ELEKTRONİK VE HABERLEŞME MÜHENDİSLİĞİ Mikroişlemci Uygulamaları Ders Projesi Beaglebone Black ile Webcam Streaming ve Servo Kontrolü Melih YILDIRIM 100208006

Detaylı

EMT2226 Nesne Yönelimli Programlamaya Giriş

EMT2226 Nesne Yönelimli Programlamaya Giriş 2017-2018 Bahar Yarıyılı Balıkesir Üniversitesi Endüstri Mühendisliği Bölümü EMT2226 Nesne Yönelimli Programlamaya Giriş 2 Yrd. Doç. Dr. İbrahim Küçükkoç Web: ikucukkoc.baun.edu.tr Email: ikucukkoc@balikesir.edu.tr

Detaylı

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1 Paket Erişimleri Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1 Erişim Erişim konusunda iki taraf vardır: Kütüphaneyi kullanan kişiler (client) Kütüphaneyi yazan kişiler Altuğ B. Altıntaş

Detaylı

İş Parçacıkları (Threads)

İş Parçacıkları (Threads) İş Parçacıkları (Threads) Bir elin nesi var iki elin sesi var -Atasözü- Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 11 1 İŞ PARÇACIKLARI (THREADS) Geçen bölümlerde yapılan uygulama örnekleri

Detaylı

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır.

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır. Bölüm 20 20 Arayüzler Arayüz bir sınıf değildir. Arayüz yazmak sınf yazmaya çok benzer ancak ikisi birbirinden farklı konseptlerdir. Sınıf bir nesnenin özelliklerini ve davranışlarını belirtirken; bir

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;

Detaylı

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Kalıtım Kavramı Java da Çok Biçimlilik Kavramı Fonksiyonların Çok Biçimliliği Yapıcı Fonksiyonun Çok Biçimliliği Java da Kalıtım Kavramı 4 Kalıtım;

Detaylı

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama İçerik Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Geçen hafta: Nesneye yönelik programlama Ne demektir, nasıl ortaya çıkmıştır? Nesneye yönelik dil olarak JAVA ve ilişkili kavramlar Bu hafta:

Detaylı

Kılgıladığı arayüzler: Serializable, Cloneable, Map<K,V>, NavigableMap<K,V>, SortedMap<K,V>

Kılgıladığı arayüzler: Serializable, Cloneable, Map<K,V>, NavigableMap<K,V>, SortedMap<K,V> Class TreeMap java.util Class TreeMap java.lang.object java.util.abstractmap java.util.treemap Parametre tipleri: - the type of keys maintained by this map V - the type of mapped values ılgıladığı

Detaylı

Dağıtık Sistemler CS5001

Dağıtık Sistemler CS5001 Dağıtık Sistemler CS5001 Th. Letschert Çeviri: Turgay Akbaş TH Mittelhessen Gießen University of Applied Sciences Dağıtık Programlar ve Uygulamalar I - Dağıtık Programlar Dağıtık Algoritmalar ve Dağıtık

Detaylı

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Ders #2 (2 Kasım 2009) İçerikç Geçen hafta: Nesneye yönelik programlama Ne demektir, nasıl ortaya çıkmıştır? Nesneye yönelik dil olarak JAVA ve ilişkili

Detaylı

BIL411 - BİLGİSAYAR AĞLARI LABORATUVARI

BIL411 - BİLGİSAYAR AĞLARI LABORATUVARI BIL411 - BİLGİSAYAR AĞLARI LABORATUVARI ITS-101A INTERNET EĞİTİM SİSTEMİ TCP/IP THE DOMAIN NAME SYSTEM (ALAN ADI SİSTEMİ) İstanbul Ticaret Üniversitesi Bilgisayar Mühendisliği Bölümü Araş. Gör. Can EYÜPOĞLU

Detaylı

Kurumsal Güvenlik ve Web Filtreleme

Kurumsal Güvenlik ve Web Filtreleme S a y f a 1 antikor Kurumsal Güvenlik ve Web Filtreleme SshClient, Putty v.s. S a y f a 2 S a y f a 3 Yönetici olarak AntiKor a girmek için SshClient veya Putty programı kullanılır. IP olarak kurum içinden

Detaylı

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ AD SOYAD: TESLİM TARİHİ: OKUL NO: TESLİM SÜRESİ: 1 hafta ÖDEV NO: 4 1 Kısaca

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Kodlarına Yorum Satırı Eklemek Java Paket Kavramı Java Kütüphane Kavramı Konsoldan Veri Çıkışı ve JOPtionPane Kütüphanesi JOptionPane Kütüphanesi Kullanarak

Detaylı

ECLIPSE PROGRAMININ ÇALIŞTIRILMASI

ECLIPSE PROGRAMININ ÇALIŞTIRILMASI ECLIPSE PROGRAMININ ÇALIŞTIRILMASI 1 Eclipse programının çalışır hale getirilebilmesi için JDK nın kurulumunun tamamlanmış olması gerekmektedir. Eclipse programı dosyasını indiremediyseniz dersin internet

Detaylı

Class LinkedHashMap. Class LinkedHashMap java.lang.object java.util.abstractmap java.util.hashmap java.util.linkedhashmap. Kılgıladığı arayüzler:

Class LinkedHashMap. Class LinkedHashMap java.lang.object java.util.abstractmap java.util.hashmap java.util.linkedhashmap. Kılgıladığı arayüzler: Class LinkedHashMap java.util Class LinkedHashMap java.lang.object java.util.abstractmap java.util.hashmap java.util.linkedhashmap Kılgıladığı arayüzler: Cloneable, Map, Serializable Bildirimi: public

Detaylı

MAT213 Bilgisayar Programlama I

MAT213 Bilgisayar Programlama I if Komutu Bir mantıksal (boolean) ifadenin sonucuna göre bazı komutların çalıştırılıp, bazı komutların da çalıştırılmamasını sağlar. Komut(lar) (Doğru) Doğru Yanlış Boolean Komut(lar) (Yanlış) if (boolean

Detaylı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10 NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10 Konular Kural Dışı Durumlar try ve catch Blokları ve throw Komutu Kural Dışı Durum Sınıfı Tanımlama Bir try Bloğuyla Çok Sayıda catch Kullanımı İç İçe try - catch

Detaylı

Kurumsal Güvenlik ve Web Filtreleme

Kurumsal Güvenlik ve Web Filtreleme S a y f a 1 antikor Kurumsal Güvenlik ve Web Filtreleme SshClient, Putty v.s. S a y f a 2 S a y f a 3 S a y f a 4 S a y f a 5 S a y f a 6 S a y f a 7 şeklini alır. Bu durumda kullanıcı yasaklı konumdadır.

Detaylı

C# Metotlar ve Metot Tanımlama

C# Metotlar ve Metot Tanımlama C# Metotlar ve Metot Tanımlama Metot Kavramı : Metotlar bir program içerisinde aynı işi gerçekleştiren satırları belirli düzende sadece bir kez oluşturarak gerektiğinde tekrar tekrar kullanabilmemizi sağlayan

Detaylı

İlgili Konular: Object.equals(java.lang.Object), Object.hashCode(), rehash(), Collection, Map, HashMap, TreeMap, Serialized Form

İlgili Konular: Object.equals(java.lang.Object), Object.hashCode(), rehash(), Collection, Map, HashMap, TreeMap, Serialized Form Class Hashtable java.util Class Hashtable java.lang.object java.util.dictionary java.util.hashtable Kılgıladığı Arayüzler: Serializable, Cloneable, Map Altsınıfları: Properties, UIDefaults

Detaylı

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü 2017-2018 Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü Yrd. Doc. Dr. İbrahim KÜÇÜKKOÇ Web: http://ikucukkoc.baun.edu.tr Email: ikucukkoc@balikesir.edu.tr Dersin Amaci: Algoritma geliştirme

Detaylı

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü 2017-2018 Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü Yrd. Doc. Dr. İbrahim KÜÇÜKKOÇ Web: http://ikucukkoc.baun.edu.tr Email: ikucukkoc@balikesir.edu.tr 1 Dersin Amaci: Algoritma

Detaylı

JAVADA DİZİ İŞLEMLERİ

JAVADA DİZİ İŞLEMLERİ JAVADA DİZİ İŞLEMLERİ Javada diziler nesnedirler, cdeki gibi hafızada yer kaplayan pointer değillerdir. Javada diziler, cye göre daha güvenilirdir. Dizilerin elemanlarına gelişigüzel değerler atayamazsınız.

Detaylı

Java Programlamaya Giriş

Java Programlamaya Giriş Java Programlamaya Giriş Amaçlar: 1. Java kurulumu (Netbeans ve JDK) 2. Java Netbeans Kullanımı 3. Program yazma Java Kurulumu Java dili ile programlama yapabilmek için java jdk ve java kodlama yapılabilecek

Detaylı

Ağ Sunucusu Programlaması. Bora Güngören Portakal Teknoloji bora@portakalteknoloji.com

Ağ Sunucusu Programlaması. Bora Güngören Portakal Teknoloji bora@portakalteknoloji.com Ağ Sunucusu Programlaması Bora Güngören Portakal Teknoloji bora@portakalteknoloji.com 1 Genel Sunum Bilgisi ve Lisans Sunum 16 Aralık 2004 günü Erciyes Üniversitesi'nde LKD adına verilmiştir. Sunuma ait

Detaylı