Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals 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();
}
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("---------------------------------");
}
}
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("---------------------------------");
}
}
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();
}
}
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
---------------------------------
Name: Mhamad Gender: Male Birthday: 1994 Specialization: Computer Science --------------------------------- Name: Rana Gender: Female Birthday: 1986 is Married: yes Work place: Al-Iman school ---------------------------------