Daha önce katıldığım java programlama kursunda yaptığımız bir (inheritance)kalıtım uygulaması. Programda tanımlanan tüm classlar personel sınıfından extends komutu ile türetilmiştir.
personel.java
import java.util.Locale;
public class personel {
protected String ad;
protected String soyad;
public String tcKimlik;
private Double sabitMaas=0.0;
public personel(){
}// defalut constructor
public personel(String persAd,String persSoyad,double persMaas){
ad=persAd;
soyad=persSoyad;
sabitMaas=persMaas;
}
public void setAd(String personelAd)// isim formatı:
{// ad parametresinin sağındaki ve solundaki boşlukları alıp isim StringBuilder nesnesine ata.
StringBuilder isim = new StringBuilder(personelAd.trim());
if(isim.length()==0){// eğer isim nesnesinin uzunluğu 0 ise boş isim girilmiştir.
System.out.println("Ad kısmı boş. Lütfen bir isim giriniz");
}else{// isim nesnesinin ilk harfi büyük diğerleri küçük olarak şekillendir.
for(int i=0;i<isim.length();i++){
if(i==0) isim.setCharAt(i, Character.toUpperCase(isim.charAt(i)));
}//for döngüsü sonu
this.ad=isim.toString();
}//else sonu
}//setAd metod sonu
public String getAd(){return this.ad;}
public void setSoyad(String personelSoyad){
personelSoyad=personelSoyad.trim();
if(personelSoyad.length()==0){//soyad kısmının boş olup olmadığı kontrol ediliyor
System.out.println("Soyad kısmı boş. Lütfen personel soyadını yazınız.");
}else{// soyisim nesnesinin tümü büyük harf olacak
this.soyad=personelSoyad.toUpperCase(new Locale("TR"));
}//else sonu
}
public String getSoyad(){
return soyad;
}// getSoyad sonu
final public void setTcKimlik(String tckimlik){
this.tcKimlik=tckimlik;
}
public void setMaas(double maas){
sabitMaas=maas;
}
public double getMaas(){return sabitMaas;}
public double hakEdis(){
System.out.print("Personel Hakediş:");
return sabitMaas;
}
}// personel classs sonu
SatisPersoneli.java
public class SatisPersoneli extends personel{
public double satisTutari;
public double primYuzdesi;
public SatisPersoneli(){}
public SatisPersoneli(String ptpAd,String ptpSoyad,double satisTutari,double prim){
super(ptpAd, ptpSoyad, 500.0);// bu stırda satış personelinin bilgileri personel class'ındaki personel isimli metoda bilgi gönderir.
this.satisTutari=satisTutari;
this.primYuzdesi=prim;
}// SatisPersoneli sonu
public void setSatistutari(){
if(satisTutari>=0)
this.satisTutari=satisTutari;
else
System.out.println("tutar pozitif olmalı");
}// setSatistutari sonu
@Override
public double hakEdis(){
System.out.println("Satıi personeli hakediş:");
return super.getMaas()+(this.satisTutari*(1+primYuzdesi));
}
}
PartTimePersonel.java
public class PartTimePersonel extends personel{
public int mesaiSaat;
public double saatUcreti;
public PartTimePersonel(){
super();
}
public PartTimePersonel(String ptpAd,String ptpSoyad, int ptpMesai, double ptpSaatUcret){
super(ptpAd,ptpSoyad,0.0);
this.mesaiSaat=ptpMesai;
this.saatUcreti=ptpSaatUcret;
}//PartTimePersonel sonu
public void setMesaiSaat(int saat){
if(saat>=0)
mesaiSaat=saat;
else
System.out.println("Mesai saati pozitif olmalı");
}
@Override
public double hakEdis(){
System.out.println("Pat Time Personel hakediş :");
return saatUcreti*mesaiSaat;
}
}
Stajyer.java
public class Stajyer extends personel{
}
PersonelTakip.java
public class PersonelTakip {
public static void main(String[] args){
personel isci,partIsci,stajyerIsci;
isci = new personel("Kamil","turhan",1000.0);
partIsci = new PartTimePersonel("Yusuf","eren",45,20.0);
stajyerIsci = new Stajyer();
personel satisIsci = new SatisPersoneli("haken","kart",40000.0,0.2);
System.out.println(isci.hakEdis());
System.out.println(partIsci.hakEdis());
System.out.println(satisIsci.hakEdis());
}
}