Java Kalıtım Örnek Uygulama
Merhaba arkadaşlar aşağıda yapılacaklar listesi halinde verilen kalıtım örneği uygulamasını yayınlamak istedim umarım faydalı olur , iyi çalışmalar.
Amaç : Java dili kalıtım özelliklerini kullanarak aşağıdaki işlemleri yapan bir program yazmak.
Yapılacaklar :
Tarih isminde; gun, ay ve yil sınıf değişkenlerinden oluşan bir sınıf tanımlanacaktır. Bu sınıf, ayrıca iki nesne kurucu içermelidir. İlk nesne kurucu, varsayılan nesne kurucu olarak, sınıf değişkenlerinin başlangıç değerlerini, o andaki sistem tarihi değerlerine göre belirlemelidir (Tarih degerlerini alma kodu asagıda verilmiştir). İkinci nesne kurucu ise, her bir sınıf değişkenin başlangıç değerini, ona karşılık gelen parametre değerleri ile belirlemelidir.
Kisi isminde; isim, cinsiyet ve dogumTarihi sınıf değişkenleri ile Yas() metot’undan oluşan soyut bir sınıf tanımlanacaktır. dogumTarihi sınıf değişkeni Tarih veri türünde olmalıdır. Bu sınıfın tek nesne kurucusu, her bir sınıf değişkenin başlangıç değerini, ona karşılık gelen parametre değerleri ile belirlemelidir. Kisi sınıfındaki Yas() metotu ise, kişinin o anki yaşını, dogumTarihi sınıf değişkeni ve o andaki sistem tarihine göre hesaplayarak döndürecektir.
Ogrenci isminde; derece ve girisTarihi sınıf değişkenleri ile GecenSure() metot’undan oluşan ve Kisi sınıfından türetilen bir sınıf tanımlanacaktır. girisTarihi sınıf değişkeni Tarih veri türünde olmalıdır. Bu sınıf, ayrıca (kalıtım ile gelenler dahil) her bir sınıf değişkenin başlangıç değerini, ona karşılık gelen parametre değerleri ile belirleyen tek bir nesne kurucu içermelidir. GecenSure() metotu ise, öğrencinin geçirdiği süreyi, girisTarihi sınıf değişkeni ve o andaki sistem tarihine göre, yıl-ay-gün olarak hesaplayarak Tarih veri türünde döndürecektir.
Calisan isminde; calismaSuresi , birimUcret ve odemeSekli sınıf değişkenlerinden oluşan ve Kisi sınıfından türetilen bir sınıf tanımlanacaktır. Calisan sınıfındaki odemeSekli sınıf değişkeni, saatlik ve aylık durumunu belirten sadece iki farklı değer alabilmelidir. Tek nesne kurucu, kalıtım ile gelen değişkenlere, karşılık gelen parametre değerlerini atayacatır. Bu sınıfın kalıtım ile gelenler hariç her bir sınıf değişkeni için Set/Get metotları bulunmalıdır. Ayrıca bu sınıf, Maas() isminde, saatlik için calismaSuresi*birimUcret, aylık için birimUcret değerini döndüren bir metot içermelidir.
OgretimUyesi isminde; int türünde unvan sınıf değişkeni içeren ve Calisan sınıfından türetilen bir sınıf tanımlanacaktır. Bu sınıf, ayrıca private static unvanAdi = {“Prof.Dr.”,“Doc.Dr.”, “Yrd.Doc.Dr.” }; şeklinde static bir değişken içerecektir. Sınıfın tek nesne kurucusu, Kisi sınıfından kalıtım ile gelen sınıf değişkenleri ve unvan sınıf değişkeninin başlangıç değerlerini, parametre değeleri ile belirleyen bir nesne kurucu içermelidir. Nesne kurucu, unvan sınıf değişkenine karşılık gelen parameterinin değeri 0 veya 1’den farklı ise, unvan sınıf değişkeninin başlangıç değerini 2 olarak belirlemelidir. Bu sınıf ayrıca, 1’den büyük iken unvan sınıf değişkeninin değerini 1 azaltacak TerfiEttir() isimli bir metot içermelidir.
Tüm sınıfların sınıf değişkenleri private olarak tanımlanmalıdır. Yine ayrıca, tüm sınıf nesneleri print() veya println() ile yazdırılacağı zaman, çıktıda istenilen nesne bilgilerinin uygun şekilde yazdırılabilmesi için, toString() metotu, uygun bir String değer döndürecek şekilde tüm sınıflar için tanımlanmalıdır.
Adınız ve soyadınızın baş harflerini kullanarak örneğin isminiz Onur Akkocak ise OA_Odev5 isminde bir sınıf içerisinde main metot tanımlanacaktır. Burada her bir elemanı aşağıdaki kişiler ile birlikte bir tanesi size karşılık gelen bir dizi tanımlayınız. Kişilerin belirtilmeyen bilgileri için uygun değerler kullanınız.
Doç.Dr. Muhammed Salamah (öğretim üyesi, aylık ücret: 3000 )
•Prof.Dr. Isık Aybay (öğretim üyesi, 12 saat, saatlik ücret: 100 )
•Caner Pekel (çalışan , aylık ücret: 2000 )
•Ahmet Çetin (çalışan , 160 saat, saatlik ücret: 10 )
•<kendiniz> (öğrenci)
Örnek Çıktı:
1.Doc.Dr. Muhammed Salamah
Yas:46
Cinsiyet: E
Ucret: 3000 TL/ay
Maas: 3000 TL
2.Prof.Dr. Isık Aybay: 43
Cinsiyet: E
Ucret: 100 TL/saat
Maas: 1200 TL
3.Caner Pekel
Yas: 29
Cinsiyet: K
Ucret: 2000 TL/ay
Maas: 2000 TL
4.Ahmet Cetin
Yas: 37
Cinsiyet: E
Ucret: 10 TL/saat
Maas: 1600 TL
5.Onur Akkocak
Yas: 25
Cinsiyet: E
Gecen Sure: 2 yil 3 ay 15 gun
import java.util.Calendar;
public class DateDemo {
public static void main(String args[]) {
// Instantiate a Date object
Calendar now = Calendar.getInstance();
int year = now.get(Calendar.YEAR);
int month = now.get(Calendar.MONTH); // Note: sıfı dahil!
int day = now.get(Calendar.DAY_OF_MONTH);
System.out.printf(year, month + 1, day);
}
}
Test.java olarak tanımlanan sınıfımız main sınıfımızdır
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Kisi ogrenci = new Ogrenci(“Tekin Pekcan”,”Erkek”,new Tarih(9,07,1989),3,new Tarih(10,10,2011));
Kisi ogretimuyesi = new OgretimUyesi(“Muhammed Salamah”,”Erkek”,new Tarih(24,3,1944),50,100,”Saat”,1);
Kisi calisan = new Calisan(“Caner Pekel”, “Erkek”, new Tarih(24,3,1944), 50,200, “Ay”);
System.out.println(ogrenci.toString());
System.out.println(ogretimuyesi.toString());
System.out.println(calisan.toString());
}
}
Ogrenci.java sınıfımız;
import java.util.Calendar;
public class Ogrenci extends Kisi{
private int derece;
private Tarih girisTarih;
public Ogrenci(){
super();
derece = -1;
girisTarih = null;
}
public Ogrenci(String isim, String cinsiyet, Tarih dogumTarihi,int derece,Tarih girisTarih) {
super(isim, cinsiyet, dogumTarihi);
this.derece=derece;
this.girisTarih = girisTarih;
}
public void setDerece(int derece){
this.derece = derece;
}
public int getDerece(){
return derece;
}
public void setGirisTarih(Tarih girisTarih){
this.girisTarih = girisTarih;
}
public Tarih getGirisTarih(){
return girisTarih;
}
@Override
public int Yas() {
return now.get(Calendar.YEAR) – getDogumTarih().getYil();
}
public String GirisTarih() {
return ” ” +(now.get(Calendar.YEAR) – getGirisTarih().getYil())+
” Yil ” +(now.get(Calendar.MONTH) – getGirisTarih().getAy())+
” Ay ” +(now.get(Calendar.DAY_OF_MONTH) – getGirisTarih().getGun())+
” Gun”;
}
public String toString(){
return getIsim() +
“\nYas : ” + Yas() +
“\ncinsiyet : ” + getCinsiyet().charAt(0) +
“\nDerece : ” + getDerece()+
“\nGeçen Süre : ” + GirisTarih()+”.”;
}
}
Tarih.java Sınıfımız;
import java.util.Calendar;
public class Tarih {
private int gun;
private int ay;
private int yil;
Calendar now = Calendar.getInstance();
public Tarih(){
gun = now.get(Calendar.DAY_OF_MONTH);
ay = now.get(Calendar.MONTH)+1;
yil = now.get(Calendar.YEAR);
}
public Tarih(int gun,int ay,int yil){
this.gun= gun;
this.ay = ay;
this.yil = yil;
}
public void setGun(int gun){
this.gun=gun;
}
public void setAy(int ay){
this.ay=ay;
}
public void setYil(int yil){
this.yil=yil;
}
public int getGun(){
return gun;
}
public int getAy(){
return ay;
}
public int getYil(){
return yil;
}
public String toString(){
return gun + “/” +ay+ “/” +yil;
}
}
OgretimUyesi Sınıfımız;
public class OgretimUyesi extends Calisan {
private int unvan;
private static String[] unvanAdi = {“Prof.dr “,”Doc.dr “,”Yrd.Doc.Dr. “};
public OgretimUyesi(){
super();
unvan = -1;
}
public OgretimUyesi(String isim, String cinsiyet, Tarih dogumTarihi , int CalismaSuresi , int birimUcret , String odemeSekli,int unvan) {
super(isim,cinsiyet,dogumTarihi,CalismaSuresi ,birimUcret ,odemeSekli);
if (unvan != 0 && unvan!=1){
this.unvan = 2;
}else
{
this.unvan = unvan;
}
}
public void setUnvan(int unvan){
this.unvan = unvan;
}
public int getUnvan(){
return unvan;
}
public int TerfiEttir(){
if (unvan > 1) {
return unvan – 1;
}
return unvan;
}
public String toString(){
return “\n”+unvanAdi[getUnvan()] + getIsim() +
“\nYas : ” + Yas() +
“\ncinsiyet : ” + getCinsiyet().charAt(0)+
“\nUcret : ” + getBirimUcret() +” TL / ” + getOdemeSekli()+
“\nMaas : ” + Maas()+” TL “;
}
}
Calisan.java Sınıfımız
import java.util.Calendar;
public class Calisan extends Kisi {
private int CalismaSuresi;
private int birimUcret;
private String odemeSekli;
public Calisan(){
super();
CalismaSuresi = -1;
birimUcret = -1;
odemeSekli=””;
}
public Calisan(String isim, String cinsiyet, Tarih dogumTarihi , int CalismaSuresi , int birimUcret , String odemeSekli) {
super(isim, cinsiyet, dogumTarihi);
this.CalismaSuresi = CalismaSuresi;
this.birimUcret = birimUcret;
this.odemeSekli = odemeSekli;
}
public void setCalismaSuresi(int CalismaSuresi){
this.CalismaSuresi= CalismaSuresi;
}
public int getCalismaSuresi(){
return CalismaSuresi;
}
public void setBirimUcret(int birimUcret){
this.birimUcret=birimUcret;
}
public int getBirimUcret(){
return birimUcret;
}
public void setOdemeSekli(String odemeSekli){
this.odemeSekli=odemeSekli;
}
public String getOdemeSekli(){
return odemeSekli;
}
public int Maas(){
if (getOdemeSekli().equals(“Saat”)){
odemeSekli=”Saat”;
return CalismaSuresi*birimUcret;
}
odemeSekli=”Ay”;
return birimUcret;
}
@Override
public int Yas() {
return now.get(Calendar.YEAR) – getDogumTarih().getYil();
}
public String toString(){
return “\n”+getIsim() +
“\nYas : ” + Yas() +
“\ncinsiyet : ” + getCinsiyet().charAt(0)+
“\nUcret : ” + getBirimUcret() +” TL / ” + getOdemeSekli()+
“\nMaas : ” + Maas()+” TL “;
}
}
Kisi.java sınıfımız (Super sınıftır)
import java.util.Calendar;
abstract public class Kisi {
private String isim;
private String cinsiyet;
private Tarih dogumTarihi;
public Kisi(){
isim=””;
cinsiyet=””;
dogumTarihi= null ;
}
public Kisi(String isim,String cinsiyet,Tarih dogumTarihi){
this.isim=isim;
this.cinsiyet=cinsiyet;
this.dogumTarihi=dogumTarihi;
}
Calendar now = Calendar.getInstance();
abstract public int Yas();
public void setIsim(String isim){
this.isim = isim;
}
public String getIsim(){
return isim;
}
public void setCinsiyet(String cinsiyet){
this.cinsiyet = cinsiyet;
}
public String getCinsiyet(){
return cinsiyet;
}
public void setDogumTarih(Tarih dogumTarihi){
this.dogumTarihi = dogumTarihi;
}
public Tarih getDogumTarih(){
return dogumTarihi;
}
}
İyi çalışmalar.