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

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

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

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

Δημοσίευσηαπό Star_Light » 19 Ιαν 2012, 18:26

giannosfor έγραψε:Οκ εγώ θα διαφωνήσω αλλά δε τα ξέρω και όλα.
Καλό είναι να τα ξεχωρίζεις,και να ξέρεις και τι είναι το κάθε τι,δεν είναι ταυτόσημα.
Method Overloading είναι αυτό που σου είπα.


Ναι οκ . Απλα προς το παρον... και χωρις να έχω εμβαθυνει
σου λεω οτι μπορω τον πολυμορφισμο να τον θεωρησω και ετσι.
Εναν τυπο του.... ετσι το βρηκα πριν λιγο καπου γραμμενο δηλαδη... σε ενα tutorial
τωρα αν το εχουν αυτοι λαθος τι να σου πω... προβλημα τους :D
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

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

Δημοσίευσηαπό Star_Light » 19 Ιαν 2012, 18:32

Δηλαδη οταν καλω την super() στο προηγουμενο παραδειγμα που ειδαμε
αυτη ξεκινα απευθειας απο τον 2ο constructor της υπερκλασης λογω ορισματος
και ετσι ας πουμε γινεται override στην μεταβλητή ας πουμε value1?
που υπηρχε στον 1ο constructor examples() που ομως τελικα δεν κλήθηκε.
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

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

Δημοσίευσηαπό Star_Light » 19 Ιαν 2012, 18:34

βασικα ναι αυτο ακριβως γινεται οπως μυριζομαι και πιο πανω..... τελικα κλαεσα την super() χωρις παραμετρους

Κώδικας: Επιλογή όλων

class examples{
int value1;
int value2;
int value6;
examples(){
value1 = 1;
value2 = 2;
System.out.println("Inside 1st Parent Constructor");
}
examples(int a , int b){
value1 = a;
value6 = b;
System.out.println("Inside 2nd Parent Constructor");
}
public void display(){
System.out.println("Value1 === "+value1);
System.out.println("Value2 === "+value2);
}
public static void main(String args[]){
DemoChild d1 = new DemoChild();
d1.display();
}
}
class DemoChild extends examples{
int value3;
int value4;
DemoChild(){
super();
value3 = 3;
value4 = 4;
System.out.println("Inside the Constructor of Child");
}
public void display(){
System.out.println("Value1 === "+value1);
System.out.println("Value2 === "+value6);
System.out.println("Value3 === "+value3);
System.out.println("Value4 === "+value4);
}
}


Και τελικα η έξοδος ειναι :

Κώδικας: Επιλογή όλων

Inside 1st Parent Constructor
Inside the Constructor of Child
Value1 === 1
Value2 === 0
Value3 === 3
Value4 === 4



Γινεται override. To καταλαβα με επιτυχια :D
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

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

Δημοσίευσηαπό giannosfor » 19 Ιαν 2012, 18:49

Αυτό είναι ένα άλλο παράδειγμα χρήσης του this.

Κώδικας: Επιλογή όλων
public class Examples2
{
private String name,surname;

public Examples2() {
this("John","Doe");
}

public Examples2( String nm , String srnm ) {
name = nm;
surname = srnm;
}

public String getName() {
return name;
}

public String getSurname() {
return surname;
}

public String toString() {
return getName() + " " + getSurname();
}

public static void main(String args[])
{
Examples2 costum = new Examples2("Giwrgos","Nikou");
Examples2 none = new Examples2();

System.out.println(costum);
System.out.println(none);
}
}

Ρίξτου μία ματιά θα σε βοηθήσει.
Τελευταία επεξεργασία από giannosfor και 21 Ιαν 2012, 21:00, έχει επεξεργασθεί 3 φορά/ες συνολικά
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 » 19 Ιαν 2012, 19:17

Και επειδή είσαι γατάκι αλλά πρέπει να γίνεις γατόπαρδος
ένα παράδειγμα με πολυμορφισμό.

Κώδικας: Επιλογή όλων

public class Animal {
private String species;

public Animal(String sp) {
species = sp;
}

public String getSpecies() {
return species;
}
}


Κώδικας: Επιλογή όλων

public class Cat extends Animal {

private String color;

public Cat( String clr ) {
super("Cat");
color = clr;
}

public String getColor() {
return color;
}
}


Κώδικας: Επιλογή όλων

public class Dog extends Animal
{
private String breed;

public Dog(String bd) {
super("Dog");
breed = bd;
}

public String getBreed() {
return breed;
}
}


Κώδικας: Επιλογή όλων

