الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ممكن شرح constructor , setter ......?

مغلق
بدأه شادن..}~ في 18 مارس 2011 · 8 رد · 4,166 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ...

ممكن احد يشرحلي constructor , sater واتوقع وحده اسمها caters في الجافا

بليز ابغى شرح مفصل عن استخدامها وطريقتها كتابتها ومتى نحط Null :blink:

#3

ايوا هوا دا قصدي :happy:

ممكن احد يشرحلي :unsure:

#4

Constructor هي دالة بناء الفئة "Class" .. حتى تستطيعي إنشاء كائن يجب أن تستدعي دالة البناء .. المثال الآتي سيوضح لك:

فئة حساب مساحة المستطيل :

public class Area {
public Area(){}//constructer
}

"من دون هذه الدالة لا نستطيع إنشاء الكائن!"

نحتاج لحساب المستطيل :

المتغير الأول : طوله.

المتغير الثاني: عرضه.

إذا لنتفق على إعطاء الطول اسم :x والعرض اسم: y

لكي نستطيع الوصول إلى التعديل على قيم هذه المتغيرات ننشئ دالة تمكننا من التعديل على x,y

الدوال:

setX , setY

ودالة أخرى تمكننا من الوصول إلى القيم المعطاة لـ x,y

الدوال:

getX ,getY

public class Area {
    private double x;//length
    private double y; //width
    private double area;
public Area(){}//constructer

    /**
     * @return the x
     */
    public double getX() {
        return x;
    }

    /**
     * @param x the x to set
     */
    public void setX(double x) {
        this.x = x;
    }

    /**
     * @return the y
     */
    public double getY() {
        return y;
    }

    /**
     * @param y the y to set
     */
    public void setY(double y) {
        this.y = y;
    }
}

ماذا نحتاج أيضا؟

نحتاج لمتغير نخزن فيه قيمة المساحة .. إذا ننشئ متغير جديد ولنسميه مثلا : area ، ونحتاج كذلك لدالة تعود علينا بقيمة المساحة .. نسميها getArea()

الفئة بعد إضافة التعديلات

public class Area {
    private double x;//length
    private double y; //width
    private double area;
public Area(){}//constructer

    /**
     * @return the x
     */
    public double getX() {
        return x;
    }

    /**
     * @param x the x to set
     */
    public void setX(double x) {
        this.x = x;
    }

    /**
     * @return the y
     */
    public double getY() {
        return y;
    }

    /**
     * @param y the y to set
     */
    public void setY(double y) {
        this.y = y;
    }

    public double getArea(){
        area = x*y;
        return area;
    }

}

نستدعي الفئة الآن في دالة main ، بحيث ننشئ كائن جديد من فئة مساحة المستطيل وذلك باستدعاء دالة البناء :

Area rectangle = new Area();

نقوم بالتعديل على الطول والعرض من خلال دالة set :

Area rectangle = new Area();
        rectangle.setX(10);
        rectangle.setY(20);

نقوم الآن بطباعة المتغيرات مع الناتج النهائي :

        Area rectangle = new Area();
        rectangle.setX(10);
        rectangle.setY(20);
        System.out.println("x = "+rectangle.getX()+"\n"+"y = "+rectangle.getY()+"\n"
                +"Area = "+rectangle.getArea());

الناتج:

run:
x = 10.0
y = 20.0
Area = 200.0

أرجو أن أكون وفقت في الشرح :)

2

عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..

{ لا ينال العلم مستحٍ ولا مستكبر }

#5

مشكورة شادن عالسؤال استفدتي واستفدت :)

مشكور مبرمج جافا شرحك جدا واضح

#6

يعطيكي العافيه اخوي :)

جدا شرحك واضح ومفهوم

#7

طيب انا عندي سؤال حنستخدم فيه دي functions, وبرضو عندي اسأله فيه :happy:

#إنشاء فئة تدعى Employee الذي يتضمن ثلاثة متغيرات

• الاسم الأول،

• اسم العائلة،

• الراتب الشهري ،

# توفر منشئ التي تهيئة المتغيرات سبيل المثال ثلاثة.

\\ذا بالانجليزي لانو بالترجمه مو واضح السؤال

Provide a constructor that initializes the three instance variables.

#توفير set و get ة لكل متغير . إذا كان الراتب الشهري ليست موجبة، لا تقم بتعيين قيمته.

#كتابة تطبيق اختبار يسمى EmployeeTest الذي يوضح قدرات الموظفين في الفئة. إنشاء كائنين الموظف راتب كل موظف سنويا. ثم إعطاء كل موظف 10 ٪ زيادة وعرض راتب كل موظف سنويا مرة أخرى.

\\Write a test application named EmployeeTest that demonstrates class Employee’s capabilities. Create two Employee objects each Employee’s yearly salary. Then give each Employee a 10% raise and display each Employee’s yearly salary again.

