الوقت/التاريخ الآن هو الخميس مايو 09, 2024 3:31 am

2 نتيجة بحث عن name

حل اسئلة وتمارين بلغة جافا الجزء الثالث

اهلا بيك الاخ الكريم @abushuber

السؤال الثاني :مطلوب منك كتابة برنامج لحساب مرتب عامل فى شركة , يتأثر هذا الراتب عندما ياخذ العامل اجازة عادية أو حتى اجازة مرضية بحيث يقل الراتب كنسبة مئوية من الراتب فى هذه الحالة مع الأخذ بعين الاعتبار الاتى :

1_أن يكون الكلاس أو الفئة باسم  #workers 
2_ على أن تحتوى الفئة حقول المتغيرات التالية  #name# , salary# ,city 
3_ إنشاء مشيد أو منشئ الفئة مع المتغيرات لتمرير اكتساب قيمة الكائن الأولي لجميع المتغيرات المذكورة أعلاه
4_استخدام أسلوب التحميل الزائد لتجنب التكرار الكود كلما كنت في حاجة الى ذلك
5 _ إنشاء الدالة الرئسية #main داخل الفئة لانشاء كائن جديد باسم #obj1 لطباعة مرتب العامل فى الحالة العادية و مرتبة فى حالة أخذ الاجازة

الحل على النحو التالى :

1_إنشاء الفئة باسم  #workers

الكود:

public class Workers {

  
}


2_الاعلان عن حقول المتغيرات
الكود:

public class Workers {

private String Name;
private String city;
private double Salary;
  
}


3_إنشاء منشيء الفئة #workers

الكود:

public class Workers {


private String Name;
private String city;
private double Salary;
  
 Workers(String N, String ad, double S) {
         this.Name = N;
         this.city = ad;
         this.Salary = S;
    }


4_إنشاء الطرق التى سنتخدمها فى البرنامج لارجاع اسم الموظف و المدينة و قيمة مرتبة
الكود:
String GetName(){
  return Name;    
}
 String GetAddr(){
  return city;    
}

 double GetSalary(){
 return Salary;  
  }  


5_إنشاء الدالة الرئسية #main داخل الفئة على النحو التالى :

الكود:

    public static void main(String[] args) {
        
     }


6_ انشاء كائن جديد من الفئة باسم obj1 لطباعة بيانات الموظف اعلاه

الكود:
 public static void main(String[] args) {
              
              
        Workers obj1 = new Workers("ahmed","cairo",10000);
        
      }    


يمكن ملاحظة أننا قمنا بتمرير بيانات العامل الاساسية مثل الاسم و المدينة و الراتب الاساسي الى كائن obj1 ....حتى الان لم نقم بمعالجة الخصم من راتبة نتيجة الاجازة او الراحة التى اخذها

لذلك سنفترض أن تلك الشركة تقوم بخصم نسبة 12% من راتب العامل نيجة هذه الاجازة ....لذلك علينا حساب القيمة التى سيتم خصمها من راتبة و ذلك على النحو الرياضى التالى :

قيمة الخصم = المرتب الاساسي * نسبة الخصم
اذن الراتب الجديد = الراتب الاساسي - قيمة هذا الخصم

و يتم ذلك برمجيا عن طريق التالى :

الاعلان عن ثلاث متغيرات لتخزين نسبة الخصم , قيمة الخصم , الراتب الجديد وذلك على النحو التالى :

الكود:
double  dis,valuedis,newsalary;


بعد ذلك يمكننا اجراء العمليات الحسابية السابقة و من ثم طباعة المخرجات ....

اذن الكود بالكامل على النحو التالى :

الكود:

public class Workers {


private String Name;
private String city;
private double Salary;
  
 Workers(String N, String ad, double S) {
         this.Name = N;
         this.city = ad;
         this.Salary = S;
    }
 String GetName(){
  return Name;    
}
 String GetAddr(){
  return city;    
}

