(Class) Yapıları (Örnekler)

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ü
[email protected]
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