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

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

Δημοσ. (επεξεργασμένο)

Χαίρεται! μια μικρή βοήθεια όποιος ξέρει!!

 

Σε μια άσκηση η οποία ζητά να αποθηκεύονται τα προιόντα ενώς καταστήματος με κάποια χαρακτηρηστικά (όνομα,περιγραφή και τιμή) σε μια ArrayList στη main

και ο χρήστης θα επιλέγει ποιά απο αυτά θέλει και θα του επιστρέφει την τελική τιμή αφού επιλέξει τρόπο πληρωμής με κάποιες επιβαρύνσεις ανάλογα το τρόπο (πιστωτική, μετρητά και επιταγή)..

 

Έχω κάνει τρεις κλάσεις ανάλογα το τρόπο πληρωμής που υπολογίζει τις διάφορες επιβαρύνσεις στο τρόπο πληρωμής και που κληρονομούν τα χαρακτηριστικά από

μια abstract sample η οποια έχει ta protected χαρακτηριστικά και τα επιστρέφει πακετάκι στη main..

 

το θέμα είναι με ποίο τρόπο θα αποθηκεύσω τα προιόντα στην ArrayList που θα είναι Object όπως καταλαβαίνω και πως θα στέλνονται στην sample αφού είναι προστατευόμενα τα μέλη της. ...

Επεξ/σία από yincyun
Δημοσ.

Βασικά αν κατάλαβα καλά έχεις μια abstact κλάση (ας την πούμε PaymentMethod) από την οποία κληρονομούν κλάσεις οι οποίες περιγράφουν τον τρόπο πληρωμής (έστω η Cash, Check, CreditCard). Αν ισχύει αυτό, τότε τα protected μέλη της PaymentMethod μπορείς να τα προσπελάσεις μέσω των τριων υποκλάσεων.

 

Επιπλέον τα μέλη στην ArrayList δεν χρειάζεται να είναι Object (και δεν πρέπει κιόλας εδώ που τα λέμε). Φτιάξε μια κλάση, έστω Products, η οποία θα έχει σαν μέλη τα βασικά χαρακτηριστικά των προϊόντων (τιμή, όνομα κ.α.) την οποία θα χρησιμοποιήσεις στην ArrayList. Και αν έχεις κάποια προϊόντα που διαφοροποιούνται, φτιάξε ξεχωριστή κλάση για αυτά, η οποία θα κληρονομεί από την Products.

Δημοσ. (επεξεργασμένο)

το θέμα μου είναι πως να αρχικοποιώ τα προιόντα κάπου ώστε να τα εμφανίζω στο χρήστη να τα επιλέγει και μετά να υπολογίζει ανάλογα με το τρόπο πληρωμής την τελική τιμή

 

Επιπλέον τα μέλη στην ArrayList δεν χρειάζεται να είναι Object (και δεν πρέπει κιόλας εδώ που τα λέμε). Φτιάξε μια κλάση, έστω Products, η οποία θα έχει σαν μέλη τα βασικά χαρακτηριστικά των προϊόντων (τιμή, όνομα κ.α.) την οποία θα χρησιμοποιήσεις στην ArrayList. Και αν έχεις κάποια προϊόντα που διαφοροποιούνται, φτιάξε ξεχωριστή κλάση για αυτά, η οποία θα κληρονομεί από την Products.

 

