Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

Alexei

Mitglied

Dabei seit: 10.05.2008

Beiträge: 25

 

1 Zum Seitenanfang

Samstag, 10. September 2011, 01:14

Java boolean vererben

Java-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// abstrakte Klasse, wovon andere Klassen abgeleitet werden
package test;

abstract class test1
{
protected boolean hallo;

public boolean anzeigen()
{
	if (hallo)
	{System.out.println("Hallo");
	return true;}
	else
	{System.out.println("Hi");
	return false;}
}

}

//Klasse erbt von test1

package test;


public class tst extends test1
{

}

// erzeugt ein Objekt von tst und benutzt die  methode anzeigen()

import test.*;

class tt extends tst
{
	public static void main(String[] args)
	{
		tst mm;
	mm = new tst();
	mm.anzeigen();
	}

}


Die 3 Quelltexte, die durch die Kommentare getrennt sind, waren in separaten Dateien.

Jetzt die Frage zu dem Quelltext. Warum ist die Variable hallo false? (Hi wird auf dem Terminal ausgegeben) Hat das etwas mit dem Standard-Konstruktor zu tun?
 

nocturne

Kaiser

Dabei seit: 06.01.2005

Beiträge: 1 167

 

2 Zum Seitenanfang

Samstag, 10. September 2011, 09:12

Es gibt keinen wirklichen "Grund"

aber im allgemeinen bestehen bestimmte Regeln für die Default-Werte:

1. primitive Variablen werden immer standartmäßig vorbefüllt, also kann sie erstmal nicht null sein.
2. es ist ein "Trend" von Programmiersprachen der seit jahrzehnten besteht, hier vom allgemeinen abzuweichen würde es umschülern (z.B. von c++) schwerer machen.
3. meistens heissen boolean-variablen "running" oder "detached" die einen bestimmten Status beschreiben der normalerweise zu beginn immer false ist.


Zum standart-konstruktor:
Ja, die Wertzuweisung passiert sogar bei jedem Konstruktor, nicht nur beim default-Konstruktor.


Übrigends kannst du "final" vor "protected boolean hallo;" schreiben, und damit erzwingen dass man in jedem konstruktor explizit einen wert setzen muss.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »nocturne« (10. September 2011, 09:12)

 

Ähnliche Themen