CENG 217 Object Oriented Design. Doç. Dr. Halûk Gümüşkaya /

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

Download "CENG 217 Object Oriented Design. Doç. Dr. Halûk Gümüşkaya haluk@gumuskaya.com / haluk@fatih.edu.tr http://www.gumuskaya.com"

Transkript

1 CENG 217 Object Oriented Design Lecture 6 Doç. Dr. Halûk Gümüşkaya haluk@gumuskaya.com / haluk@fatih.edu.tr Computing Engineering Department Fatih University Thursday, December 08,

2 Kalıtım ve Soyut Sınıflar 2

3 Dersin Anahatları 1. Katılım Kavramı 2. Kalıtımla Grafik Programlama 3. Soyut Sınıflar 4. Kalıp Metot (TEMPLATE METHOD) Modeli 5. Korumalı Arayüzler (Protected Interfaces) 6. Swing Bileşenlerinin Hiyerarşisi 7. Standart Geometrik Şekillerin Hiyerarşisi 8. Hata Sınıflarının Hiyerarşisi 9. Kalıtımın Kullanılmayacağı Zamanlar 3

4 Model Özelleştirme Basit Employee sınıfı ile başlayalım Üst Sınıf public class Employee { private String name; private double salary; public Employee(String aname) { name = aname; public void setsalary(double asalary) { salary = asalary; public String getname() { return name; public double getsalary() { return salary; Manager bir alt sınıftır. 4

5 Model Özelleştirme Manager sınıfı yeni bir metot ekler: setbonus Manager sınıfı önceki metodu yeniler (overriding): getsalary Maaş (salary) ve bonus özelliklerini ekler. public class Manager extends Employee { private double bonus; // new field public Manager(String aname) {... public void setbonus(double abonus) { bonus = abonus; // new method public double getsalary() {... // overrides Employee method 5

6 Model Özelleştirme Manager Metotları ve Alanları setsalary, getname metotları (Employee sınıfından kalıtılan) getsalary metodu (Manager da yenilenen) setbonus metodu (Manager da tanımlanan) name ve salary alanları (Employee da tanımlanan) bonus alanı (Manager da tanımlanan) 6

7 Üst/Alt Terminolojisi Manager neden bir alt sınıftır? Manager (Müdür) üst değil midir? Manager nesnesi daha fazla özelliğe sahip değil midir? Müdürler kümesi, işçiler kümesinin bir alt kümesidir. 7

8 Kalıtım Hiyerarşisi Gerçek Dünya: Hiyerarşiler genel/spesifik ilişkileri gösterir. Genel konsept köktür. Daha spesifik olanlar çocuklardır. Programlama: Kalıtım Hiyerarşisi Genel üst sınıf köktür. Daha spesifik olan sınıflar çocuklardır 8

9 Kalıtım Hiyerarşisi 9

10 Yer Değiştirme Prensibi Barbara Liskov tarafından formülize edilmiştir. Bir üst sınıf kullanılması beklenildiği yerde, alt sınıf kullanılabilir. Örnek: Employee e;... System.out.println("salary=" + e.getsalary()); e ye Manager referansı verilebilir. Çok Şekillilik: Doğru getsalary metodu çağrılır. 10

11 Üst Sınıfın Metodlarını Çağırma Üst sınıfın özel (private) alanlarına erişilemez. public class Manager extends Employee { public double getsalary() { return salary + bonus; // HATA: Özel Alan... Üst sınıfın metotlarını çağırırken dikkatli olunmalı: public double getsalary() { return getsalary() + bonus;// HATA recursive çağırma 11

12 Üst Sınıfın Metodlarını Çağırma super kelimesinin kullanımı public double getsalary() { return super.getsalary() + bonus; super bir referans değildir. super çok şekilli çağırma mekanizmasını iptal eder. 12

13 Üst Sınıfın Constructor Metotlarını Çağırma super kelimesini alt sınıfın constructor metodunda kullanma: public Manager(String aname) { super(aname); // calls superclass constructor bonus = 0; super in çağırılması alt sınıfın constructor metodunda ilk cümle olmalı. Eğer alt sınıfın constructor metodunda super çağırılmayacaksa, üst sınıfta parametresi olmayan bir constructor metodu olmalı 13

14 Ön Şartlar (precondition) public class Employee { /** Sets the employee salary to a given asalary the new asalary > 0 */ public void setsalary(double asalary) {... Manager.setSalary metodunu ön şartlı olarak tekrar tanımlayabilir miyiz? salary > ? Hayır Manager m = new Manager(); Employee e = m; e.setsalary(50000); 14

15 Son Şartlar, Görülebilirlik, Hatalar Örneğin: Employee.setSalary maaşı düşürmeyeceğini garantiler. Sonra Manager.setSalary son şartı yerine getirir. Tekrar tanımlanan metod daha özel (private) olamaz. (Genel hata: tekrar tanımlamada public yazılmaz.) Tekrar tanımlanan metod daha fazla kontrol edilmiş hataya sahip olamaz. 15

16 1. Katılım Kavramı 2. Kalıtımla Grafik Programlama 3. Soyut Sınıflar 4. Kalıp Metot (TEMPLATE METHOD) Modeli 5. Korumalı Arayüzler (Protected Interfaces) 6. Swing Bileşenlerinin Hiyerarşisi 7. Standart Geometrik Şekillerin Hiyerarşisi 8. Hata Sınıflarının Hiyerarşisi 9. Kalıtımın Kullanılmayacağı Zamanlar 16

17 Kalıtımla Grafik Programlama Bölüm 4: Icon arayüzünü kullanarak çizim oluşlturma Şimdi: JComponent sınıfının alt sınıfını şekillendirme: public class MyComponent extends JComponent { public void paintcomponent(graphics g) { drawing instructions go here... Avantajı: JComponent dan metot kalıtımı Örnek: mouse listener ı JComponent a ekleyebiliriz. 17

18 Mouse listener ı bilşene ekleme Mouse Listeners Fare olaylarını veya Fare Hareket Olaylarını dinleyebilir. public interface MouseListener { void mouseclicked(mouseevent event); void mousepressed(mouseevent event); void mousereleased(mouseevent event); void mouseentered(mouseevent event); void mouseexited(mouseevent event); public interface MouseMotionListener { void mousemoved(mouseevent event); void mousedragged(mouseevent event); 18

19 Mouse Adapters Sadece mousepressed metodunu dinlemek için ne yapılabilir? MouseAdapter a ulaşılabilir. public class MouseAdapter implements MouseListener { public void mouseclicked(mouseevent event) { public void mousepressed(mouseevent event) { public void mousereleased(mouseevent event) { public void mouseentered(mouseevent event) { public void mouseexited(mouseevent event) { Bileşenin constructor metodu dinleyici (listener) ekler: addmouselistener(new MouseAdapter() { public void mousepressed(mouseevent event) { mouse action goes here ); 19

20 Araba Hareket Ettiren Program Araba şeklini hareket ettirmek için fareyi kullanın Araba panelinin mouse + mouse motion listeners vardır. mousepressed farenin basıldığı noktayı hatırlar. mousedragged araba şeklini tercüme eder. Ch6/car/CarComponent.java Ch6/car/CarShape.java Ch6/car/CarMover.java (main) 20

21 CarComponent.java import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import javax.swing.*; import java.util.*; // A component that shows a scene composed of items. public class CarComponent extends JComponent { private CarShape car; private Point mousepoint; public CarComponent() { car = new CarShape(20, 20, 50); addmouselistener(new MouseAdapter() { public void mousepressed(mouseevent event) { mousepoint = event.getpoint(); if (!car.contains(mousepoint)) mousepoint = null; ); addmousemotionlistener(new MouseMotionAdapter() { public void mousedragged(mouseevent event) { if (mousepoint == null) return; Point lastmousepoint = mousepoint; mousepoint = event.getpoint(); double dx = mousepoint.getx() - lastmousepoint.getx(); double dy = mousepoint.gety() - lastmousepoint.gety(); car.translate((int) dx, (int) dy); repaint(); ); public void paintcomponent(graphics g) { Graphics2D g2 = (Graphics2D) g; car.draw(g2); 21

22 CarShape.java (1) import java.awt.*; import java.awt.geom.*; // A car shape. public class CarShape { private int x; private int y; private int width; /** Constructs a car x the left of the bounding y the top of the bounding width the width of the bounding rectangle */ public CarShape(int x, int y, int width) { this.x = x; this.y = y; this.width = width; public void draw(graphics2d g2) { Rectangle2D.Double body = new Rectangle2D.Double(x, y + width / 6, width - 1, width / 6); Ellipse2D.Double fronttire = new Ellipse2D.Double(x + width / 6, y + width / 3, width / 6, width / 6); Ellipse2D.Double reartire = new Ellipse2D.Double(x + width * 2 / 3, y + width / 3, width / 6, width / 6); // The bottom of the front windshield Point2D.Double r1 = new Point2D.Double(x + width / 6, y + width / 6); // The front of the roof Point2D.Double r2 = new Point2D.Double(x + width / 3, y); // The rear of the roof Point2D.Double r3 = new Point2D.Double(x + width * 2 / 3, y); // The bottom of the rear windshield Point2D.Double r4 = new Point2D.Double(x + width * 5 / 6, y + width / 6); Line2D.Double frontwindshield = new Line2D.Double(r1, r2); Line2D.Double rooftop = new Line2D.Double(r2, r3); Line2D.Double rearwindshield = new Line2D.Double(r3, r4); 22

23 CarShape.java (2). g2.draw(body); g2.draw(fronttire); g2.draw(reartire); g2.draw(frontwindshield); g2.draw(rooftop); g2.draw(rearwindshield); public boolean contains(point2d p) { return x <= p.getx() && p.getx() <= x + width && y <= p.gety() && p.gety() <= y + width / 2; public void translate(intdx, intdy) { x += dx; y += dy; 23

24 CarMover.java import java.awt.*; import java.awt.geom.*; import java.awt.event.*; import javax.swing.*; /** A program that allows users to move a car with the mouse. */ public class CarMover { public static void main(string[] args) { JFrame frame = new JFrame(); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.add(new CarComponent()); frame.setsize(frame_width, FRAME_HEIGHT); frame.setvisible(true); private static final int FRAME_WIDTH = 400; private static final int FRAME_HEIGHT = 400; 24

25 Araba Hareket Ettiren Programın Ayrıntılı Sınıf Diagramı 25

26 Together da UML Sınıf Diagramı 26

27 Görüntü Düzenleyicisi Çeşitli şekiller çizer. Kullanıcı şekil ekleyebilir, silebilir, hareket ettirebilir. Kullanıcı şekli fare ile seçer. Seçilen cisim boyanır. 27

28 SceneShape Arayüz Tipi Seçili olma durumunun kayıtarını tutar Düz veya seçili şekli seçer Şekli hareket ettirir. hit testing: Nokta da (örn: farenin durumu) burda mı? 28

29 SceneShape Arayüz Tipi public interface SceneShape { void setselected(boolean b); boolean isselected(); void draw(graphics2d g2); void drawselection(graphics2d g2); void translate(int dx, int dy); boolean contains(point2d apoint); 29

30 CarShape ve HouseShape Sınıfları public class CarShape implements SceneShape {... public void setselected(boolean b) { selected = b; public boolean isselected() { return selected; private boolean selected; public class HouseShape implements SceneShape {... public void setselected(boolean b) { selected = b; public boolean isselected() { return selected; private boolean selected; 30

31 1. Katılım Kavramı 2. Kalıtımla Grafik Programlama 3. Soyut Sınıflar 4. Kalıp Metot (TEMPLATE METHOD) Modeli 5. Korumalı Arayüzler (Protected Interfaces) 6. Swing Bileşenlerinin Hiyerarşisi 7. Standart Geometrik Şekillerin Hiyerarşisi 8. Hata Sınıflarının Hiyerarşisi 9. Kalıtımın Kullanılmayacağı Zamanlar 31

32 Factor out common behavior (setselected, isselected) Soyut Sınıflar Alt sınıflar benzer davranışları kalıtır. Bazı metodlar hala tanımlanmamıştır. (draw, drawselection, translate, contains) public class SelectableShape implements Item { public void setselected(boolean b) { selected = b; public boolean isselected() { return selected; private boolean selected; 32

33 Soyut Sınıflar 33

34 Soyut Sınıflar SelectableShape tüm SceneShape metodlarını tanımlamaz Soyuttur. public abstract class SelectableShape implements SceneShape HouseShape ve CarShape asıl sınıflardır. Bir örneğini oluşturamazsınız. SelectableShape s = new SelectableShape(); // HAYIR Ancak değişkenleri olabilir: SelectableShape s = new HouseShape(); // OK 34

35 Soyut Sınıflar ve Arayüz Tipleri Soyut sınıfların alanları vardır. Arayüzlerin sadece sabitleri olabilir. (public static final) Soyut sınıflar metod tanımlayabilir. Arayüzler sadece metodun deklarasyonunu yapabilir. Bir sınıf istenildiği kadar arayüz kullanabilir. Java da bir sınıf sadece bir başka sınıfın alt sınıfı olabilir. 35

36 Görüntü Düzenleyicisi Mouse listener cismi seçer/bırakır Mouse motion listener cismi sürükler Kaldırma butonu seçili cismi kaldırır. Ch6/scene1/SceneComponent.java Ch6/scene1/SceneEditor.java Ch6/scene1/HouseShape.java 36

37 Görüntü Düzenleyicisi Sınıf Diagramı 37

38 Uniform Highlighting Teknik Eski Yaklaşım: Bütün şekiller kendi durumunu çizecek Bu yaklaşım tutarsız(inconsistent) Daha iyi bir yaklaşım: shift(kaydır), draw(çiz), shift, draw, orijinal durumuna geri dönmek. Define in SelectableShape public void drawselection(graphics2d g2) { translate(1, 1); draw(g2); translate(1, 1); draw(g2); translate(-2, -2); 38

39 Kalıp Metot drawselection draw metodunu çağırır. SelectableShape da draw metodu tanıtılmalıdır. Bu seviyede uygulama yapılamaz. Soyut metot olarak tanıtılır. public abstract void draw(graphics2d g2) CarShape, HouseShape da tanıtılır. drawselection metodu draw, translate metodlarını çağırır. drawselection han gi methodu çağıracağını bilmez-- polymorphism drawselection bir kalıp metotdur. Ch6/scene2/SelectableShape.java Ch6/scene2/HouseShape.java 39

40 1. Katılım Kavramı 2. Kalıtımla Grafik Programlama 3. Soyut Sınıflar 4. Kalıp Metot (TEMPLATE METHOD) Modeli 5. Korumalı Arayüzler (Protected Interfaces) 6. Swing Bileşenlerinin Hiyerarşisi 7. Standart Geometrik Şekillerin Hiyerarşisi 8. Hata Sınıflarının Hiyerarşisi 9. Kalıtımın Kullanılmayacağı Zamanlar 40

41 Özet Kalıp Metot (TEMPLATE METHOD) Modeli Bir algoritma birden fazla tip için uygulanabilmeli. Algoritma birincil işlemlere parçalanabilmeli. Birincil işlemler her tip için farklı olabilir. Birincil işlemlerin sırası tipe bağlı değildir. Çözüm Algoritma için metodu ve birincil işlemler için soyut metodları olan bir üst sınıf tanımlanır. Birincil işlemleri uygun sırada çağırabilmek için algoritma yazılır. Birincil işlemler üst sınıfta tanımlanmaz veya içerisi boş olacak sekilde tanımlanır. Her alt sınıf kendi birincil işlemlerini tanımlar. Ancak algoritmayla ilgilenmez. 41

42 Kalıp Metot (TEMPLATE METHOD) Modeli 42

43 Kalıp Metot (TEMPLATE METHOD) Modeli Tasarım Modelindeki İsim AbstractClass ConcreteClass templatemethod() primitiveop1(), primitiveop2() Kullanılan İsim (Selectable shapes) SelectableShape CarShape, HouseShape drawselection translate, draw 43

44 Bileşik Şekiller GeneralPath: Şekillerin sırası GeneralPath path = new GeneralPath(); path.append(new Rectangle(...), false); path.append(new Triangle(...), false); g2.draw(path); Avantajı: içerme testi hazırdır. path.contains(apoint); Ch6/scene3/CompoundShape.java Ch6/scene3/HouseShape.java 44

45 Bileşik Şekiller 45

46 Üst Sınıfın Özelliklerine Ulaşma Neden HouseShape constructor metodu add metodunu çağırıyor? public HouseShape() { add(new Rectangle(...)); add(new Triangle(...)); Neden sadece path.append(new Rectangle(...)); HouseShape, path alanını kalıtır. HouseShape, path a ulaşamaz. path üst sınıf için özeldir (private). 46

47 1. Katılım Kavramı 2. Kalıtımla Grafik Programlama 3. Soyut Sınıflar 4. Kalıp Metot (TEMPLATE METHOD) Modeli 5. Korumalı Arayüzler (Protected Interfaces) 6. Swing Bileşenlerinin Hiyerarşisi 7. Standart Geometrik Şekillerin Hiyerarşisi 8. Hata Sınıflarının Hiyerarşisi 9. Kalıtımın Kullanılmayacağı Zamanlar 47

48 Korumalı (Protected) Ulaşım CompoundShape.add metodunu protected yapalım. HouseShape i korur: diğer sınıflar graffiti ekleyemez Protected özellikler alt sınıfların metodları tarafından erişilebilir......ve aynı paket (package) içerisindeki diğer metodlar tarafından erişilebilir. Alanları protected yapmak kötü bir fikirdir. protected GeneralPath path; // HAYIR Metodlar protected yapılabilir. protected void add(shape s) // İYİ Korumalı arayüz public arayüzden ayrılır. (farklıdır) 48

49 1. Katılım Kavramı 2. Kalıtımla Grafik Programlama 3. Soyut Sınıflar 4. Kalıp Metot (TEMPLATE METHOD) Modeli 5. Korumalı Arayüzler (Protected Interfaces) 6. Swing Bileşenlerinin Hiyerarşisi 7. Standart Geometrik Şekillerin Hiyerarşisi 8. Hata Sınıflarının Hiyerarşisi 9. Kalıtımın Kullanılmayacağı Zamanlar 49

50 Swing Bileşenlerinin Hiyerarşisi Hiyerarşinin temeli: Component Çok sayıda ortak metod vardır: int getwidth() int getheight() Dimension getpreferredsize() void setbackground(color c)... En önemli alt sınıf: Container 50

51 Swing Bileşenlerinin Hiyerarşisi 51

52 Swing Bileşenlerinin Hiyerarşisi Tarih: Önce AWT geldi, Abstract Window Toolkit Orjinal bileşener kullanıldı Güç farkedilen platform kararsızlıkları Bir kere yaz, her yerde çalıştır -> Bir kere yaz, her yerde tamir et Swing bileşenleri boş pencereler üzerine çizer Çoklu look and feel uygulamalarını destekler. 52

53 Look and Feel 53

54 Swing Bileşenlerinin Hiyerarşisi Swing bileşenlerinin temeli: JComponent Container ın alt sınıfı Bazı Swing bileşenleri container dır. Java çoklu kalıtımı desteklemez. JLabel, JButton,... JComponent ın alt sınıflarıdır. Ara Sınıflar: AbstractButton, JTextComponent 54

55 1. Katılım Kavramı 2. Kalıtımla Grafik Programlama 3. Soyut Sınıflar 4. Kalıp Metot (TEMPLATE METHOD) Modeli 5. Korumalı Arayüzler (Protected Interfaces) 6. Swing Bileşenlerinin Hiyerarşisi 7. Standart Geometrik Şekillerin Hiyerarşisi 8. Hata Sınıflarının Hiyerarşisi 9. Kalıtımın Kullanılmayacağı zamanlar 55

56 Geometrik Şekillerin Hiyerarşisi Java nın ilk versiyonu: birkaç şekil, tamsayı koordinatlar Point Rectangle Polygon Java 2: gelişmiş şekiller, ondalık sayı noktalı koordinatlar Point2D Rectangle2D RoundRectangle2D Line2D Ellipse2D Arc2D QuadCurve2D CubicCurve2D GeneralPathArea Point2D hariç hepsi Shape arayüzünü temel alır 56

57 Geometrik Şekillerin Hiyerarşisi 57

58 Dörtgensel Şekiller RectangularShape ın alt sınıfdır: Rectangle2D RoundRectangle2D Ellipse2DArc2D RectangularShape kullanışlı metodlara sahiptir getcenterx/getcentery getminx/getminy getmaxx/getmaxy getwidth/getheight setframefromcenter/setframefromdiagonal 58

59 Float/Double Sınıfları Her sınıfın iki alt sınıfı vardır: örn: Rectangle2D.Double Rectangle2D.Float Ayrıca iç sınıflar vardır. (daha uzun sınıf isimlerini engellemek için) Uygulamaların double/float alanları vardır. Bir çok metodun double parametreleri/geri dönen değerleri vardır(return values) vardır. 59

60 Float/Double Sınıfları public class Rectangle2D { public static class Float extends Rectangle2D { public double getx() { return x; public double gety() { return y; public double getwidth() { return width; public double getheight() { return height; public void setrect(float x, float y, float w, float h) { this.x = x; this.y = y; this.width = w; this.height = h; public void setrect(double x, double y, double w, double h) { this.x = (float)x; this.y = (float)y; this.width = (float)w; this.height = (float)h;... public float x; public float y; public float width; public float height;... 60

61 Float/Double Sınıfları public static class Double extends Rectangle2D public double getx() { return x; public double gety() { return y; public double getwidth() { return width; public double getheight() { return height; public void setrect(double x, double y, double w, double h) { this.x = x; this.y = y;... this.width = w; this.height = h;... public double x; public double y; public double width; public double height; 61

62 Float/Double Sınıfları Rectangle2D sınıfının ön değişkeni yoktur (instance variables). Kalıp Metod (Template Method) Modeli: public boolean contains(double x, double y) { double x0 = getx(); double y0 = gety(); return x >= x0 && y >= y0 && x < x0 + getwidth() && y < y0 + getheight(); Üretmeden sonra iç sınıf kullanılmasına gerek yoktur. Rectangle2D rect = new Rectangle2D.Double(5, 10, 20, 30); 62

63 Kalıp Metot (TEMPLATE METHOD) Modeli Tasarım Modelindeki İsim AbstractClass ConcreteClass templatemethod() primitiveopn() Kullanılan İsim (Rectangles) Rectangle Rectangle2D.Double contains getx, gety, getwidth, getheight 63

64 1. Katılım Kavramı 2. Kalıtımla Grafik Programlama 3. Soyut Sınıflar 4. Kalıp Metot (TEMPLATE METHOD) Modeli 5. Korumalı Arayüzler (Protected Interfaces) 6. Swing Bileşenlerinin Hiyerarşisi 7. Standart Geometrik Şekillerin Hiyerarşisi 8. Hata Sınıflarının Hiyerarşisi 9. Kalıtımın Kullanılmayacağı zamanlar 64

65 Hata Sınıflarının Hiyerarşisi Hiyerarşinin temeli: Throwable İki alt sınıf: Error, Exception Error un alt sınıfları: ölümcül (hafıza dışına çıkılması (memory=ram), assertionların başarısızlığı) Exception un alt sınıfları: Bir çok kontrol edilmiş hata: (I/O, class not found) RuntimeException alt sınıfları kontrol edilmemiştir. (null pointer, index out of bounds) 65

66 Hata Sınıflarının Hiyerarşisi 66

67 Birden fazla catch olabilir: Hata Yakalama try{ code that may throw exceptions catch (ExceptionType1 exception1){ handler for ExceptionType1 catch (ExceptionType2 exception1){ handler for ExceptionType2... Üst sınıf tarafından yakalanabilir: catch (IOException exception), FileNotFoundException u yakalar. 67

68 Hata Sınıflarını Tanımlama Hatanın kontrol edilileceğine karar verme Exception or RuntimeException alt sınıfı İki constructor metodu tanımlayın public class IllegalFormatException extends Exception { public IllegalFormatException() { public IllegalFormatException(String reason) { super(reason); Gerektiğinde hata atımı (throw Exception)yapılmalı: throw new IllegalFormatException("number expected"); 68

69 1. Katılım Kavramı 2. Kalıtımla Grafik Programlama 3. Soyut Sınıflar 4. Kalıp Metot (TEMPLATE METHOD) Modeli 5. Korumalı Arayüzler (Protected Interfaces) 6. Swing Bileşenlerinin Hiyerarşisi 7. Standart Geometrik Şekillerin Hiyerarşisi 8. Hata Sınıflarının Hiyerarşisi 9. Kalıtımın Kullanılmayacağı Zamanlar 69

70 Kalıtımın Kullanılmayacağı Zamanlar Bir C++ derleyicisi kullanım kılavuzundan: public class Point { public Point(int anx, int ay) {... public void translate(int dx, int dy) {... private int x; private int y; public class Circle extends Point // DON'T { public Circle(Point center, int radius) {... public void draw(graphics g) {... private int radius; 70

71 Kalıtımın Kullanılmayacağı Zamanlar Huh? Çember nokta değildir. Kazayla kalıtılan metodu translate çember için kullanılmış. Aynı kılavuz Rectangle sınıfını Point in bir alt sınıfı olarak kullanıyor: public class Rectangle extends Point // DON'T { public Rectangle(Point corner1, Point corner2) {... public void draw(graphics g) {... public void translate(int dx, int dy) {... private Point other; 71

72 Kalıtımın Kullanılmayacağı Zamanlar Bu daha da tuhaf: public void translate(int dx, int dy) { super.translate(dx, dy); other.translate(dx, dy); Bunu neden yapmışlar? Soyut sınıf Shape ten kaçınmak istenmiş. Çıkar yol: aggregation kullanımı. Çember, Dikdörtgen sınıflarının noktaları vardır. 72

73 Kalıtımın Kullanılmayacağı Zamanlar Java standart kütüphanesi: public class Stack<T> extends Vector<T> // DON'T { T pop() {... void push(t item) { Kötü fikir: Vector ün tüm metodlarını kalıtmak. Stack in orta kısmına veri koyup veri çıkarabilirmiyiz. Çıkar yol: aggregation kullanımı. public class Stack<T> {... private ArrayList<T> elements; 73

74 Kaynaklar Bu ders Object Oriented Design and Patterns [1] kitabını temel alır. Farklı kaynaklardan adapte edilmiş ve benim kendi slaytlarım da bulunmaktadır. Ana Kaynaklar: 1. Object Oriented Design and Patterns (OODP), 2nd Edition, Cay Horstmann, John Wiley, ISBN: ,

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI)

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI) MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI) Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web

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ı

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ı

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 18: Formatlı Grafik Kullanıcı Arayüzü Oluşturma

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 18: Formatlı Grafik Kullanıcı Arayüzü Oluşturma MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 18: Formatlı Grafik Kullanıcı Arayüzü Oluşturma 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=107

Detaylı

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

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1 Görsel Programlama DERS 02 Görsel Programlama - Ders02/ 1 Kodun Tekrar Kullanımı ve Kalıtım(Inheritance) Nesneye yönelik programlamanın diğer programlama paradigmalarına karşı bir avantajı kodun yeniden

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ı

Çizgilerin kalınlığını Dolguları Temel dönüşüm işlemlerini Bileşik nesne oluşturma işlemlerini kontrol etmemizi sağlar.

Çizgilerin kalınlığını Dolguları Temel dönüşüm işlemlerini Bileşik nesne oluşturma işlemlerini kontrol etmemizi sağlar. JAVA2D Java2D API Geniş çaplı 2D geometrik şekillerin çizdirilmesini Birleşik (Composite) nesnelerin oluşturmasını Renk yönetimini kolaylaştıracak genişletilmiş renk desteği özelliklerini Kompleks dokümanlar

Detaylı

Java da. ve AWT ve SWING Kütüphaneleri. BBS-515 Nesneye Yönelik Programlama. Ders #8 (9 Aralık 2009)

Java da. ve AWT ve SWING Kütüphaneleri. BBS-515 Nesneye Yönelik Programlama. Ders #8 (9 Aralık 2009) Java da Applet ler ler (...devam) ve AWT ve SWING Kütüphaneleri BBS-515 Nesneye Yönelik Programlama Ders #8 (9 Aralık 2009) İçerikç Geçen ders: Java da İstemci Tarafı Uygulamalar ( Applets ) Örnekler Bu

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 Metot Yeniden Tanımlama, Metot Aşırı Yükleme, Dinamik Metot Yükleme, Soyut Sınıflar, Soyut Metotlar, Arayüzler, Çoklu Kalıtım, Anonim Sınıflar ve java.lang.object Sınıflar Programcı

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ı

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ı

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ı

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ı

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ı

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

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10. Yrd.Doç.Dr.Hacer Karacan NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10 Yrd.Doç.Dr.Hacer Karacan İçerik Grafik Kullanıcı Arayüzü Uygulamaları AWT, Swing Arayüz Yerleşim Düzeni Temel GKA Bileşenleri Olay Yönetimi Olay Dinleyiciler Olay

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ı

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

İç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. İçerik Geçen ders: Kalıtım ( inheritance ) Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama Ders #5 (18 Kasım 2009) Bu ders: Kalıtım ( inheritance ) tekrar ziyaret Java da super kullanımı

Detaylı

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

Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama Ders #5 (18 Kasım 2009) İçerik Geçen ders: Kalıtım ( inheritance ) Bu ders: Kalıtım ( inheritance ) tekrar ziyaret Java da super kullanımı

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ı

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ı

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals The European Union s Making the Labour Market more Inclusive III programme For North Cyprus Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals Module

Detaylı

Görsel Programlama DERS 07. Görsel Programlama - Ders07/ 1

Görsel Programlama DERS 07. Görsel Programlama - Ders07/ 1 Görsel Programlama DERS 07 Görsel Programlama - Ders07/ 1 KULLANICI ARAYÜZÜ GELİŞTİRME Kullanıcı arayüzleri (GUI-Graphical User Interface) kullanıcının işletim sisteminin pencere yöneticisinde görebildiği,

Detaylı

Java da, tüm değişkenlerin kullanılmadan önce tanımlanması edilmesi gerekir. Bir değişken tanımlamanın temel gösterimi bu şekildedir:

Java da, tüm değişkenlerin kullanılmadan önce tanımlanması edilmesi gerekir. Bir değişken tanımlamanın temel gösterimi bu şekildedir: BÖLÜM 4 Değişken Tipleri Java da, tüm değişkenlerin kullanılmadan önce tanımlanması edilmesi gerekir. Bir değişken tanımlamanın temel gösterimi bu şekildedir: type identifier [ = value][, identifier [=

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ı

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ı

MOBIL UYGULAMA GELIŞTIRME

MOBIL UYGULAMA GELIŞTIRME MOBIL UYGULAMA GELIŞTIRME PELIN YILDIRIM FATMA BOZYIĞIT YZM 3214 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Bu Derste Java Programlama (Crash Course) Class, Nesne, Metodlar, Overloading,

Detaylı

Görsel Programlama DERS 08. Görsel Programlama - Ders08/ 1

Görsel Programlama DERS 08. Görsel Programlama - Ders08/ 1 Görsel Programlama DERS 08 Görsel Programlama - Ders08/ 1 Java da Olay Yönetimi (Event Handling) Program çalışırken kullanıcı tarafından gerçekleştirilen tüm hareketlere olay(event) denilir. Kullanıcının

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ı

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

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 4. Yrd.Doç.Dr.Hacer Karacan NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 4 Yrd.Doç.Dr.Hacer Karacan İçerik Nesne Oluşturma Nesnenin Yaşam Süreci Dahili Sınıflar Nesne Oluşturma Java dahil pek çok programlama dilinde nesne oluşturmak için

Detaylı

MOBİL UYGULAMA GELİŞTİRME

MOBİL UYGULAMA GELİŞTİRME MOBİL UYGULAMA GELİŞTİRME Hedefler Bu üniteyi çalıştıktan sonra; Java programlama dilinde görsel arayüz tasarımı yapabilir, Java programlama dilinde görsel bileşenler üzerinde olay tanımlayabilir. Android

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ı

BMH-303 Nesneye Yönelik Programlama

BMH-303 Nesneye Yönelik Programlama BMH-303 Nesneye Yönelik Programlama this anahtar kelimesi ve kalıtım Dr. Musa ATAŞ Siirt Üniversitesi Bilgisayar Mühendisliği this kelimesinin kullanım yerleri Aktif sınıfın örneğine referans vermek için

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ı

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

Interface Comparator. Kılgılayan sınıf: Collator. Bildirimi: public interface Comparator Interface Comparator java.util Interface Comparator Kılgılayan sınıf: Collator Bildirimi: public interface Comparator Comparator arayüzü Java Collections Framework un bir üyesidir. Bir nesneler koleksiyonu

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ı

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

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

Yazılım Kodlama ve İ simlendirme Standartları v1.0 Yazılım Kodlama ve İ simlendirme Standartları v1.0 İçerik Yazılım Kodlama ve İsimlendirme Standartları... 2 1. Amaç... Hata! Yer işareti tanımlanmamış. 2. Kapsam... Hata! Yer işareti tanımlanmamış. 3.

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ı

11- FONKSİYONLAR (FUNCTIONS)

11- FONKSİYONLAR (FUNCTIONS) 1 Fonksiyon : Belirli bir işi yapan programın bir isim altına tanımlanarak, o isimle çağrılarak kullanılması. Fonksiyonun faydaları : Programın modülerliğini arttırır. Aynı işi yapan program parçası tekrar

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ı

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

Arayüz (Interface) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 7 1 Arayüz (Interface) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 7 1 Arayüz (Interface) Arayüzler, soyut sınıfların bir üst modeli gibi düşünülebilir. Arayüzler tamamen birleştirici bir rol oynamaları

Detaylı

Erişim konusunda iki taraf vardır:

Erişim konusunda iki taraf vardır: Erişim Erişim konusunda iki taraf vardır: Kütüphaneyi kullanan kişiler (client) Kütüphaneyi yazan kişiler Paket (package) Paketler kütüphaneyi oluşturan elemanlardır. PaketKullanim.java Varsayılan Paket

Detaylı

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

Sınıflar ve Yapılar Arasındaki Farklılıklar. Değer ve Referans Türde Olan Aktarımlar Nesneler ve Türler Sınıflar ve Yapılar Arasındaki Farklılıklar Sınıf Üyeleri Değer ve Referans Türde Olan Aktarımlar Yapıcılar ve Statik Yapıcılar Read-Only Statik Sınıflar Object Sınıfı Sınıflar Sınıflar

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ı

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ı

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ı

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

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN PAKET (PACKAGE) Paketler kütüphaneleri oluşturan elemanlardır. import java.io.bufferedreader;

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ı

JavaFX Temelleri (1)

JavaFX Temelleri (1) JavaFX Temelleri (1) Sahne Çizelgesi (Scene Graph), Yerleşim Panoları (Layout Panes), Uygulama Soyut Sınıfı ve İskeleti, Uygulama Sahnesi (Application Scene), GUI Olayları (GUI Events), Olay İşleme (Event

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 5 Nesneye Yönelik Programlamaya Giriş Bu

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ı

Java da İstemci Tarafı Uygulamalar

Java da İstemci Tarafı Uygulamalar Java da İstemci Tarafı Uygulamalar ( Applets ) BBS-515 Nesneye Yönelik Programlama Ders #7 (7 Aralık 2009) İçerikç Geçen ders: Java da dizi ( array ) ve dizgi ( String ) tanımlama Örnekler Bu ders: 1.

Detaylı

3. Bölüm Soyut Sınıflar (Abstract Classes) Java ile Nesne Merkezli ve Fonksiyonel Programlama Akın Kaldıroğlu

3. Bölüm Soyut Sınıflar (Abstract Classes) Java ile Nesne Merkezli ve Fonksiyonel Programlama Akın Kaldıroğlu Java ile Nesne Merkezli ve Fonksiyonel Programlama 3. Bölüm Soyut Sınıflar (Abstract Classes) Akın Kaldıroğlu Kasım 2015 Küçük Ama Önemli Bir Konu Ø Bu dosya ve beraberindeki tüm, dosya, kod, vb. eğitim

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ı

Java Dersi. Altuğ Bilgin Altıntaş

Java Dersi. Altuğ Bilgin Altıntaş Java Dersi Altuğ Bilgin Altıntaş Bu Dönem Hakkında Corba Servlet RMI Temel Kısım EJB JSP XML 2 JDBC JNI Çalışma Evreleri 6 Çalışma Evreleri 7 Java dosyasının hali 7 İlk Java uygulaması 7 Ciddi bir uygulama

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ü Not: Bu dersin sunumları, Java Programlama Dili ve Yazılım Tasarımı, Altuğ B. Altıntaş, Papatya

Detaylı

TEMPLATES. Binnur Kurt kurt@cs.itu.edu.tr. Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. C++ ile Nesneye Dayalı Programlama 1

TEMPLATES. Binnur Kurt kurt@cs.itu.edu.tr. Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. C++ ile Nesneye Dayalı Programlama 1 PARAMETRİKÇOKŞEKİLLİLİK: TEMPLATES Binnur Kurt kurt@cs.itu.edu.tr Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi C++ ile Nesneye Dayalı Programlama 1 Sınıf Yapısı Kalıtım Çok Şekillilik Templates

Detaylı

7. HAFTA. Erişim Belirleyiciler

7. HAFTA. Erişim Belirleyiciler 7. HAFTA Erişim Belirleyiciler Java dilinde 4 tür erişim belirleyicisi vardır; bunlar friendly, public, protected ve private dir. Bu erişim belirleyiciler global alanlar (statik veya değil) ve yordamlar

Detaylı

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

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2 1 Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2 Eclipse Mimarisi 4 Java Teknolojisine Genel Bir Bakış 6 Taşınabilirlik 6 Java Derleyicisi ve Bytecode 6 Java Sanal Makinası (Java Virtual Machine - JVM)

Detaylı

Ders 8: Metotlar. barisgokce.com

Ders 8: Metotlar. barisgokce.com Ders 8: Metotlar Hazırlayan : Öğr. Grv.. Barış GÖKÇE Đletişim im : www.barisgokce barisgokce.com Metotlar C# içerisinde bir veya birden fazla kod bulunduran kod bloklarıdır. Bir nesnenin veya sınıfın programı

Detaylı

Business Delegate Tasarım Şablonu KurumsalJava.com

Business Delegate Tasarım Şablonu KurumsalJava.com Business Delegate Tasarım Şablonu KurumsalJava.com Özcan Acar Bilgisayar Mühendisi http://www.ozcanacar.com Modern yazılım sistemleri birden fazla katmandan oluşur. Bu katmanlar her zaman aynı server üzerinde

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ı

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ı

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

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir; abstract Sınıflar 1 Özet sınıflar ya da özet metotlar abstract anahtar sözcüğü kullanılarak tanımlanırlar. Bir temel sınıf içinde bildirilen abstract metotların içeriği boştur. Kendisinden yeni bir instance

Detaylı

JAVA DEĞİŞKEN VE OPERATÖRLER. M.İLKUÇAR - 1

JAVA DEĞİŞKEN VE OPERATÖRLER. M.İLKUÇAR - 1 JAVA DEĞİŞKEN VE OPERATÖRLER M.İLKUÇAR - imuammer@yahoo.com 1 JAVA Değişken : program içerisinde değeri dinamik olarak değişebilen yapılardır. Belirli bir tipi vardır. Bu yüzden tanımlandığı tipteki verileri

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İ: 2 hafta ÖDEV NO: 5 1- BANKA

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ı

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ C# Yazım Kuralları 1 İçindekiler C# Yazım Kuralları Veritipleri Değişkenler Operatörler Sınıflar Nesneler, Özellik, Metot ve Olay Bileşenler 2 C# yazım kuralları Deyimlerde büyük küçük harf yazıma uyulmalı

Detaylı

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

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler BMÜ-111 Algoritma ve Programlama Bölüm 5 Tek Boyutlu Diziler Yrd. Doç. Dr. İlhan AYDIN 1 Problem 100 adet sayı okumak istediğimizi düşünelim. Bu sayıların ortalaması hesaplanacak ve sayıların kaç tanesinin

Detaylı

İsimler ve Kapsam. Hafta 4 Ders 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

İsimler ve Kapsam. Hafta 4 Ders 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI BLG339 PROGRAMLAMA DİLLERİ KAVRAMI Hafta 4 Ders 2 Yrd. Doç. Dr. Melike Şah Direkoğlu Alındığı kaynak: Addison-Wesley s Programming Language Concepts slaytları ve Prof. Dr. Tuğrul Yılmaz ın ders notlarından

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 7 Kalıtım - II Bu bölümde; Soyut Sınıflar,

Detaylı

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

KUYRUKLAR QUEUES. Doç. Dr. Aybars UĞUR KUYRUKLAR QUEUES Doç. Dr. Aybars UĞUR Giriş Bu bölümde gerçek yaşamdaki kuyrukların bilgisayardaki gösterimleri üzerinde durulacaktır. Kuyruklar, eleman eklemelerin sondan (rear) ve eleman çıkarmaların

Detaylı

Start : Bu method init methodundan hemen sonra çalışır ve applet dosyası yürütülmeye başladığında çalışmaya başlar.

Start : Bu method init methodundan hemen sonra çalışır ve applet dosyası yürütülmeye başladığında çalışmaya başlar. Java Applet Nedir? Java applet nedir?apllet Örnekleri,applet ve japplet farkı Applet Nedir? Applet Web Sayfaları üzerinde yayınlabilen class dosyalarıdır. Bir applet mutlaka Apllet sınıfının alt sınıfı

Detaylı

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 8: Sınıf (Class) Yapılarına Giriş

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 8: Sınıf (Class) Yapılarına Giriş MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 8: Sınıf (Class) Yapılarına 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=107

Detaylı

Görsel Programlama (Visual Programming)

Görsel Programlama (Visual Programming) Görsel Programlama (Visual Programming) 2014-2015 Bahar Dönemi ListBox 1 2 Bileşeni(Nesnesi) Text Özelliği TextBox nesnesi gibi kullanılabilir 3 Item Ekleme 4 combobox1.maxdropdownitems = 5; combobox1.maxdropdownwidth=200;

Detaylı

Kalıtım (Inheritance)

Kalıtım (Inheritance) Kalıtım (Inheritance) Kocaeli Üniversitesi Kalıtım (Inheritance) Kodların çok kez kullanımı (Software reusability) Mevcut Sınıflardan Yeni Sınıflar Oluşturma Mevcut sınıfın değişken ve fonksiyonları kullanılabilir.

Detaylı

BMM3101 PROGRAMLAMA DİLLERİ

BMM3101 PROGRAMLAMA DİLLERİ 2017-2018 Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü BMM3101 PROGRAMLAMA DİLLERİ Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ Web: http://ikucukkoc.baun.edu.tr Email: ikucukkoc@balikesir.edu.tr

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 7 Abstract (Soyut Sınıflar) Bu bölümde;

Detaylı

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama Nesne Yönelimli Programlama Not: Bu dersin sunumları, Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu, M. Özbayoğlu, M. Erten, O. Ergin kitabı kullanılarak hazırlanmıştır. Konular Giriş Alt Sınıflar

Detaylı

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi İÇİNDEKİLER Değişken Nedir? Değişken kullanımı faydaları. Değişken türleri Değişken görünürlüğü (scope) Değişken türleri arası dönüşümler Örnek

Detaylı

İsimler ve Kapsam. 24 Şubat 2011. Programlama Dilleri - Pamukkale Üniversitesi 1

İsimler ve Kapsam. 24 Şubat 2011. Programlama Dilleri - Pamukkale Üniversitesi 1 İsimler ve Kapsam Tanım: Bir değişkenin kapsamı (scope) değişkenin görülebilir olduğu komutların alanıdır. Görülebilir olduğu alan, bir komut içinde belirlenen değerle kullanılabildiği alandır. Tanım:

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ı

Bölüm 12. Nesne yönelimli programlama desteği

Bölüm 12. Nesne yönelimli programlama desteği Bölüm 12 Nesne yönelimli programlama desteği 12. Bölüm konuları Giriş Nesne yönelimli programlama Nesne yönelimli diller için tasarım konuları C++ dilinde nesne yönelimli programlama desteği Nesne yönelimli

Detaylı

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

İÇİNDEKİLER VII İÇİNDEKİLER İÇİNDEKİLER VII İÇİNDEKİLER 1 JAVA 8 NEDİR? 1 Java Nasıl Çalışır? 3 HOTSPOT Teknolojisi Nedir? 5 Çöp Toplayıcı (GarbageCollector) Nedir? 5 Jar Nedir? 6 Java Geliştirme Ortamı 7 Açıklama Satırıları 8 Nesnel

Detaylı

Veri Yapıları ve Algoritmalar 2006-2007 2.dönem

Veri Yapıları ve Algoritmalar 2006-2007 2.dönem Veri Yapıları ve Algoritmalar 2006-2007 2.dönem Öğretim Elemanları: Dr. A. Şima Etaner-Uyar Dr. Gülşen Cebiroğlu-Eryiğit Dersle ilgili bilgiler Ders Kitabı Data Structures and Algorithms in Java, 4th Ed.,

Detaylı

YZM 2108 Yazılım Mimarisi ve Tasarımı

YZM 2108 Yazılım Mimarisi ve Tasarımı YZM 2108 Yazılım Mimarisi ve Tasarımı Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 1 OOP Hatırlatma Bu bölümde Nesneye Yönelik

Detaylı

JComponent in alt sınıfları

JComponent in alt sınıfları JAVA SWING Javax.Swing paketi Java Foundation Classes (JFC) kütüphanesi içindedir. 134 sınıfı olan, 25 arayüz kılgılayan büyük bir pakettir. Java.AWT (Java Abstract Window Toolkit) paketinin üzerine kuruludur

Detaylı

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

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ AD SOYAD : TESLİM TARİHİ : OKUL NO : TESLİM SÜRESİ : 2 hafta Ödev No : 8 1. ve 2. soruların sayfa çıktıları

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ı

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ı

Liskov Substitution Principle (LSP) Liskov un Yerine Gecme Prensibi KurumsalJava.com

Liskov Substitution Principle (LSP) Liskov un Yerine Gecme Prensibi KurumsalJava.com Liskov Substitution Principle (LSP) Liskov un Yerine Gecme Prensibi KurumsalJava.com Özcan Acar Bilgisayar Mühendisi http://www.ozcanacar.com Barbara Liskov 1 tarafından geliştirilen bu prensip kısaca

Detaylı

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1 Bölüm 11 Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1 11. Bölüm konuları Soyutlama kavramı Veri soyutlamasına giriş Soyut veri tipleri için tasarım konuları Dil örnekleri Parametreli

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA. Yrd.Doç.Dr. Zeynep ORMAN ormanz@istanbul.edu.tr

NESNEYE YÖNELİK PROGRAMLAMA. Yrd.Doç.Dr. Zeynep ORMAN ormanz@istanbul.edu.tr NESNEYE YÖNELİK PROGRAMLAMA Yrd.Doç.Dr. Zeynep ORMAN ormanz@istanbul.edu.tr Kullanım Diyagramları (Use Case Diagram) Kullanım senaryoları sadece düz metin (text) olarak değil, istendiğinde metin yerine

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ı

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

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 Interface Comparable java.lang Interface Comparable Altarayüzleri Delayed, Name, ScheduledFuture Kılgılayan Sınıflar: Authenticator.RequestorType, BigDecimal, BigInteger, Boolean, Byte, ByteBuffer,

Detaylı

1 PROGRAMLAMAYA GİRİŞ

1 PROGRAMLAMAYA GİRİŞ İÇİNDEKİLER IX İÇİNDEKİLER 1 PROGRAMLAMAYA GİRİŞ 1 Problem Çözme 1 Algoritma 1 Algoritmada Olması Gereken Özellikler 2 Programlama Dilleri 6 Programlama Dillerinin Tarihçesi 6 Fortran (Formula Translator)

Detaylı

Decorator Tasarım Şablonu

Decorator Tasarım Şablonu Decorator Tasarım Şablonu KurumsalJava.com Özcan Acar Bilgisayar Mühendisi http://www.ozcanacar.com http://www.javadergisi.com Mevcut bir sınıf hiyerarşisini ya da sınıfın yapısını değiştirmeden, oluşturulan

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ı

Cahit GÜNGÖR Hacettepe Üniversitesi Bilişim Enstitüsü. Sorumluluk Zinciri. Kod Üretme (Code Generation)

Cahit GÜNGÖR Hacettepe Üniversitesi Bilişim Enstitüsü. Sorumluluk Zinciri. Kod Üretme (Code Generation) Cahit GÜNGÖR Hacettepe Üniversitesi Bilişim Enstitüsü Sorumluluk Zinciri (Chain of Responsibility) Yazılım Mimarileri Kod Üretme (Code Generation) Anahatlar Tanım Örüntünün Amacı Ne zaman Gerçekleştiririz?

Detaylı

Görsel Programlama (Visual Programming) 2.Hafta

Görsel Programlama (Visual Programming) 2.Hafta Görsel Programlama (Visual Programming) 2.Hafta 2016-2017 Bahar Dönemi Class Yapısı ve Form 1Muhammer İLKUÇAR, MAKÜ-2015 BURDUR Class - Obje Nesne (Nesne tabanlı programlama) İnsan ırkının ortak özelliklerini

Detaylı