HI
hab den folgenden Code und ihc wollte euch bitten ob mir jemand da 1,2 Schnipsel von erklären kann. Hab zwar das Kapitel zu dem Thema galesen aber iergendwie ist mir dasganze noch ein bisschen Schleierhaft...
also der code ist folgender:
So und nun zu den Teilen
Ich sehe das doch richtig, dass das Konstruktoren sind? Meine Frage wozu benötige ich die eigentlich und vor allem diese Stelle bei dem oberen Schnipsel macht mir zu schaffen (verständnismässig)
was bewirkt dieses This und wozu mach ich das?
Und dann noch ne Frage zu dem Schlussteil
Der Part
ich weis das mit dem ersten "Konto" eine Klassenangabe gemacht wird und dann eine beliebige bezeichnung für die Class. Nach dem "=" kenne ich nur das "new" aber was bewirkt das "akt."?
Und beim debuggen der "Anwendung" ist mir mal aufgefallen das obwohl der Schnipsel ja auf die class konto verweist er aber dann direkt in den Part
geht und gar nichts in der class konto macht ...
Soll diese Zeile also einfach nur ne Wertüberabe sein von der class "kontoAnlegen" nach der class "Konto"?
Wenn ja in welche Methode????
hab den folgenden Code und ihc wollte euch bitten ob mir jemand da 1,2 Schnipsel von erklären kann. Hab zwar das Kapitel zu dem Thema galesen aber iergendwie ist mir dasganze noch ein bisschen Schleierhaft...
also der code ist folgender:
Code:
class Konto { // Nichtausführbare Klasse
public int kontoNummer; // Attribute:
public int blz;
public String inhaber;
public double saldo;
public final double zinsSatz = 0.025;
// Konstruktoren:
public Konto( int kn, int bz, String n, double sa ) {
// Kontrolle: Kontostand beim Anlegen nicht negativ:
kontoNummer = kn; blz = bz;
inhaber = n; saldo = Math.abs( sa );
}
public Konto( int kn, int bz, String n ) {
this( kn, bz, n, 0.0 );
}
// Weitere Methoden:
public double einzahlen( double betrag ) {
// Kontrolle: betrag muss positiv sein
saldo = saldo + Math.abs( betrag );
return saldo;
}
public double abheben( double betrag ) {
// Kontrolle: betrag positiv! Kontostand nicht negativ!
if( saldo - Math.abs( betrag ) < 0 )
IO.writeln( "Abhebevorgang nicht möglich!" );
else saldo = saldo - Math.abs( betrag );
return saldo;
}
public double zinsen( ) { return saldo * zinsSatz; }
public double zinsZuschlag( ) {
saldo = saldo + zinsen( );
return saldo;
}
}
class Aktion { // Nichtausführbare Klasse
public Aktion( String titel ){
IO.writeln( "Start der Anwendung: " + titel );
IO.writeln( "===================================" );
}
public Konto kontoAnlegen( ) {
IO.writeln( "Anlegen eines Kontos:" );
IO.writeln( "=======================" );
String nm = IO.promptAndReadString( "Inhaber = " );
int knm = IO.promptAndReadInt( "Kontonummer = " );
int blzahl = IO.promptAndReadInt( "Blz = " );
double sld = IO.promptAndReadDouble( "Anfangsstand = " );
Konto k = new Konto( knm, blzahl, nm, sld );
return k;
}
public int menue() {
IO.writeln( "Funktionsauswahl:" );
IO.writeln( "=======================" );
IO.writeln( "Konto neu anlegen = 1" );
IO.writeln( "Einzahlen = 2" );
IO.writeln( "Abheben = 3" );
IO.writeln( "Zinsen ausschütten = 4" );
IO.writeln( "Kontendaten ausgeben = 5" );
int option = IO.promptAndReadInt( "Gewünschte Option = " );
return option;
}
public double abfrage() {
return IO.promptAndReadDouble( "Gewünschter Betrag = " );
}
public void ausgabe( double stand ) {
IO.writeln( "Stand = " + IO.round( stand, 2 ) );
}
public void datenAusgabe( Konto k ) {
IO.writeln( "Ausgabe der Kontodaten:" );
IO.writeln( "=======================" );
IO.writeln( "Kontonhaber: " + k.inhaber );
IO.writeln( "Kontonummer: " + k.kontoNummer );
IO.writeln( "BLZ: " + k.blz );
IO.writeln( "Kontostand: " + IO.round( k.saldo,2) );
IO.writeln( "Zinssatz " + k.zinsSatz );
}
public boolean fortsetzen() {
return (IO.promptAndReadChar( "Weiter (j)? " ) == 'j');
}
}
class Bank { // Ausführbare Klasse
public static void main( String[] args ) {
int wahl; double aktuell = 0.0;
Aktion akt = new Aktion( "Kontoführung" );
Konto k1 = akt.kontoAnlegen();
akt.datenAusgabe( k1 );
do {
wahl = akt.menue();
switch( wahl ) {
case 1:
k1 = akt.kontoAnlegen();
break;
case 2:
double b = akt.abfrage(); // ausführlich
aktuell = k1.einzahlen( b );
akt.ausgabe( aktuell );
break;
case 3:
aktuell = k1.abheben( akt.abfrage() ); // kompakt
akt.ausgabe( aktuell );
break;
case 4:
akt.ausgabe( k1.zinsZuschlag() );
break;
case 5:
akt.datenAusgabe( k1 );
break;
default:
IO.writeln( "Keine gültige Option!" );
}
}while( akt.fortsetzen() );
}
}
So und nun zu den Teilen
Code:
// Konstruktoren:
public Konto( int kn, int bz, String n, double sa ) {
// Kontrolle: Kontostand beim Anlegen nicht negativ:
kontoNummer = kn; blz = bz;
inhaber = n; saldo = Math.abs( sa );
}
public Konto( int kn, int bz, String n ) {
this( kn, bz, n, 0.0 );
Code:
public Konto( int kn, int bz, String n ) {
this( kn, bz, n, 0.0 );
was bewirkt dieses This und wozu mach ich das?
Und dann noch ne Frage zu dem Schlussteil
Code:
int wahl; double aktuell = 0.0;
Aktion akt = new Aktion( "Kontoführung" );
Konto k1 = akt.kontoAnlegen();
akt.datenAusgabe( k1 );
do {
wahl = akt.menue();
Der Part
Code:
Konto k1 = akt.kontoAnlegen();
Und beim debuggen der "Anwendung" ist mir mal aufgefallen das obwohl der Schnipsel ja auf die class konto verweist er aber dann direkt in den Part
Code:
public Konto kontoAnlegen( ) {
IO.writeln( "Anlegen ...
Soll diese Zeile also einfach nur ne Wertüberabe sein von der class "kontoAnlegen" nach der class "Konto"?
Wenn ja in welche Methode????