Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλημερα σε ολους τους φιλους.Μολις εχω μπει στην κληρονομικοτητα στη Java και θα θελα λιγο μια βοηθεια ωστε να κατανοησω την εκφωνηση της ασκησης,δεν χρειαζεται να μπει στον κοπο κανεις να γραψει κωδικα,αυτο θελω να το κανω εγω αφου κατανοησω το τι πρεπει να κανω.

Η ασκηση εχει ως εξης

 

  • Θα εχουμε μια τάξη Manager η οποία αντιπροσωπεύει τον διευθυντή ενός τμήματος της. Κάθε διευθυντής ανήκει σε ένα τμήμα της εταιρίας και διευθύνει Χ υπαλλήλους
    (Employee)
  • Για κάθε διευθυντή θα εχουμε τον ΑΜ, το όνομα, επώνυμο, τηλέφωνο, email,μισθό, τμήμα, ειδικότητα καθώς και τα στοιχεία των υφισταμένων του.

          Η ταξη θα περιεχει τα παρακατω

 

  • μέθοδο – κατασκευαστή η οποία δέχεται ως παράμετρο τον ΑΜ, το όνομα,επώνυμο, τηλέφωνο, email, μισθό, τμήμα, ειδικότητα και το πλήθος των υφισταμένων του διευθυντή.
  • Setters και Getters
  • Δημόσια μέθοδο addEmployee, η οποία θα διαβάζει από το πληκτρολόγιο τα στοιχεία ενός υφισταμένου του διευθυντή και θα τον αποθηκεύει στον κατάλληλο πίνακα.
  • Δημόσια μέθοδο removeEmployee, η οποία θα διαβάζει από το πληκτρολόγιο τον αριθμό μητρώου ενός υφισταμένου και θα τον διαγράφει από τον πίνακα, με τέτοιο τρόπο έτσι ώστε να μην έχουμε το φαινόμενο του κατακερματισμού.
  • Δημόσια μέθοδο removeAllEmployees, η οποία θα διαγράφει όλους του
    υφισταμένους από τον πίνακα.
  • Ιδιωτική μέθοδο printEmployeeInfo, η οποία θα δέχεται ως παράμετρο μία θέση του πίνακα με τους υφισταμένους και θα εμφανίζει τα στοιχεία του.
  • Δημόσια μέθοδο printAllEmployeesInfo, η οποία θα εμφανίζει τα στοιχεία όλων των υφισταμένων του διευθυντή.
  • Δημόσια μέθοδο printInfo, η οποία θα εμφανίζει τα στοιχεία του διευθυντή καθώς και όλων των υφισταμένων του.
  1. Εχω φτιαξει την ταξη Manger με τον κατασκευαστη της και τους setters και getters της
  2. Υποθετω οτι θα πρεπει να φτιαξω αλλη μια ταξη Employee που θα κληρονομει απο την ταξη  Manager ολα τα παραπανω οπως τον ΑΜ, το όνομα,επώνυμο, τηλέφωνο, email, μισθό, τμήμα, ειδικότητα και το πλήθος των υφισταμένων του διευθυντή.Η ταξη Employee τι αλλα δεδομενα πρεπει να εχει εκτος απ αυτα που θα κληρονομει απ την Manager?
  3. Οι μεθοδοi addEmployee,removeEmployee,removeAllEmployees,printEmployeeInfo,printAllEmployeesInfo,printInfo σε ποια ταξη θα γραφτουν?Η θα πρεπει για καθε μια να φτιαξω ξεχωριστη ταξη?

 

     Αυτα τα ολιγα φιλοι μου,οποιος εχει ορεξη ας ριξει καμια συμβουλη.Ευχαριστω και καλημερα σε ολους

Δημοσ.

 

Υποθετω οτι θα πρεπει να φτιαξω αλλη μια ταξη Employee που θα κληρονομει απο την ταξη  Manager ολα τα παραπανω οπως τον ΑΜ, το όνομα,επώνυμο, τηλέφωνο, email, μισθό, τμήμα, ειδικότητα και το πλήθος των υφισταμένων του διευθυντή.Η ταξη Employee τι αλλα δεδομενα πρεπει να εχει εκτος απ αυτα που θα κληρονομει απ την Manager?

  Βασικα το πληθος των υφισταμένων του διευθυντή πρεπει να υπαρχει στην κλαση managers αλλα οχι στην κλαση Employee γιατι προφανος εκει δεν βγαζει νοημα.

  Οτι εχει σχεση με τους υπαλληλους θα ειναι στην Employee κλαση, και το printinfo στην κλαση μανατζερς.

  

  Στην Employees θα πρεπει να εχεις το department ( σε ποιον μανατζερς υπαγονται.). Αν και πρεπει να κανεις μια μικρη κλαση departments γιατι δεν εχει νοημα να κατηγοριοποιεις τους υπαλληλους αναλογα με τον μανατζερς, αλλα και μανατζερς και υπαλληλους αναλογα με το τμημα.

  • Like 1
