Baza Wiedzy

Konwersje rozszerzające i zawężające

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;

Najlepszy newsletter o Javie w Polsce

Czy chcesz otrzymywać nowości ze świata Javy oraz przykładowe pytania rekrutacyjne? Zapisz się na newsletter i bądź na bieżąco! Otrzymasz także ekskluzywne materiały oraz informacje o nowych kursach i promocjach.

Traktujemy Twoją prywatność poważnie. Nikomu nie udostępniamy Twojego maila no i zawsze możesz się wypisać.

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.

Uczeń JavaStart

A z typem String to też działa (String --> Integer/Integer --> String)?

Sławek Ludwiczak

Nie, ponieważ String jest tablicą znaków. Można co najwyżej użyć dodatkowych metod do konwertowania String->int i odwrotnie.

int a = Integer.parseInt("123");
Integer b = Integer.parseInt("123"); //tutaj zachodzi dodatkowo autoboxing int->Integer
lub
String s = Integer.toString(123);

bartek

czym się różni Integer od int ?

Lolo

Integer to klasa a int to typ prymitywny.

Kurs Java WrocławJavaStart na Youtube