Variable und Klassen

Neue Frage »

Auf diesen Beitrag antworten »
Anikin Variable und Klassen

Guten tag!

Habe gerade mal ne Frage.

Habe mehrere Klassen z.B. Fonds und DBwrite und will, dass eine Variable startdate...... aus Fonds in DBwrite gelesen wird.

Kann mir jemand nochmal auf die Sprünge helfen wie das funktionierte?

Liebe grüße
 
Auf diesen Beitrag antworten »
Tobias

Vielleicht kannst du uns kurz auf die Sprünge helfen, denn hier gibt es herzlich wenig Hellseher:

Wovon redest du? Objektorientierte Programmierung? Falls ja willst du ein Java-Programm schreiben?

Wie sehen die Klassen aus? Sind sie untereinander abhängig? Haben sie geerbt?

Du siehst, du musst hier etwas ausführlicher werden.
Auf diesen Beitrag antworten »
Anikin

Ok, sorry!
Also ja, es geht ganz genau um Java und auch objektorientiert sollte es sein!


Das ist die Klasse DBwrite und in der soll anstatt einer 0.0 ein Datum stehen.
code:
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:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
package database;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.*;

public class DBwrite {
	
public void write ( LinkedList werte ) {
		
		String createString;
		Statement stmt = null;
		String cStr;
		//createString = cStr;
		
		TestDB test = new TestDB();
		
		Connection con = test.openCon();
		cStr = "DELETE FROM UBEDEVDTA7.ULBRREP where BRBGCD='XXXXXX'";
		test.execute(cStr, con);
		
		int anzahl = werte.size();
		String tacode = null;
		for (int i = 1; i<=anzahl ; i++ )
		{		
			
			werte.get(i);
				
			for (int j=1 ; j>8; j++)
			{
				if (j==1);
					tacode = "FD";
				if (j==2);
					tacode = "FR";
				if (j==3);
					tacode = "NM";
				if (j==4);
					tacode = "NP";
				if (j==5);
					tacode = "NT";
				if (j==6);
					tacode = "PA";
				if (j==7);
					tacode = "TR";
				if (j==8);
					tacode = "00";
				}
			
			cStr = "insert into ubedevdta7.ulbrrep " 
				+"(BRAXCD,BRBGCD,BRABST,BRA2DT,BRAITM,"
				+"BREJDX,BRBXTM,BRA6VA,BRA7VA,BRGGST,"
				+"BREDDT,BRRMVL,BRS4DX,BRBHVN,BRBIVN,"
				+"BRKSDX,BRDOTM,BRBJVN,BRBKVN,BRKTDX,"
				+"BRDPTM) "
				+"values " 
				+"('EUR','XXXXXX'"+ tacode + 0.0 + "120001"
				+ 0.0 + "120000" + "0.0,0.0,'C',"
				+"0.0,0,0,'TEST','UPWJXFK',"
				+"0.0,120001,'','',0,"
				+"0)";
			
		}
		

		
		
		

		
		
		
		test.closeCon(con);
		System.out.println(cStr);
	
}


Dieses Datum habe ich in der Klasse Fonds eingegeben und auch zusammen gesetzt.
code:
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:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
public double calculate ()
	{
		
		Calendar startdate = Calendar.getInstance();
		Calendar enddate = Calendar.getInstance();
		Calendar startdatenew = Calendar.getInstance();
		Calendar startdatum = Calendar.getInstance();
		
		enddate.set(endyear, (endmonth - 1), endday + 1 , 12, 0, 0);
		startdate.set(startyear, (startmonth -1 ), startday, 12, 0, 0);
		startdatenew.set(startyear, (startmonth -1 ), startday, 12, 0, 0);
		startdatum.set(startyear, (startmonth -1 ), startday, 12, 0, 1);
		startdatum.add(Calendar.DATE, - 1);
		
		LinkedList werteliste = new LinkedList ();
		
		System.out.println("Startdatum: "+startdate.getTime()+" Endedatum: "+ enddate.getTime());

		
		for ( startdatenew.set(startyear, (startmonth -1 ), startday, 12, 0, 0)
							; startdatenew.before(enddate); startdatenew.add(Calendar.DATE, 1) ){
			if (startdatenew.get(Calendar.MONTH) == 1 && startdatenew.get(Calendar.DAY_OF_MONTH) == 29)
			{
				Wertobjekt wert = new Wertobjekt(startdatum, startdatenew, startdate, startdate, fondswert, fondswert); 
				werteliste.add(wert);
			}
			else 
			{
				double difference, days; 
				difference = startdatenew.getTimeInMillis() - startdate.getTimeInMillis(); 
				days =difference/(24*3600*1000);
				
				if (days == 0.0)
				{
					startdatum.add(Calendar.DATE, 1);
					startdatum.add(Calendar.SECOND, - 1);
				}
				
				double prozent = 1 + (percent / 100); 
				double n = (days / 365);
			
				double endvalue = Math.pow( prozent, n ); 
				fondswert = price * endvalue;
			
				Wertobjekt wert = new Wertobjekt(startdatum, startdatenew, startdate, startdate, fondswert, fondswert); 
				werteliste.add(wert);
				
				if (days == 0.0)
				{
					startdatum.add(Calendar.DATE, - 1);
					startdatum.add(Calendar.SECOND, 1);
				}
			}
			startdatum.add(Calendar.DATE, 1);
		}
		


Jetzt möchte ich diese Datums(????) in der Klasse DBwrite verwenden.
Auf diesen Beitrag antworten »
Tobias

Die allgemeine Methode ist, in der Klasse Fonds eine get-Methode anzulegen:

code:
1:
2:
3:
public Calendar getDate() {
   return startdate;
}


Jetzt muss die Variable startdate natürlich global in der Klasse sichtbar sein und nicht nur in der Funktion:
code:
1:
private Calendar startdate;

Alle lokalen Deklarationen von startdate musst du löschen.


In der Klasse DBwrite braucht es nun eine set-Methode:
code:
1:
2:
3:
4:
5:
6:
private Calendar startdate;

public void setDate(Calender date) {
   startdate = date;
}



Nun kannst du mittels dieser Methoden das Objekt von der einen Klasse in die andere schieben:

code:
1:
dbWriteInstance.setDate(fondsInstancen.getDate())
 
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »