package p19_napisy;

import java.util.ArrayList;
import java.util.List;

public class Parametry {

	// String jest niemutowalny / immutable.
	// Żadna operacja nie zmienia obiektu String w środku.
	static void metoda(String s) {
		System.out.println(s);
		s += " ma kota";
		// przy takim zapisie do zmiennej s (lokalna wewnątrz metody) wpisywany jest adres nowego obiektu String
		// nie jest to zmiana obiektu String "w środku", ani nie wpływa to na zmienną txt w main
		// s = s + " ma kota";
		// s = new String(s + " ma kota");
		System.out.println(s);
	}
	
	static void builder(StringBuilder sb) {
		System.out.println(sb);
		sb.append(" ma psa");
		// zmiana obiektu "w środku"
		System.out.println(sb);
	}
	
	static void zmienListe(List<String> lista) {
		System.out.println(lista);
		lista.remove("Ala");
		lista.add("Zuzanna");
		System.out.println(lista);
	}
	
	public static void main(String[] args) {
		String txt = "Ala";
		metoda(txt);
		System.out.println(txt);
		System.out.println();
		
		StringBuilder sb = new StringBuilder("Ola");
		builder(sb);
		System.out.println(sb);
		System.out.println();
		
		
		List<String> imiona = new ArrayList<>();
		imiona.addAll(List.of("Adam", "Ala", "Basia", "Marek"));
		System.out.println(imiona);
		zmienListe(imiona);
		System.out.println(imiona);
	}

}
