Wykorzystaj konwersję rozszerzającą i zawężającą. Wypróbuj zamiany różnych typów prostych między sobą. Szczególną uwagę zwróć na rzutowanie char na int. Jak myślisz, co w ten sposób otrzymasz?
Rozwiązanie poniżej ↓ Nie zaglądaj przed samodzielną próbą rozwiązania!
W tym przypadku Twoje zadanie polegało na zabawie różnymi typami danych przy wykorzystaniu rzutowania i konwersji. Typy liczbowe są proste i były omawiane na lekcji. Jednak spróbujmy bezpośrednio przypisać zmienną typu char, do innej zmiennej typu int.
class ConversionsTask {
public static void main(String[] args){
char a = 'a';
int b = a;
char c = 101;
System.out.println(a + " " + b + " " + c);
}
}
Mamy tutaj do czynienia z kilkoma dziwnymi rzeczami. W wyniku działania programu powinniśmy otrzymać na konsoli wydruk w postaci "a 97 e". Można sobie pomyśleć, jakim cudem?
Zmiennej a przypisujemy znak 'a', więc jej wyświetlanie jest oczywiste.
Następnie do zmiennej typu całkowitoliczbowego przypisujemy zmienną a, a na ekranie pojawia się liczba 97. Jak to się stało?Jest to po prostu kod znaku 'a' w tabeli ASCII.
Z tym samym zjawiskiem, tylko w odwrotną stronę mamy do czynienia w przypadku zmiennej c. Jej z kolei przypisujemy kod 101, który odpowiada znakowi litery 'e'. Można to zrozumieć jako:
char c = (char)101;
Komentarze do artykułu
Wyłączyliśmy możliwość dodawania komentarzy. Poniżej znajdziesz archiwalne wpisy z czasów gdy strona była jeszcze hobbystycznym blogiem. Zapraszamy natomiast do zadawnia pytań i dyskusji na naszej grupe na facebooku.
A z typem String to też działa (String --> Integer/Integer --> String)?
Nie, ponieważ String jest tablicą znaków. Można co najwyżej użyć dodatkowych metod do konwertowania String->int i odwrotnie.
czym się różni Integer od int ?
Integer to klasa a int to typ prymitywny.