Pretezovani staticke metody – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pretezovani staticke metody – Java – Fórum – Programujte.comPretezovani staticke metody – Java – Fórum – Programujte.com

 

Jenda
~ Anonymní uživatel
18 příspěvků
14. 10. 2012   #1
-
0
-

Dobrý den, nevím si rady s touto situací:

Mám vytvořit třídu se statickými přetíženými metodami printMeasurement:

První metoda vezme libovolný měřitelný objekt (tj. libovolný objekt implementující rozhraní Measurable) a
a) na std. výstup vypíše informace o objektu, viz metoda toString(),
b) na další řádek vypíše "Perimeter: <n>", kde <n> je obvod.
Druhá metoda vezme libovolný celistvý objekt (tj. libovolný objekt implementující rozhraní Solid) a
a) na std. výstup vypíše informace o objektu, viz metoda toString(),
b) na další řádek vypíše "Perimeter: <n>", kde <n> je obvod objektu,
c) na další řádek vypíše "Area: <m>", kde <m> je obsah objektu.
Mám se vyhnout opakování kódu tím, že druhá varianta metody bude volat tu první.

Mam zatim toto, ale proste nevim jak mam volat ty metody, zkousel jsem to ruzne:
public class Gauger
{
public static void printMeasurement(Measurable mes) {
mes.toString(); //toString() je v jine tride tehoz balicku
System.out.println("Perimeter: " + mes.getLength()); // getLength() taktz...soucast rozhrani Measurable
}
public static void printMeasurement(Solid sol) {
sol.printMeasurement(new Measurable()); //jeden z mych pokusu
System.out.println("Area: " + sol.getArea()); // getArea() je v jine tride tehoz balicku..soucast rozhrani Solid
}
}
Děkuji za každou radu

Nahlásit jako SPAM
IP: 85.135.10.–
sleepy0
Stálý člen
14. 10. 2012   #2
-
0
-

Ak solid implementuje rozhranie Messurable tak potom ti staci:

public static void printMeasurement(Measurable mes){
	System.out.println(mes);
	System.out.println("Perimeter: "+mes.getLength());
}

public static void printMeasurement(Solid sol){
	printMeasurement((Measurable) sol);
	System.out.println("Area: "+sol.getArea());
}
Nahlásit jako SPAM
IP: 158.195.195.–
ingiraxo+15
Grafoman
14. 10. 2012   #3
-
0
-

přetěžování funkcí znamená, že funkce bude mít buď jiný typy parametrů nebo jinej počet parametrů... nevztahuje se to ale na návratovej typ!

a statický funkce voláš bez vytváření instance třídy - přes třídu 

Measurable mes = new Measurable(...);

Gauger.printMeasurement(mes);

a statický funkce by správně měli začínat prvním písmenem velkým

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
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, 9 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ý