------------------------------------------------------

طيب اول فقره كدا حليتها :

public class Employee {
String FirstName;
String LastName;
double MonthlySalary;


}

وقالت الاستاذه لازم نكتب دي في اي برنامج نسويه ..هل ذا هو نفسه اداة البناء ؟

 
public Employee()

{
FirstName= Null;
LastName= Null;
MonthlySalary=0.0;
}

كتبتلنا دا بس اتوقع ناقص ...

void Employee(String first, String last,double salary );
\\اتوقع ينكتب كدا لان الورقه اللي فيها حل السؤال مااعرف فين ضاعت مني  :wacko:

طيب دي الفقره اللي بعدها. للفانكشن set & get

بس ماني عارفه اذا صح ولا غلط ^^!

public void setFirstName(String first)
    {
    FirstName=first;
}
public void setLastName(String last)
    {
    LastName=last;
}
public void setMonthlySalary(double salary)
    {
    if(salary>0)
        MonthlySalary=salary;
    else
        MonthlySalary=0.0;
}


public String getFirstName()
    {
    return first;
}
public String getLastName()
    {
    return last;
}
public double getMonthlySalary()
    {
return salary
}

اخر فقره ....

class EmployeeTest
{
    void main()
    {
        Employee employee1=new Employee(Amal,Hassan,10000);\\ ليه نكتب new ومتى نكتبها ؟؟؟        Employee employee2=new Employee();
    }

\\ابغى اسوي employee2 ياخذها من اليوزر بس ماني عارفه كيف اكتبها ككود

متأكده فيه اغلاط وناقص اشياء مره كثيره بس انا مبتدئه في الجافا ولا فاهمتلو كثير , ولا عارفه اخليه كود متكامل :blush:

#8

باختصار :)

اولا ننشئ فئة تستقبل 3 متغيرات ..

ونضع الشروط في دوال الـ set

طبعا انا حطيت شرط اذا الراتب سالب اضربه بـ -1

ونضيف دالة تعود براتب الموظف خلال سنة

أيضا دالة الزيادة 10 %

public class Employee {
    private String first;//first name
    private String last;//last name
    private double salary;//salary

public Employee(){}

public Employee(String first_name,String last_name,double salary){
setFirst(first_name);
setLast(last_name);
setSalary(salary);
}

    /**
     * @return the first
     */
    public String getFirst() {
        return first;
    }

    /**
     * @param first the first to set
     */
    public void setFirst(String first_name) {
        first = first_name;
    }

    /**
     * @return the last
     */
    public String getLast() {
        return last;
    }

    /**
     * @param last the last to set
     */
    public void setLast(String last) {
        this.last = last;
    }

    /**
     * @return the salary
     */
    public double getSalary() {
        return salary;
    }

    /**
     * @param salary the salary to set
     */
    public void setSalary(double salary) {
        if(salary < 0){salary = salary*-1;}
        this.salary = salary;
    }

public double getSalaryForYear(){
return salary*12;
}

public void increase(){
    double value = getSalary()/10;
    double newSalary = this.salary + value;
    setSalary(newSalary);
}

}

في دالة الـ main

   public static void main(String[] args) {
        // TODO code application logic here
        Employee e1 = new Employee("Ahmed","Ali",1000);
        Employee e2 = new Employee("Mohmed","Salam",5000);

        System.out.println("First Employee: "+e1.getFirst()+"\t"+e1.getLast()+"\n");
        System.out.println("His current salary : "+e1.getSalary()+"\tone year :"+e1.getSalaryForYear()+"\n\n");
        e1.increase();
        System.out.println("After Increase: "+e1.getSalary()+"\tone year :"+e1.getSalaryForYear()+"\n");

        System.out.println("----------------------------Second Employee-------------------------");

         System.out.println("First Employee: "+e2.getFirst()+"\t"+e2.getLast()+"\n");
        System.out.println("His current salary : "+e2.getSalary()+"\tone year :"+e2.getSalaryForYear()+"\n\n");
        e2.increase();
        System.out.println("After Increase: "+e2.getSalary()+"\tone year :"+e2.getSalaryForYear()+"\n");
    }

ناتج البرنامج :

First Employee: Ahmed        Ali

His current salary : 1000.0        one year :12000.0


After Increase: 1100.0        one year :13200.0

----------------------------Second Employee-------------------------
First Employee: Mohmed        Salam

His current salary : 5000.0        one year :60000.0


After Increase: 5500.0        one year :66000.0

تم تعديل هذه المشاركة بواسطة JavaPorgrammer في 20 مارس 2011 في 20:23

عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..

{ لا ينال العلم مستحٍ ولا مستكبر }

#9

سؤال واحد للموضوع الواحد

يغلق الموضوع

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر ساعة · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…