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

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

  • Moderators
Δημοσ.

Εγώ θα έβγαζα το "φυσικού ή θεμελιώδους", αλλά πιστεύω το νόημα είναι σωστό. Βέβαια το τι είναι object δε μπορεί να απαντηθεί σε 2 γραμμές, αλλά υποθέτω ότι η απάντησή σου "κάνει".

Δημοσ.

Χίλια ευχαριστώ... :) Το διόρθωσα.. (Τουλάχιστον πλέον κατάλαβα τι είναι λίστα) + απάντησα την ερώτηση (ακόμα και αν δεν ήταν σωστή).. Να' στε καλά

Δημοσ.

Σκέφτεσαι να κάνεις κάνα πρόγραμμα που να παίρνει μια εικόνα και να τη μετατρέπει σε ascii; Είχα δει ένα project που είχες κάνει με 3D σχήματα στην κονσόλα :P

 

 

Δεν είναι και πολύ δύσκολο κάτι τέτοιο. Το έχω στα σχέδιά μου αλλά όταν έχω χρόνο. Για κάτι πρόχειρο, απλά χρειάζεται να μετατρέψεις την εικόνα σε grey-scale και να την εισάγεις στο πρόγραμμά σου. Θα μπορούσες να χωρίσεις το διάστημα 0-255 σε κάποια επίπεδα πυκνότητας pixel και σε αυτά να αντιστοιχείς κάποια σύμβολα ascii που τα χαρακτηρίζουν.

 

Για παράδειγμα η τελεία '.' έχει πολύ χαμηλό δείκτη μαύρου. Αντιθέτως το '@' ή το '#' έχουν υψηλό.

 

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

 

Θα μπορούσες να το κάνεις και πιο έξυπνο ανιχνεύοντας μεγάλες διαφορές στην πυκνότητα μαύρου. Έτσι θα έβαζες ένα '\' ή '/' για να τονίσεις μία γραμμή. Θα μπορούσες να προσθέσεις και χρώματα.

 

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

 

 

Δημοσ.

Το πρόβλημα κατανόησης προέρχεται από εγγενές "πρόβλημα" της Java σχετικά με τον αντικειμενοστρεφή χαρακτήρα της. 

 

Δυστυχώς, όταν την φτιάχνανε αφήσανε primitive types.... 

 

Έτσι:

 

Δες τι είναι primitive types

 

Δες τι είναι struct στην C++

 

Δες τι είναι κλάσεις εν γένει

 

 

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

Δημοσ.

Μερικές σημειώσεις στα γρήγορα:

 

1. Όσον αφορα τη JAVA το sun coding sytle λέει πως κλάσεις και interfaces ξεκινούν με κεφαλαίο άρα Object έιναι κλάση και List interface.

2. To documentation που παρατέθηκε παράπνω αναφέρει πως όλα τα αντικείμενα ακόμα και οι πίνακες υλοποιούν τις μεθόδους της Object.

3. H List ως interface παρέχει ένα σύνολο απο μεθόδους που υλοποιούν όλες οι κλάσεις που υλοποιούν λίστες (π.χ. ArrayList). Ένα object που είναι λίστα (π.χ. ArrayList) υλοποιεί τις μεθόδους του List καθως και της Object.

  • Like 1
Δημοσ.

Θα μπορούσε να εννοεί και αυτό το παράδειγμα?

 

Object[] x = new Object [4];

 

x[0] = 5;

x[1] = "hello";

x[2] = 5.5;

x[3] = 3;

 

Δηλαδή αν οριστεί με Object τότε μπορεί να δεχτεί διαφορετικών ειδών τύπων δεδομένων (δλδ και string και integer και double κ.ο.κ.. σε αντίθεση με τον συνηθισμένο πίνακα

 

int[] x = new int[4];

 

x[0] = 4;

x[1] = 2;

x[2] = 5;

x[3] = 6;

 

που δέχεται μόνο ένα τύπο δεδομένων? π.χ μόνο int...

 

Απλά με object δέχεται διαφορετικούς τύπους δεδομένων αλλά ορίζουμε το μέγεθος του.

Με πίνακα δέχεται όμοιο τύπο δεδομένων και ορίζουμε το μέγεθος του.

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

 

Τι πιστεύεται? Θα ήταν σωστό? (Πάλι δεν βγάζει νόημα όμως.. ;S )

Δημοσ.

O πίνακας είναι εγγενής υλοποίηση της γλώσσας . Δεν υπάρχει κλάση για arrays που να κάνει explicit ή implicit αναφορά στην Object κλάση.

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

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

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

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

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

Σύνδεση

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

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