Video: 1-1 Pengenalan Java 2024
Apabila anda menulis program berorientasikan objek di Java, anda mula memikirkan data. Anda menulis mengenai akaun. Jadi apa akaun? Anda menulis kod untuk mengendalikan klik butang. Jadi apakah butang? Anda menulis program untuk menghantar cek gaji kepada pekerja. Apa pekerja?
Dalam contoh ini, seorang pekerja adalah seseorang yang mempunyai nama dan tajuk pekerjaan. Pasti, pekerja mempunyai ciri-ciri lain, tetapi pada masa ini masih berpegang kepada asas-asas. Kod dalam penyenaraian ini mentakrifkan apa yang dimaksudkan sebagai pekerja.
import statik java. lang. Sistem. keluar; Kakitangan awam {nama String swasta; pekerjaan String peribadiTitle; public void setName (String nameIn) {name = nameIn;} public String getName () {return name;} public void setJobTitle (String jobTitleIn) {jobTitle = jobTitleIn;} public String getJobTitle () {return jobTitle; double amountPaid) {out. printf ("Bayar kepada perintah% s", nama); keluar. printf ("(% s) *** $", jobTitle); keluar. printf ("%,. 2fn", jumlah yang dibayarkan);}}
Dalam penyenaraian, kelas Pekerja ditakrifkan. Anda boleh menggunakan apa yang anda nyatakan di sini dan melanjutkan takrifan untuk membuat kelas baru yang lebih khusus. Jadi dalam senarai seterusnya ini, anda menentukan kelas baru - kelas FullTimeEmployee.
kelas awam FullTimeEmployee meluaskan Pekerja {private double weeklySalary; manfaat ganda peribadi; public void setWeeklySalary (double mingguanSalaryIn) {publicSalary = weeklySalaryIn;} public double getWeeklySalary () {return weeklySalary;} public void setBenefitDeduction (double benefitDedIn) {benefitDeduction = benefitDedIn;} public double getBenefitDeduction () {return benefitDeduction;} public double findPaymentAmount) {return weeklySalary - benefitDeduction;}}
Melihat senarai, anda dapat melihat bahawa setiap contoh kelas FullTimeEmployee mempunyai dua bidang: weeklySalary and benefitDeduction. Tetapi adakah mereka satu-satunya bidang yang setiap contoh FullTimeEmployee ada? Tidak, mereka bukan.
Baris pertama mengatakan bahawa kelas FullTimeEmployee memanjangkan kelas Pekerja sedia ada. Ini bermakna bahawa sebagai tambahan kepada Sulaiman dan manfaatDeduction mingguan, setiap contoh FullTimeEmployee juga mempunyai dua bidang lain: nama dan jobTitle. Kedua-dua bidang ini berasal daripada definisi kelas Pekerja, yang boleh anda dapati dalam senarai pertama.
Dalam senarai kedua, kata sihir memperluas . Apabila satu kelas melanjutkan kelas yang sedia ada, kelas yang diperluas secara automatik mewarisi fungsi yang ditakrifkan dalam kelas yang sedia ada.Jadi, kelas FullTimeEmployee mewarisi nama dan medan tugasTitle.
Kelas FullTimeEmployee juga mewarisi semua kaedah yang dinyatakan dalam kelas Pekerja - setName, getName, setJobTitle, getJobTitle, dan cutCheck. Kelas FullTimeEmployee adalah subclass kelas pekerja .
Ini bermakna kelas Pekerja adalah superclass kelas FullTimeEmployee. Anda juga boleh bercakap dari segi saudara-mara darah. Kelas FullTimeEmployee ialah anak kanak-kanak kelas Pekerja, dan kelas Pekerja adalah induk kelas FullTimeEmployee.
Ia hampir (tetapi tidak cukup) seolah-olah kelas FullTimeEmployee ditakrifkan oleh kod dalam senarai ini. Kod ini palsu, tetapi bermaklumat.
import java statik. lang. Sistem. keluar; kelas awam FullTimeEmployee {private String name; pekerjaan String peribadiTitle; private double weeklySalary; manfaat ganda peribadi; public void setName (String nameIn) {name = nameIn;} public String getName () {return name;} public void setJobTitle (String jobTitleIn) {jobTitle = jobTitleIn;} public String getJobTitle () {return jobTitle;} public void setWeeklySalary double mingguanSalaryIn) {weeklySalary = weeklySalaryIn;} public double getWeeklySalary () {return weeklySalary;} public void setBenefitDeduction (double benefitDedIn) {benefitDeduction = benefitDedIn;} public double getBenefitDeduction () {return benefitDeduction;} public double findPaymentAmount - benefitDeduction;} public void cutCheck (double amountPaid) {out. printf ("Bayar kepada perintah% s", nama); keluar. printf ("(% s) *** $", jobTitle); keluar. printf ("%,. 2fn", jumlah yang dibayar);}}
Mengapa penyenaraian ini kod palsu? Well, perbezaan utama antara penyenaraian ini dan situasi warisan dalam senarai terdahulu ialah: Kelas kanak-kanak tidak boleh merujuk secara langsung bidang persendirian kelas induknya. Untuk melakukan apa sahaja dengan medan peribadi kelas induk, kelas kanak-kanak perlu memanggil kaedah aksesori kelas induk.
Kembali dalam senarai kedua, memanggil setName ("Rufus") akan sah, tetapi nama kod = "Rufus" tidak akan. Jika anda percaya semua yang anda baca dalam senarai terakhir, anda akan berfikir bahawa kod dalam kelas FullTimeEmployee boleh melakukan nama = "Rufus". Nah, tidak boleh.
Anda tidak memerlukan Pekerja. fail java pada cakera keras anda untuk menulis kod yang memanjangkan kelas Pekerja. Apa yang anda perlukan adalah file Employee. kelas.