Video: Java Dersleri #1 - Sınıf Oluşturma 2024
Java'da nesne tabanlı bir program yazarken, verileri düşünerek başlıyorsunuz. Hesaplar hakkında yazıyorsun. Hesap nedir? Düğme tıklamalarıyla ilgilenmek için kod yazıyorsunuz. Peki düğme nedir? Çalışanlara bordro çekleri göndermek için bir program yazıyorsunuz. Çalışan nedir?
Bu örnekte, bir çalışan, adı ve unvanı olan bir kişidir. Elbette, çalışanların başka özellikleri var, ancak şimdilik temel prensiplere sadık kalın. Bu listedeki kod, bir çalışanın ne anlama geldiğini tanımlar.
import static java. Lang. Sistem. dışarı; kamu sınıfı Çalışan {private String name; özel String jobTitle; public void setJobTitle (String jobTitleIn) {işTarihi = jobTitleIn;} public String getJobTitle () iş parçacığı public void cutCheck () iş parçacığı iş parçacığı public void getName (String nameIn) çift miktarİcretli) {out. printf ("% s sırasına ödeyin", isim); dışarı. printf ("(% s) *** $", jobTitle); dışarı. printf ("%,.2fn", amountPaid);}}
Listede bir Çalışan sınıfı tanımlanmıştır. Burada tanımladığınız şeyleri kullanabilirsiniz ve tanımınızı yeni ve daha özel sınıflar oluşturmak için genişletebilirsiniz. Dolayısıyla, bu sonraki listede yeni bir sınıf tanımlarsınız - bir FullTimeEmployee sınıfı.
public class FullTimeEmployee extends Çalışan {private double weeklySalary; özel çift kazanç Azaltma; public void setWeeklySalary (haftada iki kezSalariIn) {weeklySalary = weeklySalaryIn;} public double getWeeklySalary () {return weeklySalary;} public void setBenefitDeduction (double benefitDedIn) {faydaDeduction = benefitDedIn;} genel çift getBenefitDeduction () {return benefitDeduction;} ortak çift findPaymentAmount) {return weeklySalary - benefitDeduction;}}
Listeye baktığınızda, FullTimeEmployee sınıfının her örneğinin iki alana sahip olduğunu görebilirsiniz: weeklySalary ve benefitDeduction. Ancak bu, her FullTimeEmployee örneğinin sahip olduğu tek alan mısınız? Hayır değiller.
İlk satır, FullTimeEmployee sınıfının mevcut Çalışan sınıfını genişlettiğini söylüyor. Bu, bir WeeklySalary ve benefitDeduction'a ek olarak, her FullTimeEmployee örneğinin de iki alana sahip olduğu anlamına gelir: ad ve işTarihi. Bu iki alan, ilk listede bulabileceğiniz Çalışan sınıfının tanımından gelir.
İkinci listede sihirli sözcük uzar. Bir sınıf mevcut bir sınıfı genişlettiğinde, uzanan sınıf otomatik olarak mevcut sınıfta tanımlanan işlevselliği devralır.Yani, FullTimeEmployee sınıfı , adını ve jobTitle alanlarını devralır.
FullTimeEmployee sınıfı ayrıca Employee sınıfında (setName, getName, setJobTitle, getJobTitle ve cutCheck) bildirilen tüm yöntemleri devralır. FullTimeEmployee sınıfı, alt sınıfı olan Çalışan sınıfıdır.
Bu, Çalışan sınıfının FullTimeEmployee sınıfının üst sınıfı olduğunu gösterir. Ayrıca kan akrabaları açısından da konuşabilirsiniz. FullTimeEmployee sınıfı, Çalışan sınıfının çocuğudur ve Çalışan sınıfı, FullTimeEmployee sınıfının üst 'dır.
FullTimeEmployee sınıfı bu listedeki kod tarafından tanımlanmış gibi (neredeyse değil) sanki. Bu kod sahte fakat bilgilendirici.
import static java. Lang. Sistem. dışarı; genel sınıf FullTimeEmployee {private String name; özel String jobTitle; haftalık özel haftalık özel; özel çift kazanç Azaltma; public void setJobTitle (String jobTitleIn) {işTarihi = jobTitleIn;} public String getJobTitle () iş parçacığı public void setWeeklySalary () iş parçacığı kümesi için public void setName (String nameIn) çift haftalıkSaçYapısı) {weeklySalary = weeklySalaryIn;} public double getWeeklySalary () {return weeklySalary;} public void setBenefitDeduction (çift faydaDedIn) {faydaDeduction = benefitDedIn;} genel çift getBenefitDeduction () {return faydaDeduction;} ortak çift findPaymentAmount () {return weeklySalary - yarar azaltma;} public void cutCheck (double amountPaid) {out. printf ("% s sırasına ödeyin", isim); dışarı. printf ("(% s) *** $", jobTitle); dışarı. printf ("%., 2fn", amountPaid);}}
Bu liste neden sahte kod? Bu listeleme ile önceki listelerdeki devralma durumu arasındaki temel fark şudur: Bir alt sınıf, üst sınıfının özel alanlarına doğrudan başvuramaz. Üst sınıfın özel alanları ile herhangi bir şey yapmak için, alt sınıf üst sınıfın erişimci yöntemlerini çağırmalıdır.
İkinci listede, setName ("Rufus") çağrısı yasal olacaktır, ancak kod adı = "Rufus" olmamalıdır. Son listede okuduğunuz her şeye inanıyorsanız, FullTimeEmployee sınıfındaki kodun name = "Rufus" yapabileceğini düşünürsünüz. Yapamaz.
Çalışana ihtiyacınız yok. Çalışan sınıfını genişleten kod yazmak için sabit diskinizdeki java dosyası. İhtiyacınız olan tek şey Çalışan Dosyası. sınıf.