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

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

BİL-141 Bilgisayar Programlama I (Java)

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

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

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

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

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

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.

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

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 9

Bölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31

BİL-141 Bilgisayar Programlama I (Java)

Arayüz (Interface) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 7 1

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

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

İST 264 VERİ YAPILARI Bitirme Sınavı A Grubu

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.

NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;

Ders - 7 while döngüsü

Java Dersi. Altuğ Bilgin Altıntaş

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;

Nesne Yönelimli Programlama

public static int Toplam int x, int y

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

Bir c sınıfının doğal sıralaması ile tutarlı olması (be consistent with equals) demek, c sınıfı içindeki her e1 ve e2 nesnesi için

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

BIL101 07/11/2012 Lab5 Programlama Sorulari

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

JAVA DA İSTİSNALAR VE DOSYA İŞLEMLERİ. Yrd. Doç.Dr. İlhan AYDIN

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

Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama

İçerik. Kapsülleme ( Encapsulation ) Java da Kalıtım: Örnek 2.1. Kalıtım ( Inheritance ) Tekrar Ziyaret. Java da Kalıtım: Örnek 2.2.

// hataları işaret eden referans

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

KUYRUKLAR QUEUES. Doç. Dr. Aybars UĞUR

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ

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

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

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

D İ Z İ L E R A R R A Y S

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

7. HAFTA. Erişim Belirleyiciler

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

Soru 1: Fahrenheit cinsinden verilen sıcaklığı Kelvin'e çeviren bir program yazınız. Aşağıdaki dönüşüm formülünü kullanabilirsiniz:

Java String İşlemleri

BİL132 Bilgisayar Programlama II

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

Interface Comparator. Kılgılayan sınıf: Collator. Bildirimi: public interface Comparator

1. Her marka için 3 aylık satış toplamı nedir? (Tablodaki satır toplamları)

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN

Nesneye Dayalı Programlama

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 7

Erişim konusunda iki taraf vardır:

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

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

Programlama Dillerinde Kullanılan Veri Tipleri