Δημοσ.

Είναι αρκετά ελλιπής η εκφώνηση και σε μπερδεύει.

 

Oi managers employees έχουν προφανώς κοινά στοιχεία τα οποία αφορούν την ιδιότητά τους ως άνθρωπο (Person), (Εργαζόμενου) και τελικά (Manager). 

 

Γνώμη μου είναι θα φτιάξεις μια κλάση Employee η οποία θα είναι η Superclass και ο Manager θα την κάνει extend. Δηλαδή θα έχεις:

public class Employee{}
public class Manager extends Employee {}

O Manager θεωρητικά είναι υφιστάμενος κάποιου άλλου και αυτός ίσως κάποιου άλλου. Οι Employee/Managers έχουν κάποια κοινά στοιχεία (όνομα, τμήμα, μισθός, ΑΜ κτλ). Ο Manager έχει κάποια έξτρα όπως τις διάφορες μεθόδους  + ένα List<Employee> τους οποίους managarei.

 

Για μένα αυτή θα ήταν μια σωστή εκκίνηση, αλλά απο την άλλη η εκφώνσηση δεν είναι πολύ καλή και δεν μπορώ να συμπεράνω πόσο ευέλικτος μπορεί να είσαι. Όπως  λέει και ο παπακαλιάτης, θα είχε ενδεχομένως νόημα και μια κλάση Department

  • Like 1
Δημοσ.

Κατ αρχας σας ευχαριστω και τους δυο για τις συμβουλες σας.

 

 

Για μένα αυτή θα ήταν μια σωστή εκκίνηση, αλλά απο την άλλη η εκφώνσηση δεν είναι πολύ καλή και δεν μπορώ να συμπεράνω πόσο ευέλικτος μπορεί να είσαι

 Ειμαι φρεσκος ακομα στο OOP φιλε ZAKKWILDE και ειναι πολυ καινουργια για μενα ακομα γι αυτο δεν μπορω με μια ματια να διακρινω πως θα το δομησω.

 

Οποτε παιδια αν καταλαβα καλα θα εχω 3 κλασεις(Manager,Employees,Department) και η Employees θα ειναι η superclass.Η κλαση Manager θα περιεχει τις μεθοδους.Λιγο δεν καταλαβα τι θα κανει η κλαση Department?

Δημοσ.

Σωστά, η διαφορά του Manager είναι ότι έχει τις μεθόδους + μια λίστα απο Employees που managarei. Μιας και αυτός διαχειρίζεται αυτή τη σχέση, δεν έχει νόημα (στη παρούσα άσκηση ) το ανάποδο, δηλαδή ποιόν Manager έχει ο κάθε Employee

 

Η Department μπορεί απλά να έχει ένα Field departmentName ας πούμε με getters/setters. Απλά είναι πιο OO απο το απλά να έχεις ένα String department σε κάθε Employee. Μπορεί να θεωρήσεις ότι Μόνο ο Manager έχει Department, άρα το Department του κάθε Employee εξαρτάται απο τον Manager στον οποίο ανήκει (άρα εκεί θα έχει ενδεχομένως νόημα και το Bi-directional relationship Employee-Manager).

  • Like 1
Δημοσ.

 

Σωστά, η διαφορά του Manager είναι ότι έχει τις μεθόδους + μια λίστα απο Employees που managarei. Μιας και αυτός διαχειρίζεται αυτή τη σχέση, δεν έχει νόημα (στη παρούσα άσκηση ) το ανάποδο, δηλαδή ποιόν Manager έχει ο κάθε Employee

 

Η Department μπορεί απλά να έχει ένα Field departmentName ας πούμε με getters/setters. Απλά είναι πιο OO απο το απλά να έχεις ένα String department σε κάθε Employee. Μπορεί να θεωρήσεις ότι Μόνο ο Manager έχει Department, άρα το Department του κάθε Employee εξαρτάται απο τον Manager στον οποίο ανήκει (άρα εκεί θα έχει ενδεχομένως νόημα και το Bi-directional relationship Employee-Manager).

 

:fear: :fear: πω πω λιγο του μπελα ειναι ε?Θα προσπαθησω να τα βαλω σε μια ταξη μεσα στο μυαλο και θ αρχισω να γραφω να δω που θα με βγαλει..

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...