 double GetSalary(){
 return Salary;  
  }
 
 
    public static void main(String[] args) {
        
      
        
        Workers obj1 = new Workers("ahmed","cairo",10000);
        
        
        double  dis,valuedis,newsalary;
        dis=12;
       valuedis=(obj1.GetSalary()*dis)/100;
       newsalary=obj1.GetSalary()-valuedis;
      
        System.out.println("Employee Name: "+ obj1.GetName() +"\n"
                     + "Employee city: " + obj1.GetAddr() + "\n"
                     + "Employee Salary: "  + obj1.GetSalary() + "\n"
                     + "discount percentage;" + dis + "\n"
                     + "discount value ;" + valuedis + "\n"
                     + "Employee new Salary: "  + newsalary + "\n"
        
        );
      
      
    }
    
}


المخرجات :

Employee Name: ahmed
Employee city: cairo
Employee Salary: 10000.0
discount percentage;12.0
discount value ;1200.0
Employee new Salary: 8800.0

لى معك لقاء اخر خصوص سؤال الدايرة دة رخم شوي  الوسم name على المنتدى منتدى مصر التقني 1f600 
من طرف أحمد مناع
في الأربعاء يناير 30, 2019 2:09 pm
 
ابحث في: نقاش و أستفسارات الاعضاء
موضوع: حل اسئلة وتمارين بلغة جافا الجزء الثالث
المساهمات: 28
مشاهدة: 15563

حل اسئلة وتمارين بلغة جافا الجزء الثاني

أهلا بيك 

السؤال الاول : يطلب إعطاء مثال لكل من :

1_Overloading : التعريف و المثال فى مقالة الاستاذة @زهراء على الرابط التالى :


2_protected Field أو الحقل المحمى باللغة العربية

تعرف الحقول Field فى لغة الجافا على انها المتغيرات التى يتم الاعلان عنها داخل الفئة أو الكلاس و خارج الدوال لاستخدامها فى فئات أخرى ....مثال الاعلان عن بعض المتغيرات فى الكلاس Employee
الكود:
public class Employee {
  String  name     ;
  String  position ;
  int     salary   ;
  Date    hiredDate;
}


ويتم الوصول الي المتغيرات اعلاه فى الفئات الاخرى عن طريق ما يسمى محددات الوصول Access Modifiers التى تحدد طريقة الوصول اليها ...وتوفر لغة الجافا أربعة أنواع من معدّلات الوصول التى يمكن استخدامها على النحو التالى :

Default :وهو ما تم فعله فى المثال اعلاه حيث عند عدم تحديد أي مُعدل وصول - يُقال إنه يحتوي على معدِّل الوصول الافتراضي افتراضيًا ..و بالتالى لا يمكن الوصول و استخدام تلك المتغيرات إلا داخل الحزمة نفسها

Private :اذا سبق تلك المتغيرات الكملة Private يقال أن محدد الوصول خاص ... وبالتالى لا يمكن أستحدامها إلا ضمن الفئة التي يتم الإعلان عنها.أي فئة أخرى من نفس الحزمة لن تكون قادرة على الوصول إلى تلك المتغيرات

Protected ::اذا سبق تلك المتغيرات الكملة Protected يقال أن محدد الوصول محمي ...و بالتالى يمكن استخدام تلك المتغيرات داخل نفس الحزمة أو الفئات الفرعية في حزمة مختلفة فقط


Public :اذا سبق تلك المتغيرات الكملة Public يقال أن محدد الوصول عام ...أنه يمكن الوصول إلى تلك الحقول من خلال جميع الفئات في التطبيق الخاص بك

مثال توضحيى لكيفة اعلان كل نوع من الانواع السابقة :

الكود:
public class Customer {
     String position;
    private   String email;
   protected String name;  
       public    String city;

}


نرجع لمثالك المطلوب فية اعطاء مثال على حقل محمي protected Field

المثال :تخزين اسم موظف فى حقل محمي باسم #name و طباعتة ....على النحو التالى :
الكود:

 class JavaApplication1 {
    
 protected  String name;
 
