Konstruktor z jine tridy – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Konstruktor z jine tridy – Java – Fórum – Programujte.comKonstruktor z jine tridy – Java – Fórum – Programujte.com

 

Dagi0
Newbie
5. 7. 2008   #1
-
0
-

Hi, vytvorila jsem nasledujici kod:
1. trida (zakladni, ta by mela byt v poradku):

public class Person {
private String name ;
private String lastname ;
public Person ( String name , String lastname ) {
this.name = name ;
this.lastname = lastname ;
}
public final String getName () {
return lastname + ", " + name ;
}
public String toString () {
return getName ();
}
}

2.trida: (odvozena -> ta ma byt rozsirena o adresu, o konstruktor (ktery obsahuje jmeno,prijmeni,adresu) a o vystup na konsoli - jmeno, prijmeni, adresu):

public class PersonAdresa {

private String adresa;
private String name;
private String lastname;
public PersonAdresa (String name, String lastname, String adresa ) {
// ????? udaje name a lastname se tady opakuji, to je zbytecne, ale nevim jak ty dve tridy spravne propojit
/ ?????
this.name = name;
this.firstname = firstname;
this.adresa = adresa ;
}
public final String getAdresa () {
return adresa ;
}
public String toString () {
return getAdresa ();
}
public void setAdresa(String adresa){
this.adresa = adresa;
}
public static void main (String[] args){
PersonAdresa josef = new PersonAdresa ("Josef","Hes","Most");
PersonAdresa marie = new PersonAdresa ("Marie","Soukupova","Praha");

System.out.println (josef);

}
}

Predem dekuji za rady.
Dagi

Nahlásit jako SPAM
IP: 90.135.37.–
darthdeus0
Stálý člen
5. 7. 2008   #2
-
0
-

Tak po chvilce trápení mi to nakonec funguje takhle :)




public class Person {

protected String name;
protected String lastname;

public Person(String name, String lastname) {
this.name = name;
this.lastname = lastname;
}

public final String getName() {
return lastname + ", " + name;
}

@Override
public String toString() {
return getName();
}
}




public class PersonAdresa extends Person {

private String adresa;

public PersonAdresa(String name, String lastname, String adresa) {
super(name, lastname);
this.name = name;
this.lastname = lastname;
this.adresa = adresa;
}

public final String getAdresa() {
return adresa;
}

@Override
public String toString() {
return getAdresa();
}

public void setAdresa(String adresa) {
this.adresa = adresa;
}
}

Nahlásit jako SPAM
IP: 85.70.184.–
(1..100).inject(&:+) komu se to nelíbí, ať mi klobouk políbí :P
Dagi0
Newbie
5. 7. 2008   #3
-
0
-

To darthdeus : Ja dostanu na konsoli pouze adresu. Dedi se pomoci "super" ze zakladni tridy pouze konstruktor anebo take metody set/get?

Nahlásit jako SPAM
IP: 90.135.37.–
ghibulo0
Newbie
5. 7. 2008   #4
-
0
-

Já bych jednoduše vytvořil jen class Adresa, bez položek těch jmen a do třídy Person, bych pod ta jména napsal:
private Adresa jeho;


Nahlásit jako SPAM
IP: 90.177.104.–
Wideman
~ Anonymní uživatel
7 příspěvků
5. 7. 2008   #5
-
0
-

Podle mě u zděděné třídy už nemusíš v konstruktoru znovu nastavovat name a lastname, to se provede v konstruktoru rodiče zavoláním super (name, lastanme).

public PersonAdresa(String name, String lastname, String adresa) { 

super(name, lastname);
this.adresa = adresa;
}

Nahlásit jako SPAM
IP: 213.29.196.–
darthdeus0
Stálý člen
6. 7. 2008   #6
-
0
-

To Wideman : Potvrzuji že to takhle fakt funguje ... nějak mě nenapadlo po sobě kontrolovat konstruktor co mi vygenerovalo IDE.

To Dagi : Pomocí super můžeš zavolat jakoukoliv funkci rodiče (veřejnou nebo chráněnou).

Nahlásit jako SPAM
IP: 85.70.184.–
(1..100).inject(&:+) komu se to nelíbí, ať mi klobouk políbí :P
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 31 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý