Java / Vererbung

Das Forum fĂĽr Programmierer und Systemadmins. Von Shell-, Perl- und PHP-Scripts bis zur objektorientierten Programmierung mit C++.

Java / Vererbung

Beitragvon Erol » Do 18 Apr, 2002 18:54

tja ich ging zwar davon aus die prinzipien der objektorientierten programmierung verstanden zu haben, aber ich bin ehrlich gesagt ratlos warum das nicht geht:

ich habe eine klasse mit einem haufen methoden, die nichts andres tun als verschiedene strings miteinander zu verketten und zurĂĽckzugeben.
von dieser klasse möchte ich nun mehrere klassen ableiten, wobei die methoden geerbt werden sollen, aber die zu verkettenden strings anders sind....
lange rede, kurzer sinn, ein beispiel erklärt alles viel besser:

public class baseclass
{
protected String X = "baseclass";

public String getX()
{
return X;
}

public static void main(String args[])
{
baseclass b = new baseclass();
System.out.println("baseclass:"+ b.getX());
subclass s = new subclass();
System.out.println("baseclass:"+ s.getX())d:;
}

}

class subclass extends baseclass
{
protected String X = "subclass";
}

beide male wird die variable X aus baseclass ausgegeben!!
ich möchte aber, dass zwar die methode von baseclass verwendet wird, aber die Variable X aus subclass!! (ich hätte gedacht die wird überschrieben von subclass...)
Erol
 

RE: Java / Vererbung

Beitragvon Erol » Do 18 Apr, 2002 18:56

hab mich oben vertippt, es sollt natĂĽrlich in main als zweites dastehn:
subclass s = new subclass();
System.out.println("subclass:"+ s.getX());
Erol
 

RE: Java / Vererbung

Beitragvon Rene » Fr 09 Aug, 2002 08:25

Hallo!

Naja, das stimmt schon das es vererbt wird. Sobald du in der SubClass auch deine getX Methode definiert funktioniert es natĂĽrlich.
Das "Problem" hierbei ist nur, wenn du jetzt in deiner SubClass auf die vererbte Methode zugreifst, nimmt er laut Vererbung automatisch auch den Membervariable der Superklasse.
Rene
 

Java problem

Beitragvon stefan » Di 03 Dez, 2002 16:50

hi ich habe folgendes problem:
ich möchte mit schleifen die funktion 2 hoch x beschreiben und muß die funktion
2hochx = (c*x)hoch1/1! + (c*x)hoch2/2! + ...usw berechnen bis der unterschied zweier summanden unter eps sinkt
public static final float zweihoch(float x){
float c=0.69314718f;
double eps=0.00000001;
float zweih=0;
float erghoch=1f;
float temp1=1;
float temp2=1f;
float summand1 =1f;
float summand =1f;
float endergebnis =1f;
int ergebnis=1;
int pos = 1;
float produkt = c*x;
System.out.println(produkt );
System.out.println(c );
System.out.println(x);


/**do schleife in der ich versuche 2hoch reinzupacken
*
*/

do
{
//oberer teil des bruchstriches
//hochzahl ist die pos
//basis ist die produkt
for(int i=1;i<pos;i++){
erghoch*=produkt;
}


//fakultteil unter bruchstrich
ergebnis=1;
for(int i=1;i<pos;i++)
ergebnis*=i;
System.out.println(ergebnis );

//summanden zusammenzählen
temp1=summand;
summand=(erghoch/ergebnis);
temp2=summand;
//temp=summand;
endergebnis+=summand;

System.out.println(endergebnis);


pos++;
} while ( temp2-temp1 < eps );//aĂĽssere abbr-bed fĂĽr esp
System.out.println(endergebnis );


return endergebnis;
}



}

aber irgendwo ist ein feheler den ich nicht finden kann!
kann mir jemand helfen?
stefan
 

Java problem

Beitragvon stefan » Di 03 Dez, 2002 16:50

hi ich habe folgendes problem:
ich möchte mit schleifen die funktion 2 hoch x beschreiben und muß die funktion
2hochx = (c*x)hoch1/1! + (c*x)hoch2/2! + ...usw berechnen bis der unterschied zweier summanden unter eps sinkt
public static final float zweihoch(float x){
float c=0.69314718f;
double eps=0.00000001;
float zweih=0;
float erghoch=1f;
float temp1=1;
float temp2=1f;
float summand1 =1f;
float summand =1f;
float endergebnis =1f;
int ergebnis=1;
int pos = 1;
float produkt = c*x;
System.out.println(produkt );
System.out.println(c );
System.out.println(x);


/**do schleife in der ich versuche 2hoch reinzupacken
*
*/

do
{
//oberer teil des bruchstriches
//hochzahl ist die pos
//basis ist die produkt
for(int i=1;i<pos;i++){
erghoch*=produkt;
}


//fakultteil unter bruchstrich
ergebnis=1;
for(int i=1;i<pos;i++)
ergebnis*=i;
System.out.println(ergebnis );

//summanden zusammenzählen
temp1=summand;
summand=(erghoch/ergebnis);
temp2=summand;
//temp=summand;
endergebnis+=summand;

System.out.println(endergebnis);


pos++;
} while ( temp2-temp1 < eps );//aĂĽssere abbr-bed fĂĽr esp
System.out.println(endergebnis );


return endergebnis;
}



}

aber irgendwo ist ein feheler den ich nicht finden kann!
kann mir jemand helfen?
stefan
 


ZurĂĽck zu PROGRAMMIER FORUM

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast