Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package sedran;
- /**
- * Saat tutan, her geçen saniye saati ekrana yazan uygulama.
- * Ek olarak, her 3 saniyede bir ekrana "Sedran - blog.asosyalbebe.com" yazdırır.
- * @author Serdar KUZUCU
- * http://blog.asosyalbebe.com
- */
- public class ClockApp {
- public static void main(String a[]) {
- new ClockApp();
- }
- public ClockApp() {
- Clock c = new Clock(); // Saat Thread'i yaratıldı fakat henüz başlatılmadı.
- SedranWriter s = new SedranWriter(); // Başka bir Thread yaratıldı.
- c.start(); // Saat Thread'i başlatıldı.
- s.start(); // Diğer Thread de başlatıldı.
- }
- /**
- * Her 3 saniyede bir ekrana birşey yazdıran Thread.
- */
- private static class SedranWriter extends Thread {
- /**
- * Unutmayalım, Thread'i extend ettiğimiz zaman run methodu yazmamız gerekir.
- * Çünkü bir Thread start() edildiğinde run() methodunu çağırır.
- */
- public void run() {
- while(true) {
- try {
- Thread.sleep(3000);
- System.out.println("Sedran - blog.asosyalbebe.com");
- } catch(InterruptedException e) {
- e.printStackTrace(); // Thread'i uyutmaya çalışırken hata olması durumunda...
- }
- }
- }
- }
- /**
- * Saat Thread'i. Her saniye saati günceller ve ekrana yazdırır.
- */
- private static class Clock extends Thread {
- private int sn=0, dk=0, saat=0;
- /**
- * Bu saate bir saniye ekleyen method. Bu method her çağırıldığında
- * saate bir saniye eklenir ve saniye ve dakika 60'a bölünerek
- * çıkan sonuçları... Ne olduğunu biliyosunuz artık bunun :)
- */
- private void timeIncrement() {
- sn++;
- if(sn/60 > 0) {
- dk += sn/60;
- sn %=60;
- }
- if(dk/60 > 0) {
- saat += dk/60;
- dk %= 60;
- }
- }
- /**
- * Thread start() edildiğinde çağırılan method.
- * Thread program kapatılana kadar hiç bitmesin diyorsanız, bu methodun
- * içerisinde bir sonsuz döngü ayarlamanız gerekiyor.
- */
- public void run() {
- while(true) { // Sonsuz döngümüz.
- try {
- Thread.sleep(1000); // Thread'i 1 saniye beklet.
- timeIncrement(); // Sonra saate bir saniye ekle.
- System.out.println(this); // Saati yazdır.
- } catch (InterruptedException e) {
- e.printStackTrace(); // Thread'i uyutmaya çalışırken hata olması durumunda...
- }
- }
- }
- /**
- * Clock class'ının System.out.println() methoduna
- * parametre olarak atanması durumunda çağırılan method.
- * Clock class'ından dijital saat dizaynında bir String üretir.
- */
- public String toString() {
- String a = (saat/10 == 0) ? "0" + saat : ""+saat;
- a += ":" + ((dk/10 == 0) ? "0" + dk : ""+dk);
- a += ":" + ((sn/10 == 0) ? "0" + sn : ""+sn);
- return a;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement