საშინაო დავალება 4 აპრილისათვის

3 views
Skip to first unread message

Mikheil Kapanadze

unread,
Mar 31, 2009, 2:28:21 AM3/31/09
to OOP3 in TSU - 2009
მოგესალმებით,

საშინაო დავალება შემდეგია:

მოცემულია კლასი Client, რომელსაც აქვს 3 ველი String ტიპისა: firstName,
lastName, email

public class Person {
private String firstName;
private String lastName;
private String email;
// set და get მეთოდები

}

დაწერეთ პროგრამა, რომელიც
1. სტანდარტული შეტანის ნაკადიდან შეიტანს ამ კლასის ობიექტებს შემდეგი
წესით: ეკრანზე გამოდის შეკითხვა: გსურთ შეტანა?

დადებითი პასუხის შემთხვევაში პროგრამა ქმნის Clientტიპის ობიექტს,
Reflection API-ს გამოყენებით იღებს კლასის ველებს სათითაოდ და
გვეკითხება მათ მნიშვნელობებს (მაგ. Input firstName: ) და შეტანის
შემდეგ ასევე Reflection API-თი ახდენს ამ ობიექტის ველებში ინფორმაციის
შეტანას და თავად ობიექტის ჩამატებას წინასწარ შექმნილ ArrayList<Client>
სიაში.

უარყოფითი პასუხის შემთხვევაში პროგრამა ბეჭდავს მიღებულ ArrayList-ს

2. კლას Clientგადაუფარეთ მეთოდი toString() რომელიც ასევე Reflection
API-ს საშუალებით ამოიკითხავს ობიექტის ველებს და დააბრუნებს შემდეგი
ტიპის პასუხს: "Client[ firstName=Mikheil, lastName=Kapanadze,
email=mik...@mikheil.com]" ველების მიმდევრობას მნიშვნელობა არ აქვს

3. განსაზღვრეთ ანოტაცია FieldMetadata რომელიც შეიძლება დაეწეროს კლასის
ველებს. თუკი კლასში გვაქვს შემდეგი აღწერა:

@FieldMetadata(name="First Name", minLength=2)
private String firstName;

ეს ნიშნავს რომ შეტანისას უნდა გვითხრას არა Input firstName: არამედ
Input First Name: და თუკი შეტანილი სტრიქონის სიგრძე 2-ზე ნაკლებია,
გამოიტანოს შეტყობინება შეცდომის შესახებ, მიმდინარე Client ტიპის
ობიექტი არ დაამატოს ArrayList-ში და გადავიდეს შემდეგზე.

ასევე, toString-მა უნდა უნდა დააბრუნოს არა "Client[ firstName=Mikheil,
lastName=Kapanadze, email=mik...@mikheil.com]"
არამედ:
"Client[ First Name=Mikheil, lastName=Kapanadze,
email=mik...@mikheil.com]"

სიგრძეზე კონტროლი არ მოხდეს, თუკი ველს ეწერება ანოტაცია შემდეგნაირად:
@FieldMetadata(name="First Name")
private String firstName;

თუკი ველს უველს ანოტაცია საერთოდ არ უწერია, შედეგი დაემთხვეს შემდეგი
ანოტაციის არსებობას:
@FieldMetadata(name="firstName")
private String firstName;

საშინაო დავალების გამოგზავნის ბოლო ვადაა 2 აპრილის 18:00

Reply all
Reply to author
Forward
0 new messages