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

Arrays of objects


Feel me get in

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

Δημοσ.

Καλησπέρα.

 

Τις πονεμένες τούτες μέρες είπα να κάτσω να κάνω ένα πρόγραμμα και έχω σκαλώσει.

 

Σας παραθέτω

 

public class Antallaktika {

//metablites ipostasis

private String code, describe;

private long quantity;

 

//dimiourgia antikeimenou

public Antallaktika (String cd, String dscb, long qty) {

code = cd;

describe = dscb;

 

if (qty < 0) {

System.out.println("AKIRI TIMI EISODOU. SAN TIMI EISODOU THEOREITAI H MIDENIKI");

quantity = 0;

}

if (qty > 2147483647) {

System.out.println("IPERBOLIKA MEGALI TIMI EISODOU. SAN TIMI EISODOU 8EWREITAI H 2147483647");

quantity = 2147483647;

}

else

quantity = qty;

 

}//telos Antallaktika

 

Στη συνέχεια το κυρίως πρόγραμμα ας πούμε ότι είναι κάπως έτσι

 

class AntallaktikaApp {

public static void main (String [] args) {

 

int epilogi;

int i = 0;

String kwdikos, perigrafi;

long posotita;

Antallaktika [] arrayAntallaktika = new Antallaktika [10];

 

System.out.println("DWSTE TON KWDIKO TOY ANTALLAKTIKOU");

kwdikos = my.readStr();

my.skip(2);

 

System.out.println("DWSTE TIN PERIGRAFI TOY ANTALLAKTIKOU");

perigrafi = my.readStr();

my.skip(2);

 

System.out.println("DWSTE TIN POSOTITA TOY ANTALLAKTIKOU");

posotita = my.readLong();

my.skip(2);

 

arrayAntallaktika = new Antallaktika (kwdikos, perigrafi, posotita);

i++;

(η my.java ήταν έτοιμη class από cd σε βιβλίο που πήρα)

Προφανώς είναι μέσα σε μιά επανάληψη αλλά who cares δεν είναι αυτό το θέμα.

 

Λοιπόν, θα ήθελα να ρωτήξω πως εμφανίζω τα περιεχόμενα μιας θέσης ενός πίνακα από objects. (δεν εμφανίζει σωστό αποτέλεσμα με την system.out.print και με την toString νομίζω παίζει exception)

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

 

Ευχαριστώ για τον χρόνο σας. :-)

Δημοσ.

Αποκλείεται να παίζει exception με την toString(), όμως και να παίζει σωστά θα σου δίνει τη θέση μνήμης του αντικειμένου γιατί καλείται από την τάξη Object. Ο καλύτερος τρόπος εδώ θα ήταν να υλοποιήσεις την public String toString() εσύ με το τι ακριβώς θες να εκτυπώνει και μετά θα παίζει τέλεια με ένα απλό Sout του αντικειμένου.

Δημοσ.

>public class Antallaktika {

private String code, describe;
private long quantity;

//dimiourgia antikeimenou
public Antallaktika (String cd, String dscb, long qty) {
code = cd;
describe = dscb;

if (qty < 0) {
System.out.println("AKIRI TIMI EISODOU. SAN TIMI EISODOU THEOREITAI H MIDENIKI");
quantity = 0;
}
if (qty > 2147483647) {
System.out.println("IPERBOLIKA MEGALI TIMI EISODOU. SAN TIMI EISODOU 8EWREITAI H 2147483647");
quantity = 2147483647;
}
else
quantity = qty;

}

αυτο λες object ?

Δημοσ.
Καλησπέρα.

 

Τις πονεμένες τούτες μέρες είπα να κάτσω να κάνω ένα πρόγραμμα και έχω σκαλώσει.

 

Σας παραθέτω

 

 

 

Στη συνέχεια το κυρίως πρόγραμμα ας πούμε ότι είναι κάπως έτσι

 

 

(η my.java ήταν έτοιμη class από cd σε βιβλίο που πήρα)

Προφανώς είναι μέσα σε μιά επανάληψη αλλά who cares δεν είναι αυτό το θέμα.

 

Λοιπόν, θα ήθελα να ρωτήξω πως εμφανίζω τα περιεχόμενα μιας θέσης ενός πίνακα από objects. (δεν εμφανίζει σωστό αποτέλεσμα με την system.out.print και με την toString νομίζω παίζει exception)

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

 

Ευχαριστώ για τον χρόνο σας. :-)

 

Για να πάρεις τα στοιχεία ενός αντικειμένου... στη συγκεκριμένη περίπτωση της Antallaktika πρέπει να φτιάξεις κάποις συναρτήσεις οι οποίες επιστρέφουν το περιεχόμενο των πεδίων. Χρειάζεσαι για κάθε πεδίο και μία τέτοια συνάρτηση. (Γνωστές και ως getters)

Π.χ:

>
public String getCode()
{
         return code;
}

 

Και έτσι για να το εκτυπώσεις αυτό μέσω ενός αντικειμένου κάνεις:

 

>
Antallaktika ant1 = new Antallaktika(String code,........);
System.out.println(ant1.getCode());

 

Κι έτσι εκτυπώεις

 

Αν θες να χρησιμοποιήσεις την toString() δεν έχεις παρα να την υλοποιήσεις στην τάξη Antallaktika κάπως έτσι:

>
public String toString()
{
   return "Code: " + code + "Describe: "+describe+ "Quantity: " + quantity;
}
//*Αναλόως πως σε βολευέι και μετά για να το ακτυπώσεις δεν έχεις παρα να γράψεις απλά αυτό: */

Antallaktika ant1 = new Antallaktika(..........);
System.out.println(ant1) ή System.out.println(ant1.toString());
/*Στην περίπτωση που απλά βάλεις το αντικέιμενο  μεσα στο System.out.println  εκτελεί αυτόματα το toString()*/

Αρχειοθετημένο

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

  • Δημιουργία νέου...