Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

Javaمثال مهم يعلمك متى تحتاج إلى إنشاء كلاس مجرد

في المثال التالي قمنا ببناء كلاس إسمه Person نوعه abstract, يملك أربعة خصائص نوعهم private إسمهم name, gender, brithday و isMarried, و يملك دوال Setter and Getter لهذه الخصائص, و يملك أيضاً دالة إسمها displayInfo() نوعها abstract.

بعدها قمنا بتعريف كلاس إسمه Student يرث من الكلاس Person و يملك متغير إضافي إسمه specialization.
بعدها قمنا بتعريف كلاس إسمه Employee يرث من الكلاس Person و يملك متغير إضافي إسمه workPlace.
الفكرة هنا أن أي كلاس سيتم إنشاءه لتمثيل إنسان يجب أن يرث من الكلاس Person الذي يملك الخصائص المشتركة لكل البشر.

في الأخير سنقوم ببناء الكلاس Main لتجربة الكود.


Person.java
public abstract class Person {
 
    // هنا قمنا بتعريف الخصائص المشتركة لدى جميع البشر
    private String name;
    private String gender;
    private String birthday;
    private boolean isMarried;
 
    // هنا قمنا بتعريف الكونستركتور
    public Person(String n, String g, String b, boolean i) {
        name = n;
        gender = g;
        birthday = b;
        isMarried = i;
    }
 
    // Getter هنا قمنا بتعريف دوال الـ
 
    public String getName() {
        return name;
    }
 
    public String getGender() {
        return gender;
    }
 
    public String getBirthday() {
        return birthday;
    }
 
    public boolean getIsMarried() {
        return isMarried;
    }
 
    // Setter هنا قمنا بتعريف دوال الـ
    public void setName(String n) {
      name = n;
    }
 
    public void setGender(String g) {
        gender = g;
    }
 
    public void setBirthday(String b) {
        birthday = b;
    }
 
    public void setIsMarried(boolean i) {
        isMarried = i;
    }
 
    // abstract و التي نوعها displayInfo() هنا قمنا بتعريف الدالة
    public abstract void displayInfo();
 
}

Student.java
public class Student extends Person {
 
    String specialization;     // هنا قمنا بتعريف خاصية التخصص و التي يملكها فقط التلاميذ
 
    // هنا قمنا بتعريف الكونستركتور
    public Student(String n, String g, String b, boolean i, String s) {
        super(n, g, b, i);       // Person هنا سيتم إرسال أول أربع قيم إلى كونستركتور الكلاس
        specialization = s;
    }
 
    // بشكل ملائم للتلامذة displayInfo() للدالة Override هنا فعلنا
    @Override
    public void displayInfo() {
        System.out.println("Name: " + getName());
        System.out.println("Gender: " + getGender());
        System.out.println("Birthday: " + getBirthday());
        System.out.println("Specialization: " + specialization);
        System.out.println("---------------------------------");
    }
 
}

Employee.java
public class Employee extends Person {
 
    String workPlace;     // هنا قمنا بتعريف خاصية مكان العمل و التي يملكها فقط الموظفون و العمال
 
    // هنا قمنا بتعريف الكونستركتور
    public Employee(String n, String g, String b, boolean i, String w) {
        super(n, g, b, i);       // Person هنا سيتم إرسال أول أربع قيم إلى كونستركتور الكلاس
        workPlace = w;
    }
 
    // بشكل ملائم للموظفين أو العمال displayInfo() للدالة Override هنا فعلنا
    @Override
    public void displayInfo() {
        System.out.println("Name: " + getName());
        System.out.println("Gender: " + getGender());
        System.out.println("Birthday: " + getBirthday());
        
        if(getIsMarried() == true) {
            System.out.println("is Married: yes");
        }
        else {
            System.out.println("is Married: no");
        }
        
        System.out.println("Work place: " + workPlace);
        System.out.println("---------------------------------");
    }
 
}

Main.java
public class Main {
 
    public static void main(String[] args) {
 
        // و هو عبارة عن إنسان له خصائص طالب Student هنا قمنا بإنشاء كائن من الكلاس
        Student s = new Student("Mhamad", "Male", "1994", false, "Computer Science");
        s.displayInfo();
 
        // و هو عبارة عن إنسان له خصائص موظف أو عامل Employee هنا قمنا بإنشاء كائن من الكلاس
        Employee e = new Employee("Rana", "Female", "1986", true, "Al-Iman school");
        e.displayInfo();
 
    }
 
}

سنحصل على النتيجة التالية عند التشغيل.

Name: Mhamad
Gender: Male
Birthday: 1994
Specialization: Computer Science
---------------------------------
Name: Rana
Gender: Female
Birthday: 1986
is Married: yes
Work place: Al-Iman school
---------------------------------