Thread: Java, wat is er mis?
-
11-12-2008, 20:01 #16
Het is nog steeds fout en/of onvolledig, hoor. Hier geldt exact hetzelfde - immers, hoe kan java onderscheid maken tussen 'iets dat met getallen te maken heeft' en iets anders? Java kent enkel objecten en primitieven, daar hebben 'getallen' zoals wij ze kennen niets mee te zien.
Probeer het maar eens uit. De attributen worden geïnitialiseerd wanneer je de constructor oproept, maar de lokale variabelen geven een fout/waarschuwing. (zowel de primitieve int als het integerobject, 2 dingen die 'met getallen te maken hebben')Code:public class Foo { private int intA; private Integer integerA; public Foo() { } public void bar() { int intB; Integer integerB; System.out.println("intA: " + intA); System.out.println("integerA: " + integerA); System.out.println("intB: " + intB); System.out.println("integerB: " + integerB); } }no votes
-
-
11-12-2008, 20:09 #17
die is null , daar hoef je geen prof voor te zijn .Dat kan je best zelf checken

Code:public class TestMain { static String s; public static void main(String[] args) { System.out.println(s); } }creation by destruction , destruction by creationno votes
-
11-12-2008, 20:12 #18no votes
-
12-12-2008, 09:57 #19Member
- Registered
- 23/11/03
- Location
- Landeurp
- Posts
- 1,791
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 10/17
Ik heb de String op null geïnitialiseerd omwille van de reden die Cycloon aanhaalde en voor de rest moet je maar naar Parnakra luisteren, behalve voor dit dan:
als je String x = new String(); doet gaat x inderdaad standaard een null-waarde meekrijgen (of een lege string, zou ik eens moeten nakijken - maar komt op hetzelfde neer)
no votes
-
12-12-2008, 12:44 #20Member
- Registered
- 17/07/02
- Location
- Hasselt
- Posts
- 2,970
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 0/18
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilizationno votes
-
12-12-2008, 14:47 #21Member
- Registered
- 23/11/03
- Location
- Landeurp
- Posts
- 1,791
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 10/17
Dat is niet hetzelfde. "" is een string literal die terechtkomt in een pool van string literals, terwijl new String() altijd een nieuw object oplevert.
Code:public class StringLiterals { public static void main(String[] args) { String a = ""; String b = ""; String c = new String(); String d = new String(""); System.out.println(a == b); // true System.out.println(a == c); // false System.out.println(a == d); // false System.out.println(a.equals(b)); // true System.out.println(a.equals(c)); // true System.out.println(a.equals(d)); // true } }no votes

