1 / 39

مقرر برمجة 2

مقرر برمجة 2. اللقاءات المطروحة بنمط الصفوف الافتراضية Virtual Class أ.أمجد محفوظ. مقرر برمجة 2. Class and Methods الاصناف والمناهج.

erna
Download Presentation

مقرر برمجة 2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. مقرر برمجة 2 اللقاءات المطروحة بنمط الصفوف الافتراضية Virtual Class أ.أمجد محفوظ

  2. مقرر برمجة 2 Class and Methods الاصناف والمناهج

  3. One dimensional array // Array1.java1. public class Array1{2. public static void main(String args[]){3. int a[ ] = new int[5]; 4. a[1] = 34; 5. a[4] = 67; 6. for(int i=0; i<5; i++)7. System.out.print(a[i]+ " ");8. }9. }

  4. 1. public class MethodCall {2. public static void main(String args[]){3. int x = 5, y = 6, z = 0, s = 0;4. sum1(10, 5);5. sum1(x, y);6. s =sum2(5, 6);7. System.out.println("sum = " + sum2(5, 6));8. z = 12 + 3 * sum2(x, 10);9. sum1(sum2(3, 4), 5);10. } // end of main13. static void sum1(int num1,int num2){14. int sum=0;//local variable15. sum= num1+num2 ;16. System.out.println("sum = "+ sum);17. } // end of sum120. static int sum2(int num1,int num2){21. int sum=0; // local variable22. sum= num1+num2 ;23. return sum ; } }

  5. الاستدعاء الذاتي Recursion // Rec-2.java 1. public class Rec-2{ 2. public static void main(String args[]) 3. { 4. rec(5); 5. } 6. static void rec(int i) 7. { 8. if (i!=0) 9. { 10. System.out.println("i = "+i); 11. rec(--i); 12. } 13. } 14. }

  6. Classes & Objects

  7. التعامل مع الاصناف والكائنات في جافا برمجيا ا. الطريقة الاولى

  8. class xobject{public int x=5;}public class passingDemo{public void first(){xobject o= new xobject();o.x=5;int x=5;changethem(x,o);System.out.println();System.out.println("back in the orginal method ");System.out.println("the value of o.x is "+o.x);System.out.println("but the value of x is now "+x);}public void changethem(int x,xobject o){x=9;o.x=9;System.out.println("in the changethem method ");System.out.println("the value of o.x is " +o.x);System.out.println("but the value of x is now "+x);}public static void main(String args[]){passingDemo mydemo=new passingDemo();mydemo.first();}}

  9. التعامل مع الاصناف والكائنات في جافا برمجيا 2. الطريقة الثانية

  10. // Account.java1. import java.util.Date;2. import javax.swing.JOptionPane;3. class Account{4. private int account_no;5. private String customer_name;6. private double balance;7. Date last_Transaction_Date;8. Account(int no ,String name ){9. account_no=no;10. customer_name=name;11. }12. Account(int no ,String name ,double amt ){13. account_no=no;14. customer_name=name;15. balance=amt;16. }

  11. 17. void deposit (double amt) {18. if (amt>0 ){19. balance += amt;20. last_Transaction_Date= new Date();21. }22. else23. JOptionPane.showMessageDialog(null,"the deposit amount mustbe > 0");24. }25. void withdraw(double amt){26. if (amt<=balance ){27. balance-=amt;28. last_Transaction_Date= new Date();29. }30. else31. JOptionPane.showMessageDialog(null,"the withdraw amountmust be <= balance");32. }

  12. 33. public double getBalance(){34. return balance;35. }36. public String getCustomer(){37. return customer_name;38. }39. }// client_account.java1. public class client_account{2. public static void main(String args[]){3. Account acc1=new Account(12, "Ali");4. Account acc2=new Account(12, "Fahad", 7350.3);5. acc1.deposit(2341.5);6. acc2.withdraw(200);7. System.out.println("\n Name: "+acc1.getCustomer());8. System.out.println("\t His Balance= " + acc1.getBalance());9. System.out.println("\t The date of the last transaction is: " +acc1.last_Transaction_Date);10. System.out.println(" Name: "+acc2.getCustomer());

  13. 11. System.out.println("\tHis Balance= " + acc2.getBalance());12. System.out.println("\tThe date of the last transaction is: " +acc2.last_Transaction_Date);13. System.out.println();14. }15. }

  14. 1. class Car {2. String manufacturer;3. String model;4. int year;5. int passengers;6. float cost;7. // calculate the sale price of a car based on its cost8. public double CalculateSalePrice() {9. return cost * 1.5;10. }11. // a public constructor12. public Car(String madeBy, String name, int yr, int pass, float cst) {14. manufacturer = madeBy; model = name;16. year = yr; passengers = pass; cost = cst;19. }

  15. 20. // create and return a string with the basic details21. // about this particular car22. public String GetStats() {23. return new String(year + " " + manufacturer + " " + model);24. }25. }

  16. الصنف التالي(main class ) ينفذ الصنف (car) وذلك من خلال انشاء كائن myCar لشركة فورد 1. public class Ford { 2. public static void main(String args[]) { 3. Car myCar = new Car("Ford", "Grand", 1997, 4, 9000); 4. String str = myCar.GetStats(); 5. System.out.println(str); 6. System.out.println(myCar.CalculateSalePrice()); 7. } 8. }

  17. Inheritance Child class extends parent class

  18. الاهداف: • التعرف على اشتقاق الاصناف(الوراثة) • التعرف على جملة this و super • الوراثة: • 1.الصنف الابن يرث الصنف الاب من خلال جملة extends • class childclass extends parentclass • 2. جافا لا تدعم التوارث المتعدد بمعنى ان الصنف الابن لا يرث اكثر من صنف أب. • 3. الصنف الابن يرث جميع المتغيرات والمناهج التي ليست معرفة من نوع private في الصنف الاب. • 4. جملة this تستخدم للدلالة على المتغير او المنهج للصنف الحالي وعادة ما يكون الصنف الابن • 5. جملة super تستخدم للدلالة على المناهج للصنف الاب

  19. 1. class SimpleRecord { 2. String firstName; 3. String lastName; 4. // Default constructor 5. public SimpleRecord() { 6. firstName = ""; 7. lastName = ""; 8. } // Constructor... 9. public SimpleRecord(String firstName, String lastName){ 10. this.firstName = firstName; 11. this.lastName = lastName; 12. } 14. public void list() { 15. System.out.println("\tFirst Name: " + firstName); 16. System.out.println("\tLast Name: " + lastName); 17. System.out.println(); 18. } 19. }

  20. 20. class AddressRecord extends SimpleRecord { 21. String address; 22. // Default constructor 23. public AddressRecord() { 24. firstName = ""; 25. lastName = ""; 26. address = ""; 27. } 29. public AddressRecord(String firstName, String lastName, 30. String address) { 31. this.firstName = firstName; 32. this.lastName = lastName; 33. this.address = address; } 35. public void printDetails(){ 36. System.out.println("\tFirst Name: " + firstName); 37. System.out.println("\tLast Name: " + lastName); 38. System.out.println("\tAddress: " + address); 39. System.out.println(); }}}

  21. 42. public class Test{ 43. public static void main(String args[]){ 44. AddressRecord record; 45. record = new AddressRecord("Thomas", "Jefferson", "Monticello"); 47. System.out.println("The First and the Last Name 48. ONLY:"); 49. record.list(); 50. System.out.println("The First Name, the Last Name, and the Address:"); 52. record.printDetails(); 53. } 54. } مثال:

  22. 1. class Student { 2. protected long id; 3. protected String name; 4. protected double gpa; 5. public Student(long id, String name, double gpa) { 6. this.id = id; 7. this.name = name; 8. this.gpa = gpa; 9. } 10. public Student() { 11. this(999999, "No name", 0.0); 12. } 13. public void changeGPA(double newGPA) { 14. gpa = newGPA; 15. } 16. public double getGPA() { 17. return gpa; 18. } 19. public void print() { 20. System.out.print(id+"\t"+name+ "\t"+gpa); 21. } 22. }

  23. 23. class ResearchAssistant extends Student { 24. private int workLoad; // in hours 25. ResearchAssistant(long id, String name, double gpa, int workLoad){ 26. this.id = id; 27. this.name = name; 28. this.gpa = gpa; 29. this.workLoad = workLoad; 30. } 31. ResearchAssistant() { 32. id = 999999; 33. name = "No name"; 34. gpa = 0.0; 35. workLoad = 0; 36. } 37. public void print() { 38. super.print(); 39. System.out.print("\t" + workLoad); } }

  24. 42. class TestReserchAssistant { 43. public static void main (String[] args) { 44. ResearchAssistant s1; 45. s1 = new ResearchAssistant(); 46. s1.print(); 47. ResearchAssistant s2; 48. s2 = new ResearchAssistant(991234, "Ali Elayyan", 3.45, 15); 49. s2.changeGPA(3.75); 50. System.out.println(); 51. s2.print(); 52. System.out.println(); 53. } 54. }

  25. التحميل المتزايد Overloadingتعريف: استدعاء مجموعة من المناهج تتشابه في الاسم (اسماء المنهج)ولكن تختلف في عدد ، ونوع، وترتيب المعاملات واختلاف نوع المنهج.

  26. // Overloading.java 1. public class Overloading{ 2. public static void main(String args[]) 3. { 4. double num1, num2; 5. int num3; 6. overload(); 7. overload(7, 4); 8. num1=overload(3.5, 8); 9. System.out.println(num1); 10. num2=overload(7, 5.2);

  27. 11. System.out.println(num2);12. num3=overload(3, 5, 9);13. System.out.println(num3);14. }15.16. static void overload()17. {18. int a=9, b=5;19. System.out.println("No return, Noparameters:");20. }21.22. static void overload(int a, int b)23. {24. System.out.println("int return, Two int25. parameters:"+(a+b));26. }

  28. 28. static double overload(double a, int b)29. {30. System.out.print("double return, double &int parameters: ");31. return a+b;32. }33.34. static double overload(int a, double b)35. {36. System.out.print("double return, int &double parameters: ");37. return a+b;38. }39.40. static int overload(int a, int b, int c)41. {42. System.out.print("int return, Three int43. parameters: ");44. return a+b+c; } }

  29. Overriding (الهيمنة) تعريف: هي عملية اعادة تعريف منهج معرف في الصنف الاب وذلك في الصنف الابن بما يتناسب مع طبيعة عمله و سلوكه Polymorphism (تعدد الاوجه) تعريف: معرفة نوع الكائن(تحدد هويته) المنفذ في شجرة التوارث عند تنفيذ البرنامج

  30. // Test.java 1. class Car { 2. private int year; 3. private float originalPrice; 4. // calculate the sale price of a car based on its 5. // cost 6. public double CalculateSalePrice() { 7. double salePrice; 8. if (year > 1994) 9. salePrice = originalPrice * 0.75; 10. else if (year > 1990) 11. salePrice = originalPrice * 0.50; 12. else 13. salePrice = originalPrice * 0.25; 14. return salePrice; 15. }

  31. 16. // a public constructor 17. public Car(int year, float originalPrice) { 18. this.year = year; 19. this.originalPrice = originalPrice; } 20. } 21. class ClassicCar extends Car { 22. // calculate the sale price of a car based on its 23. // cost 24. public double CalculateSalePrice() { 25. return 10000; 26. } 27. // a public constructor 28. public ClassicCar(int year, float originalPrice) { 29. super(year, originalPrice); 30. } 31. }

  32. 32. public class Test{ 33. public static void main(String args[]){ 34. ClassicCar myClassic = new ClassicCar(1920, 1400); 35. double classicPrice = 36. myClassic.CalculateSalePrice(); 37. System.out.println(classicPrice); 38. Car myCar = new Car(1990, 12000); 39. double price = myCar.CalculateSalePrice(); 40. System.out.println(price); 41. } 42. }

  33. الواجهات INTERFACES

  34. الواجهة Interface: 1. مجموعة من المناهج المجردة abstract method وتكون عامة public2. تحتوي على قيم ثابتة نهائية ومناهج مجردة public abstrct3. الواجهات تصف السلوك(العمليات) بمعنى الاعلان عن المناهج دون تعريف عمليات المنهج implementation.4. الاصناف المستخدمة للواجهة،تعرف عمليات المناهج 5. الصنف يمكن ان ينفذ اكثر من واجهة6. يمكن للواجهة ان ترث اكثر من واجهة اخرى. لذلك الواجهات حلت مشكلة التوارث المتعدد للاصناف7. تعريف الواجهة testpublic interface test 8. الصنف ينفذ الواجهة من خلال جملة implementspublic classname implements intf1,intf2,inf3

  35. // goods.java interface textable { public double taxrate=1; public double calculatetax(); } class goods implements textable { String description; double price; } goods(String desc, double pr ) { description= desc; price=pr; }

  36. void display() { System.out.println("item: "+description + "\t price " +price); } public double calculatetax() { return tax*price; } public static void main(String args[]) { goods pass=new goods("sugar",100); pass.display(); System.out.println("calculate "+pass.caculatetax()); }

  37. الحزمة Package :تستخدم لتجميع الاصناف والواجهات معا وذلك لمشروع واحد ومتكامل. Package mjk.MyMath;public class compnum{………………………………}

  38. استدعاء اعضاء حزمة Package : يتم استدعاء أي صنف خارج الحزمة الحالية من خلال جملة import import mjk.Mypack.test;// import mjk.Mypack.*; public class compnum{…………test x=new test();…………}

  39. استدعاء اعضاء حزمة Package : استدعاء حزمة Date للدلالة عن التاريخ الحالي للحركات في بنك واستدعاء اظهار الشاشات في حزمة graphics 1. import java.util.Date;2. import javax.swing.JOptionPane;3. class Account{4. private int account_no;5. private String customer_name;6. private double balance;7. Date last_Transaction_Date; استعراض حزم جافا الاساسية وبعض من اصنافها ومناهجها في صفحة 231 من المقرر

More Related