{"id":458,"date":"2018-11-28T08:00:09","date_gmt":"2018-11-28T07:00:09","guid":{"rendered":"https:\/\/freizone.net\/java-einfach-lernen\/?p=458"},"modified":"2020-05-11T19:29:39","modified_gmt":"2020-05-11T17:29:39","slug":"basisklassen-und-casting","status":"publish","type":"post","link":"https:\/\/freizone.net\/java-einfach-lernen\/2018\/11\/28\/basisklassen-und-casting\/","title":{"rendered":"Basisklassen und Casting"},"content":{"rendered":"<p>F\u00fcr alle primitiven Datentypen stellt Java jeweils eine Basisklasse zur Verf\u00fcgung die bequem zur Typumwandlung benutzt werden kann. Dies ist wichtig wenn man zum Beispiel mit einem String der eine Zahl enth\u00e4lt, rechnen m\u00f6chte. Nachfolgend alle Basisklassen der primitiven Datentypen.<\/p>\n<p><strong>String in int umwandeln:<\/strong><br \/>\n<code>String text \"10\"<\/code><br \/>\n<code>Integer.parseInt(text);<\/code><\/p>\n<p><strong>int in String umwandeln:<\/strong><br \/>\n<code>int i = 10;<\/code><br \/>\n<code>Integer.toString(i);<\/code><\/p>\n<p>F\u00fcr die anderen primitiven Datentypen existieren ebenfalls Basisklassen die entsprechend benannt sind: z.B. <code>Double.parseInt(i)<\/code> oder <code>Float.toString(s)<\/code>.<\/p>\n<p>Alle Basisklassen enthalten auch noch eine Methode namens <code>valueOf()<\/code>. Diese Methode tut im Prinzip dasselbe wie z.B. <code>parseInt()<\/code> nur mit dem Unterschied das es eine ganze Basisklasse, also vom Typ Integer zur\u00fcckgibt und man wiederum Zugriff auf deren Methoden hat, was nur selten ben\u00f6tigt wird. Deshalb verwendet man eigentlich immer parse.<\/p>\n<p><strong>Casting<\/strong><\/p>\n<p>Beim Casting wird ein Datentyp in einen anderen kompatiblen Datentyp konvertiert. Kompatible Datentypen sind z.B. Integer und Float, da beide Zahlen enthalten. Nicht kompatibel sind z.B. int und String. Diese k\u00f6nnen nicht gecastet werden sondern m\u00fcssen mit &#8222;richtig&#8220; konvertiert werden, z.B. \u00fcber parseInt() oder toString().<br \/>\nUm einen Datentyp in einen kompatiblen Datentyp zu casten setzt man den gew\u00fcnschten Ziel-Datentyp in Klammern. Bei Float zu int w\u00fcrde das so aussehen:<br \/>\n<code>float f = 10;<\/code><br \/>\n<code>int i = (int) f;<\/code><\/p>\n<p>Bei einem Casting von Datentypen die nicht primitiv sind, wird nur die Referenz also die Zugriffsart auf das Objekt ver\u00e4ndert. Wird ein Objekt in Richtung der Vaterklasse gecastet muss dies nicht angegeben werden, da dies der Kompiler \u00fcbernimmt. Dies nennt man einen <em>impliziten Cast<\/em>. So ist es z.B. oft beim ActionListener Handling \u00fcblich:<br \/>\n<code>public void actionPerformed(ActionEvent e) {<\/code><br \/>\n<code>Object o = e.getSource(); \/\/ impliziter Cast<\/code><\/p>\n<p>Wird ein Objekt auf in eine abgeleitete Klasse oder Kindklasse gecastet, muss dies explizit angegeben werden. Dies nennt man einen <em>expliziten Cast<\/em>. Im Beispiel wird das obige Objekt wieder zur\u00fcck in einen JButton gecastet:<br \/>\n<code>JButton btn = (JButton) o; \/\/ explizieter Cast<\/code><br \/>\n<code>System.out.print(\"Beschriftung des Buttons\" + btn.getText());<\/code><br \/>\n<code>System.out.println();<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>F\u00fcr alle primitiven Datentypen stellt Java jeweils eine Basisklasse zur Verf\u00fcgung die bequem zur Typumwandlung benutzt werden kann. Dies ist wichtig wenn man zum Beispiel mit einem String der eine Zahl enth\u00e4lt, rechnen m\u00f6chte. Nachfolgend alle Basisklassen der primitiven Datentypen. String in int umwandeln: String text &#8222;10&#8220; Integer.parseInt(text); int in String umwandeln: int i = [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1,11,5,6],"tags":[],"_links":{"self":[{"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/posts\/458"}],"collection":[{"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/comments?post=458"}],"version-history":[{"count":2,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/posts\/458\/revisions"}],"predecessor-version":[{"id":462,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/posts\/458\/revisions\/462"}],"wp:attachment":[{"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/media?parent=458"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/categories?post=458"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/tags?post=458"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}