Τα πάντα για την java

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Απορίες σε java

Δημοσίευσηαπό giannosfor » 26 Μαρ 2012, 23:52

Ναι έτσι είναι μέθοδοι είναι κάτι αντίστοιχο .
1 Γνώσεις Linux: Καθόλου ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-58-generic 32bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.2.0-57-generic, Microsoft Windows XP Professional
3 Intel Core2 Duo CPU E4600 2.40GHz ‖ RAM 2012 MiB ‖ ASUS INC. P5Q - � P5Q
4 nVidia G94 [GeForce 9600 GT] [10de:0622] {nvidia}
5 eth0: Qualcomm Atheros AR8121/AR8113/AR8114 Gigabit or Fast Ethernet [1969:1026] (rev b0) ⋮ wlan0: 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter
Άβαταρ μέλους
giannosfor
punkTUX
punkTUX
 
Δημοσιεύσεις: 297
Εγγραφή: 24 Απρ 2011, 20:24
Τοποθεσία: Ηράκλειο
Εκτύπωση

Re: Απορίες σε java

Δημοσίευσηαπό giannosfor » 27 Μαρ 2012, 00:53

Ορίστε και το δικό μου.

Μορφοποιημένος Κώδικας: Επιλογή όλων
public class Rectangle {
private static Integer hor,ver;
public static void main(String[] args) {
if (args.length < 2)
System.exit(0);
hor = Integer.parseInt(args[0]);
ver = Integer.parseInt(args[1]);
if (hor < 2 || ver < 2)
System.exit(0);
printHor();
for (int i = 0 ;i < ver - 2; i++)
System.out.println(String.format("*%" + (hor -1) + "s", "*"));
printHor();
}
private static void printHor() {
for (int i = 0; i < hor ; i++)
System.out.print("*");
System.out.println();
}
}
1 Γνώσεις Linux: Καθόλου ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-58-generic 32bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.2.0-57-generic, Microsoft Windows XP Professional
3 Intel Core2 Duo CPU E4600 2.40GHz ‖ RAM 2012 MiB ‖ ASUS INC. P5Q - � P5Q
4 nVidia G94 [GeForce 9600 GT] [10de:0622] {nvidia}
5 eth0: Qualcomm Atheros AR8121/AR8113/AR8114 Gigabit or Fast Ethernet [1969:1026] (rev b0) ⋮ wlan0: 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter
Άβαταρ μέλους
giannosfor
punkTUX
punkTUX
 
Δημοσιεύσεις: 297
Εγγραφή: 24 Απρ 2011, 20:24
Τοποθεσία: Ηράκλειο
Εκτύπωση

Re: Απορίες σε java

Δημοσίευσηαπό clepto » 27 Μαρ 2012, 17:30

@giannosfor έχω ψιλομπερδευτεί με το object...
λοιπόν, ένα object έχει state και behavior...
μια κλάση αποτελείται από πολλά "παρόμοια" objects;

ναι αλλά όταν λέμε ότι δημιουργώ ένα object τι ακριβώς εννοούμε; ότι δημιουργούμε ένα αντικείμενο στο οποίο δίνουμε κάποιες states (variables;) και κάποιες behaviors (μεθόδους/συναρτήσεις;)

οπότε όταν εγώ γράφω
Κώδικας: Επιλογή όλων
Rectangle rectOne = new
            Rectangle(originOne, 100, 200);
από εδώhttp://docs.oracle.com/javase/tutorial/java/javaOO/objects.html
ουσιαστικά είναι σαν να καλώ την τέταρτη μέθοδο από εδώ;; http://docs.oracle.com/javase/tutorial/java/javaOO/examples/Rectangle.java (την ξεχωριζουμε απο τις argument που περνάμε)
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Απορίες σε java

Δημοσίευσηαπό giannosfor » 27 Μαρ 2012, 21:34

Προσωπικά πιστεύω ότι το tutorial της sun είναι πολύ καλό αλλά όχι για κάποιο αρχάριο.
Γνώμη μου βρες κάποιο βιβλίο να σε εξοικειώσει με την έννοια της αντικειμενοστρέφειας ,και παράλληλα διάβαζε και το tutorial της sun.

Σαν θεωρία.
Στην αντικειμενοστρέφια τα πάντα αντιμετωπίζονται ως αντικείμενα.
Τι εννοώ.
Στο παράδειγμα σου αναφέρεις το παραλληλόγραμμο. Ξέχνα λίγο το κώδικα.
Το παραλληλόγραμμο από τι απαρτίζετε;Ποια είναι τα χαρακτηριστικά του;Από τι ορίζετε;

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

Το σημείο από τι ορίζετε;
Στο καρτεσιανό από το τιμή του στο χ και y άξονα.

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

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