public class Main {
public static void main(String args[]) {
Animal []animals = new Animal[3];

animals[0] = new Dog("Canis");
animals[1] = new Cat("White");
animals[2] = new Animal("Gatopardos");

for (int i = 0; i < animals.length; i++) {
System.out.printf("My %dst animal is %s\n", i +1, animals[i].getSpecies());
}
}
}
Τελευταία επεξεργασία από giannosfor και 19 Ιαν 2012, 21:55, έχει επεξεργασθεί 2 φορά/ες συνολικά
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 » 19 Ιαν 2012, 20:07

Star_Light έγραψε:Εναν τυπο του.... ετσι το βρηκα πριν λιγο καπου γραμμενο δηλαδη... σε ενα tutorial
τωρα αν το εχουν αυτοι λαθος τι να σου πω... προβλημα τους :D

Το πιο πιθανό είναι να μη το διάβασες καλά.

Star_Light έγραψε:Δηλαδη οταν καλω την super() στο προηγουμενο παραδειγμα που ειδαμε
αυτη ξεκινα απευθειας απο τον 2ο constructor της υπερκλασης λογω ορισματος
και ετσι ας πουμε γινεται override στην μεταβλητή ας πουμε value1?
που υπηρχε στον 1ο constructor examples() που ομως τελικα δεν κλήθηκε.

Πιο μπερδεμένα δε μπορούσε να τα πει κανείς.

Star_Light έγραψε:βασικα ναι αυτο ακριβως γινεται οπως μυριζομαι και πιο πανω..... τελικα κλαεσα την super() χωρις παραμετρους

Δε χρειάζεται να καλέσεις την super() γιατί καλείται μόνη της.

Star_Light έγραψε:Γινεται override. To καταλαβα με επιτυχια :D

Εκχώρηση γίνεται της μεταβλητής.

Προσπάθησε να καταλάβεις τι είναι constructor.
Και γιατί γίνεται method overloading.
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

Δημοσίευσηαπό Star_Light » 19 Ιαν 2012, 20:15

constructor ειναι αυτος που θα δημιουργησει το αντικειμενο οταν θα καλεσεις την κλαση απο την main
δημιουργωντας εκει ενα αντικειμενο με την new. Δεν εχω ψαξει ακομη το γιατι κανουμε υπερφορτωση :/
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

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

Δημοσίευσηαπό giannosfor » 19 Ιαν 2012, 20:30

Star_Light έγραψε:constructor ειναι αυτος που θα δημιουργησει το αντικειμενο οταν θα καλεσεις την κλαση απο την main
δημιουργωντας εκει ενα αντικειμενο με την new. Δεν εχω ψαξει ακομη το γιατι κανουμε υπερφορτωση :/

Τα λες πολύ μπερδεμένα.Τι είναι τελικά ο constructor αυτός δημιουργεί το αντικείμενο ή εσύ με την new ?
Είναι αφηρημένη έννοια ?

giannosfor έγραψε:Method Overloading είναι που έχεις δύο μεθόδους με το ίδιο όνομα με διαφορετικά ορίσματα.

Σε βοήθησα ?
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

Δημοσίευσηαπό Star_Light » 19 Ιαν 2012, 21:34

giannosfor έγραψε:
Τα λες πολύ μπερδεμένα.Τι είναι τελικά ο constructor αυτός δημιουργεί το αντικείμενο ή εσύ με την new ?
Είναι αφηρημένη έννοια ?


Ο constructor ειναι αυτος που δημιουργει το αντικειμενο οταν καλεις την κλάση.
Εσυ πρεπει να δημιουργησεις ενα αντικειμενο απο την main ωστε να μπορεις
να εχεις προσβαση στην κλάση. Σωστα?

giannosfor έγραψε:
Σε βοήθησα ?


Θα τα δω πιο μετα τους κωδικες σου και θα σου πω.
Ευχαριστω παντως ;)
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

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

Δημοσίευσηαπό giannosfor » 19 Ιαν 2012, 22:07

Star_Light έγραψε:Ο constructor ειναι αυτος που δημιουργει το αντικειμενο οταν καλεις την κλάση.

Δεν είναι σωστό.Ο constructor δεν είναι εργαλείο.

Star_Light έγραψε:Εσυ πρεπει να δημιουργησεις ενα αντικειμενο απο την main ωστε να μπορεις
να εχεις προσβαση στην κλάση.

Μόνο απ'τη main μπορείς να δημιουργήσεις ένα αντικείμενο ?
Πώς καλείς την κλάση ή πώς έχεις πρόσβαση σε μία κλάση ?

Σου κάνω ερωτήσεις αν μπορείς να απαντήσεις τότε είσαι σε καλό δρόμο.

Το αν σε βοήθησα πήγαινε στη εξήγηση που έκανα για το τι είναι το method overloading,
το οποίο χρησιμοποίησες στο παράδειγμα σου και έχει σχέση και με το 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
Τοποθεσία: Ηράκλειο
Εκτύπωση

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

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