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

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

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

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

Δημοσίευσηαπό pc_magas » 18 Ιαν 2012, 21:39

Βγάλ'την από τα σχόλια.... όπως και να έχει πρέπει να καλέσεις τον κονστράκτορα την υπερκλάσης
My blog|Κυπριακή Κοινότητα Ελευθέρου Λογισμικού Λογισμικού ανοικτού Κώδικα
Γνώσεις Linux:Ποτέ αρκετές|Προγραμματισμός: Php, javascript, nodejs, python, bash |Aγγλικά:Καλά
Οι υπολογιστές μου:
Spoiler: show
Ubuntu 16.04 64 bit σεIntel(R) Pentium(R) CPU G4400 @ 3.30GHz, 16Gib Ram, 500Gib Hard Disk, και κάρτα γραφικών Nvidia Geforce GT610
Lubuntu 14.04 σε Dell Inspiron mini 10(1010) intel Atom Z500 1Gb ram και gma500 (εδώθη σε άλλον)
Kubuntu 16.04 Lenovo G70 Intel i5 Nvidia Grapgics Card, Intel Graphics card (έχει 2) με Nouveau, 16Gb RAM, 126GB SSD Σκληρό Δίσκο
Άβαταρ μέλους
pc_magas
powerTUX
powerTUX
 
Δημοσιεύσεις: 2598
Εγγραφή: 12 Απρ 2009, 18:55
Τοποθεσία: Αχαρναί Αττικής
Launchpad: pc_magas
IRC: pc_magas
Εκτύπωση

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

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

Star_Light έγραψε:Owing to constructor chaining , when object of child class DemoChild is created , constructor Demo() of the parent class is invoked first and later constructor DemoChild() of the child is created.

Λογικά άλλαξες το όνομα της κλάσης από Demo σε examples.

Κώδικας: Επιλογή όλων
public class examples
{
int value1 ;
int value2 ;

examples()
{
value1 = 1;
value2 = 2;
System.out.println("Inside 1st Parent Constructor");
}

examples( int a )
{
value1 = a;
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(5);
value3 = 3;
value4 = 4;
System.out.println("Inside the Constructor of Child");
}

@Override
public void display()
{
System.out.println("Value1 === "+value1);
System.out.println("Value2 === "+value2);
System.out.println("Value1 === "+value3);
System.out.println("Value2 === "+value4);
}
}


Σε αυτό το παράδειγμα φαίνεται η κληρονομικότητα και το method overloading.
Φυσικά πρέπει να ξέρεις και τι είναι constructor.

Όταν τρέχεις την super που αν την χρησιμοποιήσεις πρέπει να είναι το πρώτο πράγμα καλεί τον constructor της upperclass .Εδώ καλεί τον constructor με το όρισμα διαφορετικά καλείτε αυτόματα ο πρώτος 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

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

Δεν ειναι μονο overloading αυτο ειναι και πολυμορφισμός!!! Οριστε που φώναζες γιάννε φορ
το πιάσαμε και αυτο το concept. Παρολαυτα μην παρεξηγηθειτε αλλα στην ερωτηση μου δεν απανταει κανενας
εκτος και αν εγω δεν καταλαβαινω οτι απαντατε... δωστε ενα διαγραμμα ροης του κωδικα να συνεννοηθουμε ρε παιδια !

Εdit: οταν καλείται ο constructor απο την super με το ορισμα που λες

αυτο εδω ->

Κώδικας: Επιλογή όλων
class examples{
int value1;
int value2;
examples(){
value1 = 1;
value2 = 2;
System.out.println("Inside 1st Parent Constructor");
}


δεν εκτελειται καθολου αν δεν κανω λαθος? για αυτο η value2 ειναι χωρις τιμη και συνεπως παιρνει 0?
Γνώσεις ⇛ 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, 17:01

Star_Light έγραψε:δεν εκτελειται καθολου αν δεν κανω λαθος? για αυτο η value2 ειναι χωρις τιμη και συνεπως παιρνει 0?

Ακριβώς.
Star_Light έγραψε:δωστε ενα διαγραμμα ροης

Τι διάγραμμα ροής θέλεις ?
Star_Light έγραψε:Δεν ειναι μονο 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, 17:07

giannosfor έγραψε:
Τι διάγραμμα ροής θέλεις ?


Πχ ξεκινάει το προγραμμα... φορτωνει η main μετα καλειται η display ο ελεγχος περναει στην κλάση ταδε κτλπ κτλπ....

giannosfor έγραψε:
Για να σε δω,που είναι ο πολυμορφισμός ? Γατάκι


Ο πολυμορφισμός ειναι μεσα στην JVM και αναπαύεται!!!! Ρε συ η υπερφορτωση που λες.... δεν ειναι ο πολυμορφισμος αλλα με δευτερη ονομασια? ετσι το πηρε καπου χθες το ματι μου!!!!!
Γνώσεις ⇛ 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, 17:13

Και ενα δικο μου παραδειγματάκι για την χρήση του keyword this

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

public class examples2
{
int x;
int y;
String name;
String surname;

examples2(int x , int y)
{
this.x=x;
this.y=y;
}
examples2(String name , String surname)
{
this.name=name;
this.surname=surname;
}

public static void main(String args[])
{

examples2 number = new examples2(2,4);
examples2 name = new examples2("Giwrgos","Nikou");

System.out.println(number.y);
System.out.println(number.x);
System.out.println(name.name);
System.out.println(name.surname);

}
}
Γνώσεις ⇛ 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, 17:25

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

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

Star_Light έγραψε:Δεν ειναι μονο overloading αυτο ειναι και πολυμορφισμός!!!
Star_Light έγραψε:Ρε συ η υπερφορτωση που λες.... δεν ειναι ο πολυμορφισμος αλλα με δευτερη ονομασια? ετσι το πηρε καπου χθες το ματι μου!!!!!

Γατάκι
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, 18:06

H υπερφόρτωση ειναι ένας τύπος πολυμορφισμού. Δεν το ανέφερα τυχαία. ;)
Γνώσεις ⇛ 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:16

Star_Light έγραψε:H υπερφόρτωση ειναι ένας τύπος πολυμορφισμού. Δεν το ανέφερα τυχαία
Ναι αλλά τι είναι πολυμορφισμός δεν ξέρεις.

Οκ εγώ θα διαφωνήσω αλλά δε τα ξέρω και όλα.
Καλό είναι να τα ξεχωρίζεις,και να ξέρεις και τι είναι το κάθε τι,δεν είναι ταυτόσημα.
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
Τοποθεσία: Ηράκλειο
Εκτύπωση

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

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