    public static void main(String[] args) {
      
       new JavaApplication1().name="abushuber";
        
        System.out.println("your name is "+name);
      
  
      }
    
}



3_ التهيئة الصريحة explicit initialization

و يقص بها أن يتم تعين قيم المتغيرات ....مثال توضيحيى :

الكود:
class SomeClass
{
   static boolean b;
   static byte by;
   static char c;
   static double d;
   static float f;
   static int i;
   static long l;
   static short s;
   static String st;
}


الحقول السابقة لم يتم تعيين قيم لها.لذلك يتم تهيئتها بشكل ضمني و تكون النتائج على النحو التالى.

false
0
\u0000
0.0
0.0
0
0
0
null

لكن سؤالك يتطلب منك اعطاء مثال للتهيئة الصريحة و يقصد بها تعين القيم على النحو التالى :
الكود:
class SomeClass
{
   static boolean b = true;
   static byte by = 1;
   static char c = 'A';
   static double d = 2.0;
   static float f = 3.0f;
   static int i = 4;
   static long l = 5000000000L;
   static short s = 20000;
   static String st = "abc";
}


وهذا هو المقصود بالتهئة الصريحة للمتغيرات explicit initialization

4_ إنشاء طريقة بمعاملات method with parameters 

المثال : سنقوم بإنشاء طريقة باسم  total لها عدد 2 عامل او بارميتر no1 و no2 لحساب مجموع عددين على النحو التالى :
الكود:

void total(int no1,int no2){
    int sun = no1+no2;
     System.out.println("Value= "+sun);
  }      


و المثال بالكامل على النحو التالى :
الكود:

 class JavaApplication1 {
    
   void total(int no1,int no2){
    int sun = no1+no2;
     System.out.println("Value= "+sun);
  }        
 
    public static void main(String[] args) {
      
          
      new JavaApplication1().total(8, 10);
      
  
      }
    
}


5_ المعامل جديد new operator

المعامل New هى كلمة محجوزة فى لغة الجافا تقوم بإنشاء الكائنات object من الفئات وتعيينه لمتغير ....مثال :لو نظرت للمثال اعلاه ستجد أننا استخدمنا الكملة new لانشاء كائن فى الفئة JavaApplication1 ....المثال بطريقة اخرى:

الكود:

 class JavaApplication1 {
    
   void total(int no1,int no2){
    int sun = no1+no2;
     System.out.println("Value= "+sun);
  }        
 
    public static void main(String[] args) {
      
          
     JavaApplication1 b = new JavaApplication1();
     b.total(8, 10);
      
  
      }
    
}





السؤال الثاني : يطلب منك إنشاء كلاس باسم Author ...ويتم ذلك على النحو التالى :
الكود:
class Author {
}  


على أن يحتوي هذا الكلاس على الحقول التالية :

حقل باسم name نوعة String...لتخزين الاسم
حقل باسم email نوعة String ... لتخزين البريد الالكترونى
حقل باسم gender نوعة char ...لخزين الجنس وهو يقبل حرف واحد فقط M ترمز للذكر أو F ترمز للانثي

ويتم ذلك على النحو التالى :
الكود:
class Author {
      
 private String name;
 private String email;
 private char gender;


- على أن يحتوي الكلاس ايضا على المشيد أو constructor الخاص بالفئة بدون معاملات و يتم ذلك على النحو التالى :
الكود:
class Author {
      
 private String name;
 private String email;
 private char gender;

public Author() {
     name=null;
     email=null;
     gender='F';
   }


_ كما يجب ان يحتوي الكلاس على الطرق التالية :

طريقة باسم getName  من نوع String بدون معاملات لارجاع الاسم ويتم ذلك على النحو التالى :
الكود:
public String getName() {
      return name;
   }


طريقة باسم getEmail من نوع String بدون معاملات لارجاع البريد الالكتروني ويتم ذلك على النحو التالى :
الكود:
public String getEmail() {
      return email;
   }


طريقة باسم SetName بمعامل من نوع String لتخزين الاسم فية ويتم ذلك على النحو التالى :

الكود:
public void SetName(String name) {
      this.name = name;
   }


طريقة باسم setEmail  بمعامل من نوع String لتخزين البريد الالكترونى به ويتم ذلك على النحو التالى :

الكود:
public void setEmail(String email) {
      this.email = email;
   }



يمكن ملاحظة أن السؤال طلب منا انشاء حقل باسم gender ولم يتم استخدامة ولا اعلم لماذا لم يطلب فى السؤال انشاء طريقة لاستخدام الحقل gender

على اى حال تكون الفئة Author بالكامل على النحو التالى :

الكود:
class Author {
      
 private String name;
 private String email;
 private char gender;
 
   public Author() {
     name=null;
     email=null;
     gender='F';
   }
   public String getName() {
      return name;
   }
   public void SetName(String name) {
      this.name = name;
   }
  
