Объект хандлагат програмчлалын хэл  Java Хичээл :  CS203 Улирал :  2010  хавар Бэлтгэсэн багш :   Д.Энхжаргал Mongolia Uni...
Бүрдмэл харьцаа <ul><li>Даалгавар: </li></ul><ul><ul><li>Оюутан бүр бодлогын даалгавраа өөрөө хийсвэрлэж  ( өөрийн  гэсэн ...
Бүрдмэл харьцаа жишээ <ul><li>class Boat {  </li></ul><ul><li>private String stateRegistrationNo; </li></ul><ul><li>privat...
Бүрдмэл харьцаа жишээ <ul><li>public void setYear(int year) </li></ul><ul><li>{ this.year = year; } </li></ul><ul><li>  </...
Бүрдмэл харьцаа жишээ <ul><li>public Customer(String aName, String anAddress, String aPhoneNo ){ </li></ul><ul><li>setName...
Бүрдмэл харьцаа жишээ <ul><li>public void setName(String name) { </li></ul><ul><li>this.name = name; </li></ul><ul><li>} <...
Бүрдмэл харьцаа жишээ <ul><li>public class TesterAssociation { </li></ul><ul><li>public static void main(String args[]){ <...
Бүрдмэл харьцаа жишээ <ul><li>Дээрх жишээ програмын </li></ul><ul><li>System.out.println(&quot;Boat Information is: &quot;...
Upcoming SlideShare
Loading in...5
×

Cs203 lab8

2,441

Published on

lab8

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,441
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
58
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Cs203 lab8"

  1. 1. Объект хандлагат програмчлалын хэл Java Хичээл : CS203 Улирал : 2010 хавар Бэлтгэсэн багш : Д.Энхжаргал Mongolia University of Science & Technology Лабораторийн ажил № 8 Бүрдмэл харьцаа Оноо: 3
  2. 2. Бүрдмэл харьцаа <ul><li>Даалгавар: </li></ul><ul><ul><li>Оюутан бүр бодлогын даалгавраа өөрөө хийсвэрлэж ( өөрийн гэсэн нэг класс сонгож ) бүрдмэл харьцааг хэрэгжүүлсэн жижиг хэмжээний програм бичих. </li></ul></ul><ul><li>Онолын хувд: </li></ul><ul><ul><li>Бүрдмэл харьцааны дараах 2 хэлбэр байдаг гэж үзсэн билээ. Үүнд: Aggregation ба Composition. Энэ 2-ын ялгааг тайлбарлаж бодит амьдралын жишээ гарган тайлбарлаарай ! </li></ul></ul><ul><ul><li>Аливаа класс нь өөр бусад классуудтай удамшил болон бүрдмэл харьцаагаар зэрэг холбогдож болох уу? </li></ul></ul><ul><li>Жич: Бие даалтын ажлаар хөгжүүлэхээр сонгосон сэдвийнхээ хүрээнд хийвэл илүү дөхөмтэй, үр өгөөжтэй. Лекц дээр авч үзсэн онолоо сайтар уншиж, жишээ болгон авсан бүрдмэл харьцааг хэрэгжүүлсэн энгийн хялбар жишээ кодноос санаа аваарай ! </li></ul><ul><li>Шаардлага: </li></ul><ul><li>Бодлогын даалгавар нь бодит амьдралд нийцсэн байх. </li></ul><ul><li>Бүрэлдэхүүн класс </li></ul>
  3. 3. Бүрдмэл харьцаа жишээ <ul><li>class Boat { </li></ul><ul><li>private String stateRegistrationNo; </li></ul><ul><li>private double lenght; </li></ul><ul><li>private String manufacturer; </li></ul><ul><li>private int year; </li></ul><ul><li>public Boat(String aStateRegistrationNo, double aLenght, String aManufacturer, int aYear ) </li></ul><ul><li>{ setStateRegistrationNo(aStateRegistrationNo); </li></ul><ul><li>setLenght(aLenght); </li></ul><ul><li>setManufacturer(aManufacturer); </li></ul><ul><li>setYear(aYear); </li></ul><ul><li>} </li></ul><ul><li> </li></ul><ul><li>public void setLenght(double lenght) </li></ul><ul><li>{ this.lenght = lenght; } </li></ul><ul><li>  </li></ul><ul><li>public void setManufacturer(String manufacturer) </li></ul><ul><li>{ this.manufacturer = manufacturer; } </li></ul><ul><li>  </li></ul><ul><li>public void setStateRegistrationNo(String stateRegistrationNo) </li></ul><ul><li>{ this.stateRegistrationNo = stateRegistrationNo; } </li></ul>
  4. 4. Бүрдмэл харьцаа жишээ <ul><li>public void setYear(int year) </li></ul><ul><li>{ this.year = year; } </li></ul><ul><li>  </li></ul><ul><li>public double getLenght() </li></ul><ul><li>{ return lenght; } </li></ul><ul><li>public String getManufacturer() </li></ul><ul><li>{ return manufacturer; } </li></ul><ul><li>public String getStateRegistrationNo() </li></ul><ul><li>{return stateRegistrationNo; } </li></ul><ul><li>public int getYear() </li></ul><ul><li>{ return year; } </li></ul><ul><li>} </li></ul><ul><li>  </li></ul><ul><li>Энд завь (Boat) классын бичлэгийг тодорхойлсон байна. Одоо Үйлчлүүлэгч (Customer) классыг аьч үзье. </li></ul><ul><li>class Customer { </li></ul><ul><li>private String name; </li></ul><ul><li>private String address; </li></ul><ul><li>private String phoneNo; </li></ul><ul><li>private Boat boat; // Энэ мөрийг анхаар !!! </li></ul>
  5. 5. Бүрдмэл харьцаа жишээ <ul><li>public Customer(String aName, String anAddress, String aPhoneNo ){ </li></ul><ul><li>setName(aName); </li></ul><ul><li>setAddress(anAddress); </li></ul><ul><li>setPhoneNo(aPhoneNo); </li></ul><ul><li>setBoat(null); </li></ul><ul><li>} </li></ul><ul><li>public String getAddress() { </li></ul><ul><li>return address; </li></ul><ul><li>} </li></ul><ul><li>public void setAddress(String address) { </li></ul><ul><li>this.address = address; </li></ul><ul><li>} </li></ul><ul><li>public Boat getBoat() { </li></ul><ul><li>return boat; </li></ul><ul><li>} </li></ul><ul><li>public void setBoat(Boat boat) { </li></ul><ul><li>this.boat = boat; </li></ul><ul><li>} </li></ul><ul><li>public String getName() { </li></ul><ul><li>return name; </li></ul><ul><li>} </li></ul>
  6. 6. Бүрдмэл харьцаа жишээ <ul><li>public void setName(String name) { </li></ul><ul><li>this.name = name; </li></ul><ul><li>} </li></ul><ul><li>public String getPhoneNo() { </li></ul><ul><li>return phoneNo; </li></ul><ul><li>} </li></ul><ul><li>public void setPhoneNo(String phoneNo) { </li></ul><ul><li>this.phoneNo = phoneNo; </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>  </li></ul><ul><li>Эндээс харахад Үйлчлүүлэгч (Customer) классын </li></ul><ul><li>Нэр </li></ul><ul><li>Хаяг </li></ul><ul><li>Утасны дугаар гэсэн гишүүн өгөгдлүүдээс гадна </li></ul><ul><li>Завь гэсэн гишүүн объект тодорхойлсон байна. </li></ul><ul><li>Өөрөөр хэлбэл: энэ нь класс хоорондын шаталсан харьцааны нэг жишээ юм. Манай жишээний хувьд Үйлчлүүлэгч ба Завь классуудын хоорондын шаталсан харьцаа үүсч </li></ul><ul><li>байгаа бөгөөд энд Завь класс нь бүрэлдэхүүн класс харин Үйлчлүүлэгч класс нь бүрдмэл буюу үндсэн класс болно. </li></ul><ul><li>  </li></ul><ul><li>Одоо дээрх классуудыг хэрэгжүүлэх жишээ програмыг авч үзье. </li></ul>
  7. 7. Бүрдмэл харьцаа жишээ <ul><li>public class TesterAssociation { </li></ul><ul><li>public static void main(String args[]){ </li></ul><ul><li>Customer firstCustomer= new Customer(&quot;Eleanor&quot;,&quot;Atlanta&quot;,&quot;123-4567&quot;); </li></ul><ul><li>Boat firstBoat=new Boat(&quot;MO34561&quot;,28,&quot;Ttartsan&quot;,2002); </li></ul><ul><li>firstCustomer.setBoat(firstBoat); </li></ul><ul><li>Boat aBoat= firstCustomer.getBoat(); </li></ul><ul><li>  </li></ul><ul><li>System.out.println(&quot;Boat Information is: &quot; </li></ul><ul><li>+aBoat.getStateRegistrationNo()+&quot; &quot; </li></ul><ul><li>+aBoat.getManufacturer()+&quot; &quot; </li></ul><ul><li>+aBoat.getLenght()+&quot; &quot; </li></ul><ul><li>+aBoat.getYear()); </li></ul><ul><li>System.out.println(&quot;Again, Boat Information is: &quot; </li></ul><ul><li>+firstCustomer.getBoat().getStateRegistrationNo()+&quot; &quot; </li></ul><ul><li>+firstCustomer.getBoat().getManufacturer()+&quot; &quot; </li></ul><ul><li>+firstCustomer.getBoat().getLenght()+&quot; &quot; </li></ul><ul><li>+firstCustomer.getBoat().getYear()); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  8. 8. Бүрдмэл харьцаа жишээ <ul><li>Дээрх жишээ програмын </li></ul><ul><li>System.out.println(&quot;Boat Information is: &quot; </li></ul><ul><li>+aBoat.getStateRegistrationNo()+&quot; &quot; </li></ul><ul><li>+aBoat.getManufacturer()+&quot; &quot; </li></ul><ul><li>+aBoat.getLenght()+&quot; &quot; </li></ul><ul><li>+aBoat.getYear()); гэсэн мөрүүдэд </li></ul><ul><li>  </li></ul><ul><li>Завь классын объектод бэхлэн гишүүн функцуудыг дуудах замаар тухайн объектын гишүүндийн утгыг хэвлэж байна. Харин </li></ul><ul><li>  </li></ul><ul><li>System.out.println(&quot;Again, Boat Information is: &quot; </li></ul><ul><li>+firstCustomer.getBoat().getStateRegistrationNo()+&quot; &quot; </li></ul><ul><li>+firstCustomer.getBoat().getManufacturer()+&quot; &quot; </li></ul><ul><li>+firstCustomer.getBoat().getLenght()+&quot; &quot; </li></ul><ul><li>+firstCustomer.getBoat().getYear()); гэсэн мөрүүдэд </li></ul><ul><li>  </li></ul><ul><li>Бүрдмэл классын объект нь түүний бүрэлдэхүүн классын гишүүн функуудыг дуудаж ашиглах боломжтой тул энд Үйлчлүүлэгч классын объектоор дамжуулан Завь классын гишүүн функцуудыг дуудах замаар Завьны гишүүдийг хэвлэж байна. </li></ul><ul><li>  </li></ul><ul><li>Харин эсрэгээрээ бүрэлдэхүүн классаас бүрдмэл (үндсэн) классын гишүүд рүү хандах боломжтой юу? Энэ асуултын хариуг дээрх кодонд жижигхэн өөрчлөлт хийх замаар бие даан туршиж үзээрэй. </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×