Commit be913279 by Patryk Czarnik

metody

parent aebbd393
package p06_klasy_i_metody_wprowadzenie;
public class Klasa {
// w klasie można definiować:
// * pola (field), inaczej: zmienne instancyjne (instance variable), atrybuty
// każdy obiekt tej klasy będzie zawierał takie dane
String imie;
int liczba;
// * zmienne statyczne / zmienne klasowe
static int statyczna = 100;
// metoda, czyli fragment programu, któremu nadajemy nazwę, może mieć parametry, może dawać wynik
// metoda bez słowa "static" to metoda "instancyjna"
// można ją wywołać poprzez obiekt, ma dostęp do pól obiektu
void metodaZwykla() {
System.out.println("Jestem zwykłą metodą i widzę zmienne");
System.out.println("imie = " + imie + ", liczba = " + liczba + ", statyczna = " + statyczna);
}
// metoda statyczna jest czymś takim, jak funkcja w innych językach programowania
// ma dostęp do zmiennych statycznych, ale nie do instancyjncyh, bo "nie wiemy na jakim obiekcie mamy działać"
static void metodaStatyczna() {
System.out.println("Jestem metodą statyczną i widzę zmienne tylko statyczne");
System.out.println(statyczna++);
// System.out.println(imie);
// System.out.println(this.imie);
}
}
package p06_klasy_i_metody_wprowadzenie;
public class Przyklad {
public static void main(String[] args) {
// Nie można odwołać się do pól instancyjnych poprzez nazwę klasy
// System.out.println(Klasa.imie);
// Można do zmiennej statycznej:
System.out.println(Klasa.statyczna++);
// Tworzenie obiektu (aka "instancji"):
Klasa obiekt = new Klasa();
// W obiekcie znajdują się pola. Początkowe wartości: null, 0, false
System.out.println(obiekt.imie + " " + obiekt.liczba);
obiekt.imie = "Adam";
obiekt.liczba = 30;
System.out.println(obiekt.imie + " " + obiekt.liczba);
// Do zmienne jstatycznej można dostać się poprzez obiekt, ale jest to niezalecany zapis
System.out.println(obiekt.statyczna);
System.out.println();
obiekt.metodaZwykla();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment