Group 1 Homework / Mar 22

6 views
Skip to first unread message

Mikheil Kapanadze

unread,
Mar 23, 2008, 6:20:04 AM3/23/08
to Java in TSU - 2008 (OOP 3 Course)
22 მარტის საშინაო დავალება პირველი ჯგუფისათვის შემდეგია:

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

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

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

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

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

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

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

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

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

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

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

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

საშინაო დავალების გამოგზავნის წესი იხილეთ ამ საიტზე, სექციაში ”სხვა
გვერდები”
Reply all
Reply to author
Forward
0 new messages