Commit 5d15ac0d by Patryk Czarnik

Uzupełnienia do tematu zmiennych

parent a60bbf61
package p01_podstawy; package p01_podstawy;
public class Zmienne { public class A_Zmienne {
public static void main(String[] args) { public static void main(String[] args) {
// W Javie nie wolno używać zmiennych, które nie zostały zadeklarowane. // W Javie nie wolno używać zmiennych, które nie zostały zadeklarowane.
// x = 100; // x = 100;
...@@ -17,6 +17,7 @@ public class Zmienne { ...@@ -17,6 +17,7 @@ public class Zmienne {
System.out.println(x); System.out.println(x);
// nie mogę wpisać wartości innego typu // nie mogę wpisać wartości innego typu
// x = "Ala ma kota"; // x = "Ala ma kota";
// x = "123";
// Najczęściej początkową wartość wprowadza się w momencie deklaracji. // Najczęściej początkową wartość wprowadza się w momencie deklaracji.
int y = 1000 - x; int y = 1000 - x;
......
...@@ -4,7 +4,7 @@ package p01_podstawy; ...@@ -4,7 +4,7 @@ package p01_podstawy;
Gdy uruchamiamy jakiś program w systemowym wierszu poleceń, Gdy uruchamiamy jakiś program w systemowym wierszu poleceń,
możemy po jego nazwie podać dowolne napisy – argumenty programu. możemy po jego nazwie podać dowolne napisy – argumenty programu.
java pcz.p01_interakcja.argumenty.Argumenty Jeden Dwa "Ala ma kota" Cztery java p01_podstawy.Argumenty Jeden Dwa "Ala ma kota" Cztery
*/ */
public class Argumenty { public class Argumenty {
......
package p01_podstawy;
//NK int globalna;
public class B_RodzajeZmiennych {
// zmienna statyczna - istnieje jeden egzemplarz w pamięci
static int statyczna = 10;
// zmienna instancyjna (inaczej: pole, atrybut) należy do obiektu
// Każdy obiekt tej klasy, w której jesteśmy, będzie posiadał taką zmienną
int instancyjna = 20;
public static void main(String[] args) {
// zmienna lokalna, czyli deklarowana w obrębie metody
int lokalna = 30;
metodaStatyczna(40);
// metody instancyjnej nie da się wywołać w kontekście statycznym (np. w main)
// metodaInstancyjna(50);
// Trzeba utworzyć obiekt i wywołać tę metodę na obiekcie.
// Tworzę obiekt, czyli "instancję"
B_RodzajeZmiennych obiekt = new B_RodzajeZmiennych();
obiekt.metodaInstancyjna(50);
System.out.println(statyczna);
System.out.println(obiekt.instancyjna);
B_RodzajeZmiennych innyObiekt = new B_RodzajeZmiennych();
innyObiekt.instancyjna = 123;
innyObiekt.metodaInstancyjna(33);
}
static void metodaStatyczna(int parametr) {
int lokalna = 60;
System.out.println("metodaStatyczna:");
System.out.println("statyczna: " + statyczna);
// m "kontekście statycznym", czyli w metodzie statycznej nie ma dostępu do zmiennych instancyjnych,
// bo "nie wiemy w jakim obiekcie"
//NK System.out.println("instancyjna: " + instancyjna);
System.out.println("lokalna: " + lokalna);
System.out.println("parametr: " + parametr);
System.out.println();
}
void metodaInstancyjna(int parametr) {
int lokalna = 70;
System.out.println("metodaInstancyjna:");
System.out.println("statyczna: " + statyczna);
System.out.println("instancyjna: " + instancyjna);
System.out.println("lokalna: " + lokalna);
System.out.println("parametr: " + parametr);
System.out.println();
}
}
package p01_podstawy;
public class BlokiTekstowe {
public static void main(String[] args) {
String napis = """
Ala ma kota.
Ola ma psa.
Ela ma "chomika", \ttak tak.
""";
System.out.println(napis.length());
System.out.println(napis);
}
}
package p01_podstawy;
import java.time.LocalTime;
public class SlowoVar {
public static void main(String[] args) {
// Przykład kompiluje się od Javy 10.
// Deklaracja zmiennej lokalnej bez podawania typu.
// Kompilator domyśla się typu na podstawie tego, co wpisujemy
var y = 100;
System.out.println(y);
y = 101; // OK
System.out.println(y);
// Zmienna ma jednak typ int i nie wolno wpisać wartości niezgodnego typu
// y = 3.14; // źle
// y = "Ala ma kota"; // źle
// System.out.println(y);
// Konstrukcja dostępna tylko dla zmiennych lokalnych, gdy początkową wartość wpisuje się od razu w miejscu deklaracji.
// var z;
// var nie jest słowem kluczowym i w niekolidujących miejscach można go używać jako nazwy:
String var = "tajemnicza zmienna";
System.out.println(var);
// BTW, odpowiednikiem takich zmiennych jak w Pythonie i PHP, na które można wpisać "wszystko",
// w Javie jest raczej zmienna typu Object.
Object o;
o = "Ala ma kota";
System.out.println(o.getClass().getSimpleName() + " : " + o);
o = 100 + 15;
System.out.println(o.getClass().getSimpleName() + " : " + o);
o = LocalTime.now();
System.out.println(o.getClass().getSimpleName() + " : " + o);
}
}
package p02_scanner; package p02_scanner;
import java.util.Locale;
import java.util.Scanner; import java.util.Scanner;
public class KlasaScanner { public class KlasaScanner {
...@@ -10,6 +11,7 @@ public class KlasaScanner { ...@@ -10,6 +11,7 @@ public class KlasaScanner {
// Tworzymy nowy obiekt klasy Scanner i wpisujemy do zmiennej typu Scanner // Tworzymy nowy obiekt klasy Scanner i wpisujemy do zmiennej typu Scanner
// nazwą tej zmiennej jest scanner, a ten skaner czyta dane ze standardowego wejścia. // nazwą tej zmiennej jest scanner, a ten skaner czyta dane ze standardowego wejścia.
Scanner scanner = new Scanner(System.in); Scanner scanner = new Scanner(System.in);
// scanner.useLocale(Locale.US);
String linia = scanner.nextLine(); String linia = scanner.nextLine();
System.out.println("Napisałeś " + linia); System.out.println("Napisałeś " + linia);
System.out.print("Podaj liczbę całkowitą: "); System.out.print("Podaj liczbę całkowitą: ");
......
...@@ -30,6 +30,11 @@ public class SpojnikiLogiczne { ...@@ -30,6 +30,11 @@ public class SpojnikiLogiczne {
} else { } else {
System.out.println("jakaś liczba jest <=50"); System.out.println("jakaś liczba jest <=50");
} }
// String napis = null;
String napis = "ala";
if(napis != null && napis.length() > 0) {
System.out.println("Napis nie jest pusty");
}
// || - logiczne "lub", "or", alternatywa // || - logiczne "lub", "or", alternatywa
if(x > 50 || y > 50) { if(x > 50 || y > 50) {
......
...@@ -25,7 +25,7 @@ public class TeoriaIf { ...@@ -25,7 +25,7 @@ public class TeoriaIf {
System.out.println("x jest parzysty"); System.out.println("x jest parzysty");
else else
System.out.println("x jest nieparzysty"); System.out.println("x jest nieparzysty");
// można pisać if bez towarzyszącego else // można pisać if bez towarzyszącego else
if(x < 10) { if(x < 10) {
System.out.println("x jest jednocyfrowy"); System.out.println("x jest jednocyfrowy");
...@@ -61,6 +61,10 @@ public class TeoriaIf { ...@@ -61,6 +61,10 @@ public class TeoriaIf {
System.out.println("puste"); System.out.println("puste");
} }
if("Ala".equals(str)) {
System.out.println("napis to Ala");
}
// może też być bezpośrednie użycie zmiennej typu boolean // może też być bezpośrednie użycie zmiennej typu boolean
boolean logika = x > 10 && y % 3 == 0; boolean logika = x > 10 && y % 3 == 0;
if(logika) { if(logika) {
......
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