الفريق العربي للبرمجةأرشيف المنتديات · 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

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

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