More Related Content
PPTX
Cs203 lecture13 composition PPS
Sw203 Lecture12 Composition PPTX
Cs203 lecture 14 reflection PPS
Sw203 Lecture7 Method Override PPS
Sw203 Lecture10 Polymorphism PPTX
PPTX
PDF
Viewers also liked
PDF
PDF
PPT
PDF
PDF
PPT
DOCX
PPTX
PDF
PDF
DOCX
PDF
DOCX
PDF
PPS
Sw203 Lecture9 Encapsulation PDF
PPS
S W203 Lecture8 Interface PPS
Sw203 Lecture3 Advanced Java Program PPTX
PDF
Similar to Cs203 lab8
PPTX
PPTX
объект хандлагат программчлал PPT
PPT
PPS
PPT
PDF
Medeelel zui ii-n lecture PPTX
PPT
PPS
Sw203 Lecture4 Class Object PDF
DOCX
PPS
Sw203 Lecture5 Class Acess Modifiers PPS
Sw203 Lecture6 Inheritance DOC
PDF
PPTX
PPTX
DOCX
DOC
More from Jargalsaikhan Alyeksandr
PDF
Database design & Normalization (1NF, 2NF, 3NF) PDF
PPTX
Computer ethics and system security PPT
PPT
PPT
Cs203 lab8
- 1.
Объект хандлагат програмчлалынхэл Java Хичээл : CS203 Улирал : 2010 хавар Бэлтгэсэн багш : Д.Энхжаргал Mongolia University of Science & Technology Лабораторийн ажил № 8 Бүрдмэл харьцаа Оноо: 3 - 2.
Бүрдмэл харьцаа Даалгавар:Оюутан бүр бодлогын даалгавраа өөрөө хийсвэрлэж ( өөрийн гэсэн нэг класс сонгож ) бүрдмэл харьцааг хэрэгжүүлсэн жижиг хэмжээний програм бичих. Онолын хувд: Бүрдмэл харьцааны дараах 2 хэлбэр байдаг гэж үзсэн билээ. Үүнд: Aggregation ба Composition. Энэ 2-ын ялгааг тайлбарлаж бодит амьдралын жишээ гарган тайлбарлаарай ! Аливаа класс нь өөр бусад классуудтай удамшил болон бүрдмэл харьцаагаар зэрэг холбогдож болох уу? Жич: Бие даалтын ажлаар хөгжүүлэхээр сонгосон сэдвийнхээ хүрээнд хийвэл илүү дөхөмтэй, үр өгөөжтэй. Лекц дээр авч үзсэн онолоо сайтар уншиж, жишээ болгон авсан бүрдмэл харьцааг хэрэгжүүлсэн энгийн хялбар жишээ кодноос санаа аваарай ! Шаардлага: Бодлогын даалгавар нь бодит амьдралд нийцсэн байх. Бүрэлдэхүүн класс - 3.
Бүрдмэл харьцаа жишээclass Boat { private String stateRegistrationNo; private double lenght; private String manufacturer; private int year; public Boat(String aStateRegistrationNo, double aLenght, String aManufacturer, int aYear ) { setStateRegistrationNo(aStateRegistrationNo); setLenght(aLenght); setManufacturer(aManufacturer); setYear(aYear); } public void setLenght(double lenght) { this.lenght = lenght; } public void setManufacturer(String manufacturer) { this.manufacturer = manufacturer; } public void setStateRegistrationNo(String stateRegistrationNo) { this.stateRegistrationNo = stateRegistrationNo; } - 4.
Бүрдмэл харьцаа жишээpublic void setYear(int year) { this.year = year; } public double getLenght() { return lenght; } public String getManufacturer() { return manufacturer; } public String getStateRegistrationNo() {return stateRegistrationNo; } public int getYear() { return year; } } Энд завь (Boat) классын бичлэгийг тодорхойлсон байна. Одоо Үйлчлүүлэгч (Customer) классыг аьч үзье. class Customer { private String name; private String address; private String phoneNo; private Boat boat; // Энэ мөрийг анхаар !!! - 5.
Бүрдмэл харьцаа жишээpublic Customer(String aName, String anAddress, String aPhoneNo ){ setName(aName); setAddress(anAddress); setPhoneNo(aPhoneNo); setBoat(null); } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public Boat getBoat() { return boat; } public void setBoat(Boat boat) { this.boat = boat; } public String getName() { return name; } - 6.
Бүрдмэл харьцаа жишээpublic void setName(String name) { this.name = name; } public String getPhoneNo() { return phoneNo; } public void setPhoneNo(String phoneNo) { this.phoneNo = phoneNo; } } Эндээс харахад Үйлчлүүлэгч (Customer) классын Нэр Хаяг Утасны дугаар гэсэн гишүүн өгөгдлүүдээс гадна Завь гэсэн гишүүн объект тодорхойлсон байна. Өөрөөр хэлбэл: энэ нь класс хоорондын шаталсан харьцааны нэг жишээ юм. Манай жишээний хувьд Үйлчлүүлэгч ба Завь классуудын хоорондын шаталсан харьцаа үүсч байгаа бөгөөд энд Завь класс нь бүрэлдэхүүн класс харин Үйлчлүүлэгч класс нь бүрдмэл буюу үндсэн класс болно. Одоо дээрх классуудыг хэрэгжүүлэх жишээ програмыг авч үзье. - 7.
Бүрдмэл харьцаа жишээpublic class TesterAssociation { public static void main(String args[]){ Customer firstCustomer= new Customer("Eleanor","Atlanta","123-4567"); Boat firstBoat=new Boat("MO34561",28,"Ttartsan",2002); firstCustomer.setBoat(firstBoat); Boat aBoat= firstCustomer.getBoat(); System.out.println("Boat Information is: " +aBoat.getStateRegistrationNo()+" " +aBoat.getManufacturer()+" " +aBoat.getLenght()+" " +aBoat.getYear()); System.out.println("Again, Boat Information is: " +firstCustomer.getBoat().getStateRegistrationNo()+" " +firstCustomer.getBoat().getManufacturer()+" " +firstCustomer.getBoat().getLenght()+" " +firstCustomer.getBoat().getYear()); } } - 8.
Бүрдмэл харьцаа жишээДээрх жишээ програмын System.out.println("Boat Information is: " +aBoat.getStateRegistrationNo()+" " +aBoat.getManufacturer()+" " +aBoat.getLenght()+" " +aBoat.getYear()); гэсэн мөрүүдэд Завь классын объектод бэхлэн гишүүн функцуудыг дуудах замаар тухайн объектын гишүүндийн утгыг хэвлэж байна. Харин System.out.println("Again, Boat Information is: " +firstCustomer.getBoat().getStateRegistrationNo()+" " +firstCustomer.getBoat().getManufacturer()+" " +firstCustomer.getBoat().getLenght()+" " +firstCustomer.getBoat().getYear()); гэсэн мөрүүдэд Бүрдмэл классын объект нь түүний бүрэлдэхүүн классын гишүүн функуудыг дуудаж ашиглах боломжтой тул энд Үйлчлүүлэгч классын объектоор дамжуулан Завь классын гишүүн функцуудыг дуудах замаар Завьны гишүүдийг хэвлэж байна. Харин эсрэгээрээ бүрэлдэхүүн классаас бүрдмэл (үндсэн) классын гишүүд рүү хандах боломжтой юу? Энэ асуултын хариуг дээрх кодонд жижигхэн өөрчлөлт хийх замаар бие даан туршиж үзээрэй.