MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 7: Sınıf (Class) Yapıları (Örnekler) 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 1 ERİŞİM DEĞİŞTİRİCİ (ACCESS MODIFIER) KAVRAMI • public, private ve protected olarak 3 adet access modifier‘den bahsedeceğiz. • Bunlara ek olarak hiçbir access modifier yazmadığınız durumlarda ne olduğuna da değineceğiz. • Aşağıdaki örnek tüm olayı özetleyecektir. Öncelikle 4 adet class olsun; – MyClass – YourClass – MySubClass – TheirClass ERİŞİM DEĞİŞTİRİCİ (ACCESS MODIFIER) KAVRAMI package firstPackage; package firstPackage; class MyClass { //* my fields here public int x; private string y; protected double z; int t; } class YourClass { //* your class body //goes here } package secondPackage; class MySubClass extends MyClass { //* my sub class body goes here } package secondPackage; class TheirClass { //* their class body //goes here } ERİŞİM DEĞİŞTİRİCİ (ACCESS MODIFIER) KAVRAMI Yukarıdaki 4 class’ın MyClass class’ındaki x, y, z ve t değişkenlerine erişimleri şu şekildedir; Değişken MyClass YourClass MySubClass TheirClass X + + + + Y + ‐ ‐ ‐ Z + + + ‐ T + + ‐ ‐ SINIF KULLANIM ÖRNEĞİ (BİSİKLET SINIFI) public class Bisiklet { public int pedaldakikadatursayisi; public int vites; public int hiz; public Bisiklet(int baslangictursayisi, int baslangicHiz, int baslangicVites) { vites = baslangicVites; pedaldakikadatursayisi = baslangictursayisi; hiz = baslangicHiz; } public void tursayisiAyarla(int yeniDeger) { pedaldakikadatursayisi = yeniDeger; } public void vitesAyarla(int yeniDeger) { vites = yeniDeger; } public void freneBas(int dusenHiz) { hiz ‐= dusenHiz; } public void hiziArttir(int artisMiktari) { hiz += artisMiktari; } } SINIF KULLANIM ÖRNEĞİ (DAĞ BİSİKLETİ SINIFI) public class DagBisikleti extends Bisiklet { // Dag bisikletinde fazladan bir alan olsun public int koltukYuksekligi; // the MountainBike subclass has one constructor public DagBisikleti(int baslangicYukseklik, int baslangictursayisi, int baslangicHiz, int baslangicVites) { super(baslangictursayisi, baslangicHiz, baslangicVites); koltukYuksekligi = baslangicYukseklik; } // Dag bisikletinde fazladan bir metot olsun public void setHeight(int yeniDeger) { koltukYuksekligi = yeniDeger; } } SINIF KULLANIM ÖRNEĞİ (DAĞ BİSİKLETİ SINIFI) public class BisikletTesti { public static void main(String args[]) { //create the objects of Bicycle & mountainBike Bisiklet B = new Bisiklet(10,20,30); DagBisikleti m = new DagBisikleti(1,2,300,4); // for Bicycle System.out.println("Bisikleti Hızı " + B.hiz); B.hiziArttir(7); System.out.println("Bisikletin Yeni Hızı " + B.hiz); System.out.println("Dağ bisikletinin Hızı " + m.hiz); m.hiziArttir(7); System.out.println("Dağ bisikletinin Yeni Hızı " + m.hiz); } } SINIF KULLANIM ÖRNEĞİ (ANIMAL SINIFI) class Animal { public void eat(String str) { System.out.println("Eating for grass"); } } class Cat extends Animal { public void eat(String str) { System.out.println("Drinking for milk"); } } class Dog extends Animal { public void eat(String str) { System.out.println("Eating for bread"); } } SINIF KULLANIM ÖRNEĞİ (ANIMAL SINIFI) class Goat extends Animal { public void eat(String str) { System.out.println(""); } } public class AnimalTest { public static void main(String[] args) { Animal a = new Animal(); Cat b = new Cat(); Dog c = new Dog(); Goat d = new Goat(); a.eat("grass"); b.eat("milk"); c.eat("bread"); d.eat("grass"); } } SINIF KULLANIM ÖRNEĞİ (ROBOT SINIFI) public class Robot { public void start() { System.out.println("Robot started."); } public void work() { System.out.println("Robot working."); } public void stop() { System.out.println("Robot stopped."); } } SINIF KULLANIM ÖRNEĞİ (ROBOT SINIFI) public class WasteDisposalRobot extends Robot { public void findWaste() { System.out.println("Finding waste"); } } public class RobotTest { public static void main(String[] args) { Robot robot1=new Robot(); robot1.start(); robot1.stop(); WasteDisposalRobot robot2 = new WasteDisposalRobot(); robot2.start(); robot2.findWaste(); robot2.stop(); } } KAYNAKÇA 1. 2. 3. 4. Turhan Çoban, Java Bilgisayar Diliyle Programlama. Starting Out with Java 5th Edition (Tony Gaddis): From Control Structures through Objects. http://ibrahimbilge.com/java-object-oriented-kavrami-ii/ http://www.caveofprogramming.com/frontpage/articles/javatutorial/java-tutorial-5inheritance-and-polymorphism/ 12
© Copyright 2024 Paperzz