δεν πολυκατάλαβα τι εννοείς... :(

Επεξ/σία από yincyun
Δημοσ.

Πριν φτάσεις στη λύση, κάποια βασικά:

 

Γιατί στην Sample έχεις την Price να είναι static;

 

Οι toString() στις υποκλάσεις είναι λίγο περίεργες... Επίσης και οι constructor δεν τα πάνε πολύ καλά...

 

Από την Sales και κάτω το πράγμα χάνεται, πρέπει να το ξαναδείς προσεκτικότερα...

Δημοσ.

Έχει αρκετά συντακτικά λαθάκια ο κώδικάς σου αλλά ας μη μείνουμε σε αυτό...

Που θες να εμφανίζονται τα προϊόντα και με ποιο τρόπο; Αν θες εξήγησε λίγο παραπάνω τι ακριβώς θέλεις να κάνεις με το πρόγραμμα αυτό να σε βοηθήσουμε γιατί έχω την εντύπωση ότι έχεις μπερδευτεί λιγάκι...

Δημοσ.

όχι λιγάκι πολύ!! Υπάρχει αυτή η εταιρία που πουλάει γυναικία προιόντα... γιατί άλλωστε και τόσο περίπλοκη η άσκηση.... Θέλω να βάζω εγώ αυτά τα προιόντα... να εμφανίζονται στο χρήστη να επιλέγει ποια από αυτά θέλει και να επιλέγει επίσης και τρόπο πληρωμής... ανάλογα και με το τρόπο πληρωμής υπάρχουν και επιβαρύνσεις (με τι πιστωτική χρεώνεται ο χρήστης +5 ευρό στο τελικό ποσό και με την επιταγή +15% του τελικού ποσού ντούκου δεν έχει έξτρα χρέωση...) και να εμφανίσει τα επιλεγμένα προιόντα και το τελικό ποσό

 

δεν έχω καταλάβει αρχικά το όλο ιδεατό πως πάει και δεν μπορώ να καταλάβω που θα βάζω τα προιόντα... σε αντικείμενο στη sample δε γίνεται στις άλλες δε μπορώ γιατί δε ξέρω πως θα πληρώσει ο χρήστης (...και δε μας νοιάζει άλλωστε)

ευχαριστώ που ασχολείστε!!

Δημοσ.

Συμφωνό μαζί σου φίλε timonkaipumpa.. εδώ δε ζητάω να μου λήσουν τη άσκηση.. ζητάω να με βοηθήσει κάποιος να ξεσκαλώσω και να προχωρήσω.. όπως βλέπεις έχω κάνει τι προσπάθεια μου και συνεχίζω να προσπαθώ να τη λύσω.. φαντάζομαι κι εσύ ρώτησες και έμαθες δε σου ρθε θεία φώτηση ούτε διάβασες 8234 βιβλία και 1.082.341 site για να μάθεις java... αν ξέρεις java.. έψαξες ρώτησες και τα γνωστά... αφού σου έλυσα το θέμα σου περί επίλυσης της άσκησης μου.. λύσε μου κι εσύ τώρα μια απορία... Πότε θα σταματήσουν οι του λόγου σου να ασχολούνται με ημιμαθείς και άσχετους που συμπεριλαμβάνομαι κι εγώ μέσα σε αυτούς απο τη στιγμή που ούτε να βοηθήσετε θέλετε και μερικές φορές ούτε καν ξέρετε τι ζητάμε.. παράπανω δίνω συγκεκριμένες ερωτήσεις για τα δε ξέρω κι εγώ πόσα errors που έχω μέσα στο κώδικα δε ζήτησα προφανώς να μου τη λύσεις εσύ και κατά δεύτερον και κανένας άλλος. άλλο έχω απορίες και άλλο πάρτη και λύστη... ΕΛΕΟΣ ΜΕ ΑΥΤΟΥΣ ΠΟΥ ΔΕΝ ΕΧΟΥΝ ΤΙ ΝΑ ΚΑΝΟΥΝ και απλά το παίζουν έξυπνοι. βρες κάτι ποιο εποικοδομιτικό και κάνε..

Δημοσ.

Γενικα το πρόγραμμα είναι μικρό,

 

μερικά σχόλια από εμένα,

 

-χρειάζεσαι να το ξανασχεδιάσεις

-νομιζω δεν χρειάζεσαι την abstract class μιας και δεν έχει υλοποιημένη

κάποια λογική

-χρησιμοποίησε enum για τους τρόπους πληρωμής αντί για string

-protected static double Price > μου φαίνεται λίγο άκυρο μιας και θα έχει

πολλά προιόντα.

-γιατί δεν αρχικοποιείς τα προιόντα σου στην main και δεν έχεις κάποιες

μεθόδους να υπολογίζουν τους φόρους κτλπ και να επιστρέφουν κάτι στην

main;

Δημοσ.

-χρειάζεσαι να το ξανασχεδιάσεις

-νομιζω δεν χρειάζεσαι την abstract class μιας και δεν έχει υλοποιημένη

κάποια λογική

-χρησιμοποίησε enum για τους τρόπους πληρωμής αντί για string

-protected static double Price > μου φαίνεται λίγο άκυρο μιας και θα έχει

πολλά προιόντα.

 

απλά η άσκηση είναι βασισμένη στην abstract και απλά υπάρχει αυτό το παράδειγμα για να υλοποιηθεί... βέβαια μου λείπει η βασική ιδέα για το τι γίνεται με την abstract και γιατί υπάρχει.. δε βγάζω άκρη με τη θεωρία..

 

-γιατί δεν αρχικοποιείς τα προιόντα σου στην main και δεν έχεις κάποιες

μεθόδους να υπολογίζουν τους φόρους κτλπ και να επιστρέφουν κάτι στην

main;

αυτή την αρχικοποίηση παλεύω απο το μεσημέρι....

οι τρόποι πληρωμής δε θα υπολογίζουν το τελικό κόστος?? που είναι οι 3 κλάσεις που κληρονομούν την Sample...

Δημοσ.

Από όσο μπορώ να καταλάβω από τις ερωτήσεις σου, έχεις ένα γενικότερο μπλέξιμο ως προς το πώς πρέπει να αντιμετωπίσεις το πρόβλημα.

 

Μπορείς να απαντήσεις τα εξής:

- Ποιες οντότητες (έννοιες) συμμετέχουν στο πρόγραμμα;

- Τι χαρακτηριστικά έχει το κάθε είδος οντότητας;

- Ποιες λειτουργίες έχει το κάθε είδος οντότητας;

- Κάποιο είδος «σπάει» σε επιμέρους είδη οντοτήτων; Ποια τα κοινά στοιχεία των επιμέρους ειδών και ποια τα διαφορετικά;

- Πώς σχετίζονται οι διάφορες οντότητες μεταξύ τους; Πώς χρησιμοποιεί η μία την άλλη;

 

Αν βάλεις αυτά σε μία ξεκάθαρη σειρά, θα καταλάβεις πώς πρέπει να φτιάξεις τις κλάσεις σου.

Δημοσ.

Συμφωνό μαζί σου φίλε timonkaipumpa.. εδώ δε ζητάω να μου λήσουν τη άσκηση.. ζητάω να με βοηθήσει κάποιος να ξεσκαλώσω και να προχωρήσω.. όπως βλέπεις έχω κάνει τι προσπάθεια μου και συνεχίζω να προσπαθώ να τη λύσω.. φαντάζομαι κι εσύ ρώτησες και έμαθες δε σου ρθε θεία φώτηση ούτε διάβασες 8234 βιβλία και 1.082.341 site για να μάθεις java... αν ξέρεις java.. έψαξες ρώτησες και τα γνωστά... αφού σου έλυσα το θέμα σου περί επίλυσης της άσκησης μου.. λύσε μου κι εσύ τώρα μια απορία... Πότε θα σταματήσουν οι του λόγου σου να ασχολούνται με ημιμαθείς και άσχετους που συμπεριλαμβάνομαι κι εγώ μέσα σε αυτούς απο τη στιγμή που ούτε να βοηθήσετε θέλετε και μερικές φορές ούτε καν ξέρετε τι ζητάμε.. παράπανω δίνω συγκεκριμένες ερωτήσεις για τα δε ξέρω κι εγώ πόσα errors που έχω μέσα στο κώδικα δε ζήτησα προφανώς να μου τη λύσεις εσύ και κατά δεύτερον και κανένας άλλος. άλλο έχω απορίες και άλλο πάρτη και λύστη... ΕΛΕΟΣ ΜΕ ΑΥΤΟΥΣ ΠΟΥ ΔΕΝ ΕΧΟΥΝ ΤΙ ΝΑ ΚΑΝΟΥΝ και απλά το παίζουν έξυπνοι. βρες κάτι ποιο εποικοδομιτικό και κάνε..

 

 

 

Και εδώ αναρωτιέμαι..

 

 

Ποιός το παίζει έξυπνος; Αυτός που προσπαθεί να του λύσουν μία άσκηση και ξέρουν, ίσως με κάποιο κληρονομικό χάρισμα ( ; ), τι έχουν και τι δεν έχουν να κάνουν οι άλλοι; Μπα.. δεν νομίζω!

 

LOL

 

 

 

 

Όσο για την άσκηση... έχεις σχεδιαστικό λάθος.

 

 

Θα πρέπει να φτιαχθεί μία κλάση προϊόν από την οποία θα φτιάχνεις όλα τα άλλα προϊόντα. Ο πίνακας που θα τα αποθηκεύεις θα έχει μέσα προϊόντα.

 

Η πληρωμή δεν θα είναι κλάση... αλλά μέθοδος του καταστήματος (Public κιόλας).

 

Ο πίνακας με τα προϊόντα θα είναι attribute του καταστήματος. Το τι προϊόντα έχει το κατάστημα, μπορεί να το βλέπει ο "πελάτης" καλώντας μία public μέθοδο του καταστήματος που θα του δίνει πίσω το τι προϊόντα έχει το κατάστημα.

 

 

 

 

 

Υ.Γ. Ακόμα πιο σωστά, η πληρωμή θα πρέπει να είναι interface του καταστήματος.

 

Υ.Γ.2 Αυτό για τα προϊόντα στο είπε και άλλος... αλλά εκεί φάνηκε ότι θες να στην λύσουν. Πώς στην ευχή θα κάνει κάποιος άσκηση στην Java, που υποτίθεται ότι παρακολουθεί, και δεν μπορεί να καταλάβει ότι τα προϊόντα τα "ομαδοποιείς" σε μία κοινή κλάση;

Δημοσ.

με βάση αυτά που κατάλαβα μάλλον θες να κάνεις κάτι τέτοιο

 

>
import java.util.ArrayList;

public class Askisi{


public static void main(String args[]){
	ArrayList<Product> products=new ArrayList<Product>();
	Product product1=new Product("pen","blue",1.5);
	products.add(product1);
}
}

 

και

>
public class Product{
	private String name;
	private String perigrafh;
	private double price;
	public Product(String name,String perigrafh,double price){
		this.name=name;
		this.perigrafh=perigrafh;
		this.price=price;
	}
	public double getPrice(){
		return price;
	}
          ..............
}

Δημοσ.

Και εδώ αναρωτιέμαι..

 

Ποιός το παίζει έξυπνος; Αυτός που προσπαθεί να του λύσουν μία άσκηση και ξέρουν, ίσως με κάποιο κληρονομικό χάρισμα ( ; ), τι έχουν και τι δεν έχουν να κάνουν οι άλλοι; Μπα.. δεν νομίζω!

 

LOL

επαναλαμβάνομαι και δε μαρέσει.. δε προσπαθώ να μου λύσουν την άσκηση μην επιμένεις. βοήθεια ζητάω για βασικά πράγματα.

αλλά αν σε πειράζει τόσο πολύ γιατί έστω ασχολήσε αφού πιστεύεις έχεις δίκιο?????????

 

Όσο για την άσκηση... έχεις σχεδιαστικό λάθος.

 

Θα πρέπει να φτιαχθεί μία κλάση προϊόν από την οποία θα φτιάχνεις όλα τα άλλα προϊόντα. Ο πίνακας που θα τα αποθηκεύεις θα έχει μέσα προϊόντα.

 

Η πληρωμή δεν θα είναι κλάση... αλλά μέθοδος του καταστήματος (Public κιόλας).

 

Ο πίνακας με τα προϊόντα θα είναι attribute του καταστήματος. Το τι προϊόντα έχει το κατάστημα, μπορεί να το βλέπει ο "πελάτης" καλώντας μία public μέθοδο του καταστήματος που θα του δίνει πίσω το τι προϊόντα έχει το κατάστημα.

 

Υ.Γ. Ακόμα πιο σωστά, η πληρωμή θα πρέπει να είναι interface του καταστήματος.

Ευχαριστώ πολύ που έριξες το επίπεδό σου και ασχολήθηκες.

Υ.Γ.2 Αυτό για τα προϊόντα στο είπε και άλλος... αλλά εκεί φάνηκε ότι θες να στην λύσουν. Πώς στην ευχή θα κάνει κάποιος άσκηση στην Java, που υποτίθεται ότι παρακολουθεί, και δεν μπορεί να καταλάβει ότι τα προϊόντα τα "ομαδοποιείς" σε μία κοινή κλάση;

κάποια πράγματα που εσύ μπορεί να τα θεωρείς αυτονόητα οτι εγώ τα καταλαβαίνω δε σημαίνει οτι είναι και έτσι.

παρατηρώ δεν έχουμε το ίδιο επίπεδο γνωσης...

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

δε ζήτησα συγκεκριμένα τη δική σου βοήθεια αλλά γενικά όποιος μπορεί να βοηθήσει άρα δε δίνω αναφορά σε σένα για το πως θα διαβάσω.

όπως και να χει δε χρειάζεται να ανοίξουμε και διαμάχη για μια γ@μ*abstract...

 

με βάση αυτά που κατάλαβα μάλλον θες να κάνεις κάτι τέτοιο

 

>
import java.util.ArrayList;

public class Askisi{


public static void main(String args[]){
	ArrayList<Product> products=new ArrayList<Product>();
	Product product1=new Product("pen","blue",1.5);
	products.add(product1);
}
}

 

και

>
public class Product{
	private String name;
	private String perigrafh;
	private double price;
	public Product(String name,String perigrafh,double price){
		this.name=name;
		this.perigrafh=perigrafh;
		this.price=price;
	}
	public double getPrice(){
		return price;
	}
  		..............
}

να σαι καλά φίλε παίζει και να κατάλαβα τι πρέπει να κάνω...ευχαριστώ

Δημοσ.

Βασικά πριν πάμε στον κώδικα, ας δούμε τι θέλεις να κάνει το πρόγραμμά σου. Ανακεφαλαίωση λοιπόν και με διορθώνεις όπου έχω λάθος:

1) Θέλεις να εμφανίζεις προϊόντα στο χρήστη

2) ο χρήστης θα επιλέξει το προϊόν-προϊόντα που θέλει

3) μετά θα επιλέξει τον τρόπο πληρωμής

4) θα εμφανίζει τέλος τα προϊόντα που έχουν επιλεχθεί και το συνολικό ποσό πληρωμής

 

Αρχικά πώς θα εμφανίζεις τα προϊόντα; Μέσω ενός gui ή από το command; Επίσης, στη διαδικασία πάνω όπως την περιέγραψα έχουμε τις εξής κλάσεις

Προϊόν, Χρήστης (δε θα φτιάξουμε κάποια σχετική κλάση, αν χρειαζόσουν όμως username κ password θα έπρεπε να την συμπεριλάβουμε), Πληρωμή. Αρχικά ξεκαθάρισε πώς θέλεις να εμφανίζονται τα προϊόντα και μετά πάμε παρακάτω.

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

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

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

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

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

Σύνδεση

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

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