You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.4 KiB
Markdown
36 lines
1.4 KiB
Markdown
# Třídy a Objekty
|
|
|
|
Třídy v programování popisují nějaký "typ" určité hodnoty.
|
|
Například hodnota `1` je typu `int`, hodnota `'ahoj'` je typu `str` - typy jsou třídy a hodnoty objekty.
|
|
Třídy popisují jen obecné vlastnosti a činnosti (funkce, u tříd se jim říká metody).
|
|
|
|
Objekty jsou instance třídy, které mají nějaké konktrétní hodnoty.
|
|
|
|
Takhle vypadá definice třídy v pythonu:
|
|
```python
|
|
class Clovek: # tridy se nazyvaji s velkym pocatecnim pismenem
|
|
def __init__(self, age, height):
|
|
self.age = age # self.age patri objektu, age je argument metody
|
|
self.height = height
|
|
```
|
|
Metoda `__init__` je tzv. konstruktor, čili je volána vždy když tvoříme objekt.
|
|
`self` je proměnná do které se automaticky přiřadí objekt.
|
|
|
|
Takle vypadá konstrukce objektu třídy člověk:
|
|
```python
|
|
x = Clovek(18, 180)
|
|
```
|
|
Je dobré si všimnout, že při konstrukci jsme dali metodě `__init__` jen dva argumenty, i když v definici bere tři.
|
|
To je proto, že objekt se automaticky přiřadí k proměnné `self` (nebo jakékoli proměnné která bude na začátku).
|
|
Protože `__init__` je konstruktor, tak k self se přiřadí prázdný objekt, kterému potom dáváme nějaké vlastnosti.
|
|
Je to lechce podobný proces jako při práci se slovníky:
|
|
```python
|
|
def init(age, height)
|
|
x = dict()
|
|
x["age"] = age
|
|
x["height"] = height
|
|
|
|
return x
|
|
```
|
|
Až na to, že k datům objektu přistupujeme pomocí tečky (`x.age` místo `x["age"]`).
|