Στο κώδικα τώρα.
Στις κλάσεις ορίζεις τα δεδομένα και τις μεθόδους , δηλαδή τα states όπως λες και τα behaviors.
Εμένα ποτέ δε μου άρεσαν αυτοί οι ορισμοί αλλά είναι η θεωρία και χρησιμοποιούνται.
Σε μία κλάση και κατ επέκταση στο αντικείμενο έχεις μεταβλητές οι οποίες θα κρατάνε πληροφορίες
και μεθόδους οι οποίες θα πράττουν διαδικασίες πιθανότατα με τα δεδομένα δηλαδή με τις μεταβλητές
του ίδιου του αντικειμένου.

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

Στο παράδειγμα δημιουργεί ένα αντικείμενο Rectangle και του περνάει σαν παράμετρο σε αυτό που λέμε
constructor ένα καινούργιο αντικείμενο Point.
Αυτό συνάγει με αυτά που είπαμε και στη θεωρία ότι ένα παραλληλόγραμμο πρέπει να έχει ένα σημείο
αναφοράς ώστε να ορίζεται.
Και του το περνάμε με αυτό το τρόπο.

Τώρα αν δεν έχεις ξεκαθαρίσει τι είναι κλάση.Θα πρέπει να διαβάσεις περισσότερο και πιθανότατα από άλλες
πηγές για να πάρεις μία ιδέα και πάλι εδώ ήμαστε.

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

Δε ξέρω αν σε μπέρδεψα περισσότερο άλλα έτσι είναι η θεωρία, μπερδευτική.
Σκέψου ότι θέλεις μία συνταγή ώστε να κάνεις πολλά παραλληλόγραμμα αλλά δε θες το κάθε παραλληλόγραμμο να
έχει το ίδιο πλάτος και μήκος και να βρίσκεται στο ίδιο σημείο θες να είναι αυτόνομα.
Έτσι ορίζεις το καθένα να έχει δικό του μήκος και πλάτος και όταν ζητήσεις το εμβαδό του ενούς παραλληλογράμμου
να υπολογίσει τα δικά του στοιχεία και όχι κάποιου άλλου ,εναποθέτεις την ευθύνη στο αντικείμενο να υπολογίσει
τα στοιχεία του εαυτού του όχι εσύ περνώντας παραμέτρους.
1 Γνώσεις Linux: Καθόλου ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-58-generic 32bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.2.0-57-generic, Microsoft Windows XP Professional
3 Intel Core2 Duo CPU E4600 2.40GHz ‖ RAM 2012 MiB ‖ ASUS INC. P5Q - � P5Q
4 nVidia G94 [GeForce 9600 GT] [10de:0622] {nvidia}
5 eth0: Qualcomm Atheros AR8121/AR8113/AR8114 Gigabit or Fast Ethernet [1969:1026] (rev b0) ⋮ wlan0: 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter
Άβαταρ μέλους
giannosfor
punkTUX
punkTUX
 
Δημοσιεύσεις: 297
Εγγραφή: 24 Απρ 2011, 20:24
Τοποθεσία: Ηράκλειο
Εκτύπωση

Re: Απορίες σε java

Δημοσίευσηαπό parenthesis » 28 Μαρ 2012, 00:35

