Další informace

Kapitola 3: Definování nových metod


V poslední kapitole jsme napsali program, který pomůže Karlu vylézt jednoduchou římsu:

Příklad: PrvníKarel

I když PrvníKarel program ukazuje, že je možné provést turnRight Při použití pouze Karlových vestavěných příkazů není výsledný program pojmově zřetelný. Ve své mentální koncepci se Karel otočí, když dosáhne vrcholu římsy. Skutečnost, že k tomu musíte použít tři příkazy odbočitVlevo, je nepříjemná. Bylo by mnohem jednodušší, kdybyste mohl jednoduše říct turnRight() a pochopil Karel tento příkaz. Výsledný program by byl nejen kratší a jednodušší psát, ale také by byl mnohem snazší číst.

Definování nových příkazů

Programovací jazyk Karel naštěstí umožňuje definovat nové příkazy jednoduše pomocí nových definic metod. Kdykoliv máte posloupnost Karlových příkazů, která vykonává nějaký užitečný úkol - například otáčení doprava - můžete definovat novou metodu, která provede tuto posloupnost příkazů. Formát pro definování nové metody Karla má stejný význam jako definice run v předchozích příkladech, což je vlastní definice metody. Typická definice metody vypadá takto:

   private void název () {
příkazy, které tvoří tělo metody
   }

V tomto vzoru název představuje název, který jste vybrali pro novou metodu. Chcete-li dokončit definici, vše, co musíte udělat, je poskytnout posloupnost příkazů v řádcích mezi složenými závorkami. Můžete například definovat turnRight jak následuje:

   private void turnRight() {
turnLeft();
turnLeft();
turnLeft();
   }

Podobně můžete definovat nové turnAround tato metoda:

   private void turnAround() {
turnLeft();
turnLeft();
   }

Název nové metody můžete použít stejně jako kterýkoliv z Karlových vestavěných příkazů. Například, jakmile definujete turnRight , můžete nahradit tři příkazy odbočitVlevo v ZintenzivnitKarel program s jedním voláním turnRight metoda. Zde je revidovaná implementace programu, který využívá turnRight :

Existuje samozřejmě jeden zřejmý rozdíl mezi definicemi run a turnRight výše uvedené metody: run metoda je označena jako public na rozdíl od turnRight , která je označena jako private . Rozdíl mezi těmito dvěma označeními spočívá v tom, že veřejné metody mohou být vyvolány mimo program, zatímco soukromé metody nemohou. Metoda run musí být veřejná, protože prostředí Karla musí být schopno vydat příkaz run aby se věci dostali. Obecně je dobré udržet definice soukromé, kdykoli je to možné.

Metoda Kód Bloky

Skupina příkazů mezi dvěma složenými závorkami { } se nazývá kódový blok . Tělo programu je kódový blok, stejně jako tělo metody. Všimněte si, jak jsou všechny obsahy kódu blokovány jednou záložkou. To je důležité stylisticky, protože umožňuje lidem snadno zjistit, jaké řádky kódu jsou v daném bloku.

Můžete definovat tolik metod, kolik chcete. Všechny by měly být napsány jeden po druhém ve vašem programovém kódovém bloku. Metodu nelze definovat uvnitř jiné metody.


Další kapitola