   public String getEmail() {
      return email;
   }
   public void setEmail(String email) {
      this.email = email;
   }
  
}


لكن السؤال لم يكتفي بذلك بل طلب منا انشاء كلاس اخر توجد بة الدالة main لتشغيل البرنامج و لذلك سنفترض أن اسم الكلاس الاخر المطلوب هو TestAuthor و بداخلة الدالة main يتم ذلك على النحو التالى :

الكود:
public class TestAuthor {
   public static void main(String[] args) {
    
      Author Test = new Author();
    
      Test.SetName("ahmed");
      Test.setEmail("Test@gmail.com");
    
          
      System.out.println("your name is: " + Test.getName());
      System.out.println("your email is: " + Test.getEmail());
   }
}



المخرجات :

your name is: ahmed
your email is: Test@gmail.com




السؤال الثالث : مكون من شقين 

الشق الاول كتابة برنامج لحل المعادلة الرياضية التى بالصورة لكن للاسف كما اخبرتك سابقا هذه المعادلة الرياضية لم افهمها حتى استطيع كتابة البرنامج لها لذلك اعتذر عنها 

أما الشق الثانى فمطلوب منك تعريف التالى :


1_Inheritance :بالعربية الوراثة وهي العملية التي يتم فيها توريث الخصائص والاساليب و الدوال من فئة الى أخرى ...الفئة التى يتم الوراثة منها تسمي الفئة الاساسية أو فئة الاصل أو بالانجليزية superclass ...و الفئة التى يتم الوراثة اليها تسمي فئة مشتقة و  فئة تابعة أو بالانجليزية subclass و يتم استخدام الكلمة الأساسية "extends" لانشاء عملية الوراثة تلك بتمريرها الى الفئة المشتقة و ذلك على النحو التالى :

الكود:
class Super {
   .....
   .....
}
class Sub extends Super {
   .....
   .....
}



2_final

 هى كلمة محجوزة فى لغة الجافا و يتم استخدامها في سياقات عديدة لتعريف كيان يمكن تعيينه مرة واحدة فقط...هذا الكيان قد يكون فئة class أو طريقة method أو متغيرات variables و سيتم بيانها على النحو التالى :

الفئات النهائية Final classes :


اذا تم استخدام الكلمة Final فائنها تصبح نهائية و بالتالى لا يمكن الوراثة منها ...مثال توضيحيى :
الكود:
public final class MyClass {...}


فى المثال اعلاه قمنا بانشاء الفئة MyClass و استخدما معها الكلمة المحجوزة final و بالتالى لا يمكن الوراثة منها كما اوضحنا فى الجزئية اعلاه ....على النحو التالى :
الكود:
public class ThisIsWrong extends MyFinalClass {...} // هذا مرفوض لان الفئة نهائية


الطرق النهائية Final methods

اذا تم تعريف أو إنشاء الطريقة على انها نهائية فلا يمكن استخدامها فى الفئة الفرعية ....مثال توضيحيى /

نفترض ان لدينا الفئة Base بها عدد 2 طريقة ...طريقة منها معرفة على انها Final على النحو التالى :
الكود:
public class Base
{
    public       void m1() {...}
    public final void m2() {...}


عند عملية الوراثة يمكننا استخدام الطريقة m1 فى حين اننا لانستطيع استخدام الطريقة m2 لانها معرفة على انها final

الكود:
public class Derived extends Base
{
    public void m1() {...}  // مسموح,()
    public void m2() {...}  // غير مسموح


المتغيرات النهائية Final variables

المتغير المعرف بـ final، لا يمكن إعطاءه قيمة جديدة من بعد أن ما تم إعطائه قيمة أولية. بمعنى آخر، لو لدينا متغير نصي من نوع local variable (أي داخل دالة) وقمنا بتعريفه كـ final:

الكود:
final String a;


فإنه لا يقبل إسناد قيمة له إلا مرة واحدة:

الكود:

final String a;
a = "test";
a = "test2"; // ERROR



أو

الكود:

final String a = "test";
a = "test2"; // ERROR



والى هنا ننتهى من السؤال الاول و الثاني و الثالث ....ولى معاك لقاء اخر
من طرف أحمد مناع
في السبت يناير 05, 2019 7:53 am
 
ابحث في: نقاش و أستفسارات الاعضاء
موضوع: حل اسئلة وتمارين بلغة جافا الجزء الثاني
المساهمات: 23
مشاهدة: 5157

الرجوع الى أعلى الصفحة

انتقل الى: