CENG 217 Object Oriented Design. Doç. Dr. Halûk Gümüşkaya /
|
|
- Nuray Onarıcı
- 8 yıl önce
- İzleme sayısı:
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) 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 ) 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) 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 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 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. Ö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.
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 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
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 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
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.
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 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)
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 İç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. [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 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 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Ü
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 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
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 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:
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.
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 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 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 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
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 İç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 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: 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 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.*/
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 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 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 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 İç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 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)
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 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) 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 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
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
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 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 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 (PACKAGE) Paketler kütüphaneleri oluşturan elemanlardır. import java.io.bufferedreader;
Detaylı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) 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 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
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 ( 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
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 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ş 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
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
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 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
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 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 Ö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)
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İŞ
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 Ö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 - 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İ 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
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ı 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 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
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 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 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.
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ş 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) 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) 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İ
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 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 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 İÇİ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 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.
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 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 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 Öğ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ı 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ı
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İ 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
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 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 Ö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 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 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 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
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İŞ
İÇİ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 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ş 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 (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 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ı