JAVA. public class Welcome { // class isimleri her zaman büyük harfle başlar. public static void main(string[] args){ System.out.print("Welcome"); } }

MOBIL UYGULAMA GELIŞTIRME

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

Java ile Tasarım Prensipleri ve Tasarım Örüntüleri

Yazılım Kodlama ve İ simlendirme Standartları v1.0

Decorator Tasarım Şablonu

Java Nitelemleri. Bölüm 1

YZM 2105 Nesneye Yönelik Programlama

Business Delegate Tasarım Şablonu KurumsalJava.com

DATA STRUCTURES. Lab II Metotlar, Diziler ve Hata Ayıklama. Doç. Dr. Aybars UĞUR

Yukardaki örneğe dayanarak, aşağıdakiler tanımlar Object Oriented açısından doğrudur:

DATA STRUCTURES. Lab II Metotlar, Diziler ve Hata Ayıklama. Prof. Dr. Aybars UĞUR

Nesne Yönelimli Programlama ve Kalıtım

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

Progress Barlı, FTP Dosya Upload Appleti

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Chain of Responsibility Tasarım Şablonu KurumsalJava.com

İÇİNDEKİLER VII İÇİNDEKİLER

İ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İ

EMT2226 Nesne Yönelimli Programlamaya Giriş

11- FONKSİYONLAR (FUNCTIONS)

YZM 2105 Nesneye Yönelik Programlama

Merge (Bireşim) Algoritmayı önce bir örnek üzerinde açıklayalım.

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

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 4. Yrd.Doç.Dr.Hacer Karacan

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Sınıflar ve Yapılar Arasındaki Farklılıklar. Değer ve Referans Türde Olan Aktarımlar

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

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

Ders 8 Konu Özeti ve Problemler

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


Nesne Yönelimli Programlama

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

CBÜ Teknoloji Fakültesi, Yazılım Mühendisliği. Nesneye Yönelik Programlama

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 11: Metot Kavramı

İç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

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

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

Loose Coupling (LC) Esnek Bağ Tasarım Prensibi KurumsalJava.com

Class PriorityQueue. Class PriorityQueue<E> java.lang.object java.util.abstractcollection<e> java.util.abstractqueue<e> java.util.

Transkript:

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 yukarıda gösterilen Interface ten türetilmiş TV, LCD ve Projector adında sınıfları yazınız. Ayrıca YayınYap adında başka bir sınıfta TV, LCD ve Projector sınıflarının nesnelerini üretip bu nesneleri bir Cihaz dizisine atayınız. Daha sonra sırasıyla bu cihazların aç, göster ve kapat metodlarını çağırınız. Herbir cihaz metodları içerisinde kendine özgü mesajlar yazdırmalıdır. CEVAP public class YayinYap{ public static void yayinyap(cihaz[] cihazlar){ for (int i = 0; i < cihazlar.length; i++) { Cihaz cihaz = cihazlar[i]; cihaz.ac(); cihaz.goster(" TEST YAYINI"); cihaz.kapat(); public static void main(string[] args) { Cihaz c1 = new TV(); Cihaz c2 = new LCD(); Cihaz c3 = new Projector(); Cihaz[] dizi = new Cihaz[3]; dizi[0] = c1; dizi[1] = c2; dizi[2] = c3; YayinYap.yayinYap(dizi); class TV implements Cihaz{ public void ac(){ System.out.println("TV Acildi"); public void kapat(){ System.out.println("TV Kapandi"); public void goster(string yazi){ System.out.println("TV gosteriyor" + yazi); S a y f a 1

class LCD implements Cihaz{ public void ac(){ System.out.println("LCD Acildi"); public void kapat(){ System.out.println("LCD Kapandi"); public void goster(string yazi){ System.out.println("LCD gosteriyor" + yazi); class Projector implements Cihaz{ public void ac(){ System.out.println("Projector Acildi"); public void kapat(){ System.out.println("Projector Kapandi"); public void goster(string yazi){ System.out.println("Projector gosteriyor" + yazi); Uygulama-2:Aşağıdaki programın çıktısını yazınız: class Class1 { public Class1(String isim, int sayi){ System.out.println("("+isim+","+sayi+")"); class Class2 extends Class1{ private String ad; private int no; public Class2(String isim, int sayi){ super("2.sinif",3); this.ad = isim; this.no=sayi; yazdir(); public void yazdir(){ System.out.println("("+this.ad+","+this.no+")"); class Class3 extends Class2{ private String ad; public Class3(){ super("3.sinif", 5); System.out.println("(3,1)"); public static void main(string[] args) { Class3 c = new Class3(); S a y f a 2

CEVAP (2.SINIF,3) (3.SINIF,5) (3,1) Uygulama-3: notlar1.txt adlı bir dosyanın herbir satırında sırasıyla öğrencinin numarası, 1. Vize notu ve 2. Vize notu yeralmaktadır. Aşağıda verilen Arayüz (Interface) ve Soyut (Abstract) sınıfları kullanarak NotHesaplayici adında bir sınıf yazınız. Bu sınıf notlar1.txt dosyasından satırları okuyup her bir öğrencinin 1. ve 2. sınavlarının ortalamasını hesaplasın ve sonucu aşağıda verilen şekilde notlar2.txt dosyasına yazsın. notlar1.txt 0801 15.0 25.0 0802 99.0 66.0 0803 60.0 65.0... notlar2.txt 0801 15.0 25.0 20.0 0802 99.0 66.0 82.5 0803 60.0 65.0 62.5... public interface DosyaIslemci { public void dosyaoku(string dosyaadi); public void dosyayayaz(string dosyaadi, String dosyaicerigi); abstract class SatirIslemci{ public abstract String satirisle(string satir); NotHesaplayici sınıfı SatirIslemci sınıfından türemeli ve bu sınıfın main metodunda sadece dosyaoku metodu çağrılmalıdır. satırisle metodu verilen satırı parcalara böldükten sonra ortalamayı hesaplamalı ve yeni satırı oluşturmalıdır. CEVAP import java.io.file; import java.io.filewriter; import java.util.scanner; class NotHesaplayici extends SatirIslemci implements DosyaIslemci{ public String satirisle(string cumle){ Scanner s = new Scanner(cumle); String no = s.next(); double vize1 = s.nextdouble(); double vize2 = s.nextdouble(); double ort = (vize1+vize2)/2; String yenicumle = no + "\t" + vize1 + "\t" + vize2 + "\t" + ort + "\n"; return yenicumle; public void dosyaoku(string dosyaadi){ try { S a y f a 3

Scanner s = new Scanner(new File(dosyaAdi)); String yenidosyaicerigi = ""; while(s.hasnext()){ String satir = s.nextline(); yenidosyaicerigi += satirisle(satir); System.out.println(yeniDosyaIcerigi); dosyayayaz("notlar2.txt", yenidosyaicerigi); catch (Exception e) { public void dosyayayaz(string dosyaadi, String dosyaicerigi){ try { FileWriter fw = new FileWriter(dosyaAdi); fw.write(dosyaicerigi); fw.close(); catch (Exception e) { public static void main(string[] args) { NotHesaplayici n = new NotHesaplayici(); n.dosyaoku("notlar1.txt"); Uygulama-4: S a y f a 4

S a y f a 5

Program Çıktısı: Not: Çalışan arayüzüne erişen tüm sınıflarda, bu arayüz (interface) içerisinde bulunan gövdesiz metotlar override edilmek zorundadır. S a y f a 6

Uygulama-5: S a y f a 7

Not: Kaplan sınıfı kedi soyut sınıfındaki gövdesiz metodu override etmek zorundadır. Ayrıca kedi sınıfı da Hayvan arayüzüne ulaştığı için bu arayüz içindeki metodu da override etmek zorundadır. Uygulama-6: S a y f a 8

Not: Arayüzler ile çoklu kalıtım yapılabilmektedir. Başka bir deyişle aynı bağlantı yolu üzerinde 1 den fazla extends işlemi gerçekleştirilememektedir. Bu durumun önüne arayüzler kullanılarak geçilebilmektedir. Aşağıdaki UML diyagramı bu işlemin neden olmayacağı durumunu özetlemektedir. Uygulama-6: S a y f a 9