Επίσης, κάποιες ωραίες απλές ασκησούλες για κάποιον που ξεκινάει με τη java έχει εδώ. :clap:
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Πολύ καλό
2 Dual boot:
  • Ubuntu 13.04 raring 3.8.0-34-generic 64bit (el_GR.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic
  • Fedora 19 Schrödinger’s Cat 3.13.5-101.fc19.x86_64 64bit (el_GR.utf8, gnome)
3 Intel Core i5-3337U CPU @ 1.80GHz ‖ RAM 3844 MiB ‖ TOSHIBA VCUAA - TOSHIBA SATELLITE U940
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 eth0: Realtek RTL8101E/RTL8102E Ethernet [10ec:8136] (rev 05) ⋮ wlan0: Intel Centrino Wireless-N 2230 [8086:0887] (rev c4)
Άβαταρ μέλους
parenthesis
punkTUX
punkTUX
 
Δημοσιεύσεις: 150
Εγγραφή: 06 Οκτ 2009, 22:47
Launchpad: mara_sdr
Εκτύπωση

Re: Απορίες σε java

Δημοσίευσηαπό the_eye » 29 Μαρ 2012, 18:37

Το θέμα διαχωρίστηκε, παρακαλώ να συνεχιστεί η κουβέντα μόνο για την java

Όσο λιγότερο κλειστό λογισμικό έχεις, τόσα λιγότερα προβλήματα.
1 Γνώσεις ⇛ Linux: Καλό ┃ Προγραμματισμός: Ναι PHP, MySQL ┃ Αγγλικά: Καλά
2 Ubuntu 22.04 Jammy Jellyfish 5.15.0-58-generic 64bit (el_GR.UTF-8, ubuntu:GNOME ubuntu)
3 Intel Core i3-6100 CPU @ 3.70GHz ‖ RAM 7836 MiB ‖ Gigabyte B150M-HD3 DDR3-CF - Gigabyte B150M-HD3 DDR3
4 Intel HD Graphics 530 [8086:1912] {i915}
5 enp1s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
Οδηγοί Ubuntu Βίντεο Οδηγοί
Άβαταρ μέλους
the_eye
Διαχειριστής
Διαχειριστής
 
Δημοσιεύσεις: 11671
Εγγραφή: 16 Μαρ 2010, 17:19
Launchpad: ntoulasd
IRC: the_eye_
Εκτύπωση

Re: Απορίες σε java

Δημοσίευσηαπό giannosfor » 30 Μαρ 2012, 00:51

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

Καταρχην δημιουργείς ένα αντικείμενο γράφοντας new και το όνομα της κλάσης αυτό σημαίνει ότι καταλαμβάνει χώρο στην μνήμη
και τo αρχικοποιεί.Πώς γίνεται αυτό.Με τους constructors.Τι είναι consrtuctor ,είναι μία μέθοδος στο όνομα της κλάσης όπου σε αυτή αναφέρεσαι
όταν αρχικοποιείς ένα αντικείμενο.Οι constructor είναι ένας τρόπος να περάσεις δεδομένα στο αντικείμενο σου που θα είναι όπως θα λέγαμε στη
θεωρία οι ιδιότητες του αντικειμένου σου.
Αυτό το πετυχαίνεις κάνοντας πολλαπλούς αν θες constructor που αυτό που αλλάζει είναι οι παράμετροι που δέχεται και εξυπηρετούν τους
σκοπούς σου.Ένας άλλος τρόπος είναι να αλλάξεις τα δεδομένα μετά τη δημιουργία του αντικειμένου σου με accessors δηλαδή μεθόδους που
αλλάζουν τις μεταβλητές του αντικειμένου σου ή με κατευθείαν αναφορά στις μεταβλητές αν είναι public δηλαδή έχουν όλοι πρόσβαση ή
άλλου τύπου που αφήνει να κάνεις ,αλλά δε είναι κάτι που θα το δεις συχνά.
Τώρα είδα στο παράδειγμα ότι περνάει στο constructor ένα αντικείμενο Point ,και αυτό γίνεται.
Όταν δεν υπάρχει constructor στη κλάση σου δημιουργείτε άλλα είναι κενός.
1 Γνώσεις Linux: Καθόλου ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-58-generic 32bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.2.0-57-generic, Microsoft Windows XP Professional
3 Intel Core2 Duo CPU E4600 2.40GHz ‖ RAM 2012 MiB ‖ ASUS INC. P5Q - � P5Q
4 nVidia G94 [GeForce 9600 GT] [10de:0622] {nvidia}
5 eth0: Qualcomm Atheros AR8121/AR8113/AR8114 Gigabit or Fast Ethernet [1969:1026] (rev b0) ⋮ wlan0: 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter
Άβαταρ μέλους
giannosfor
punkTUX
punkTUX
 
Δημοσιεύσεις: 297
Εγγραφή: 24 Απρ 2011, 20:24
Τοποθεσία: Ηράκλειο
Εκτύπωση

Re: Απορίες σε java

Δημοσίευσηαπό clepto » 30 Μαρ 2012, 15:32

ωραία ευχαριστώ! διαβάζω το βιβλίο του Deteil ή όπως τον λένε και είναι πολύ καλό!
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Απορίες σε java

Δημοσίευσηαπό giannosfor » 30 Μαρ 2012, 18:43

Ναι είναι αρκετά καλό.Πολλά παραδείγματα.
1 Γνώσεις Linux: Καθόλου ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-58-generic 32bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.2.0-57-generic, Microsoft Windows XP Professional
3 Intel Core2 Duo CPU E4600 2.40GHz ‖ RAM 2012 MiB ‖ ASUS INC. P5Q - � P5Q
4 nVidia G94 [GeForce 9600 GT] [10de:0622] {nvidia}
5 eth0: Qualcomm Atheros AR8121/AR8113/AR8114 Gigabit or Fast Ethernet [1969:1026] (rev b0) ⋮ wlan0: 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter
Άβαταρ μέλους
giannosfor
punkTUX
punkTUX
 
Δημοσιεύσεις: 297
Εγγραφή: 24 Απρ 2011, 20:24
Τοποθεσία: Ηράκλειο
Εκτύπωση

Re: Απορίες σε java

Δημοσίευσηαπό clepto » 01 Απρ 2012, 22:03

έχεις το βιβλίο εσύ;
στην σελίδα 135 στο First Drawing Application θέλω να βάλω τα δυο κομμάτια κώδικα σε αρχεία για να τα δοκιμάσω...
αλλά δεν ξέρω πως πρέπει να είναι η δομή στα πακέτα γιατί μου βγάζει σφάλμα, κοίτα την εικόνα
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι