Hallo Forum,
ich habe 3 Klassen. Eine "Basisklasse", von der meine "EinlesenKlasse" erbt. Meine dritte Klasse heisst "ObjektBilden". In dieser Klasse möchte ich von der "EinlesenKlasse" eine Instanz bilden.
Der Sinn der Sache: In der Basisklasse wird allgemein der Zugriff auf Excel-Files mit der JExcel-API geregelt. In der "EinlesenKlasse" spezifiere ich den Zugriff genauer und in der "ObjektBilden"-Klasse bilde ich ein Objekt von der "EinlesenKlasse" und sage, wieviele Spalten eingelesen werden sollen und aus welcher Datei. Nach dem Start des Programms sollen dann die in der "ObjektBilden"-Klasse festgelegten Spalten in der Konsole dargestellt werden.
Bisher habe ich noch Probleme die Modifizierer optimal zu setzen, bzw. auf Variablen in anderen Klassen optimal zuzugreifen. Brauche ich da immer Getter und Setter, auch wenn ich von der Klasse erbe ("EinlesenKlasse" erbt ja von "Basisklasse"). Wie könnte ich dieses kleine Programm verbessern?
Welche Modifizierer nutze ich wann am Besten?
Besonders wichtig wäre mir, aus diesen Klassen ein Beispiel für das optimale Zusammenspiel verschiedener Klassen in der objektorientierten Programmierung (also Vererbung; Kapeselung...) zu erhalten.
Vielen Dank mal im Voraus für alle, die schon mehr Know-How im Zusammenhang der Objektorientierten Programmierung haben.
Hier mal meine Klassen:
Basisklasse:
EinlesenKlasse:
ObjektBilden:
ich habe 3 Klassen. Eine "Basisklasse", von der meine "EinlesenKlasse" erbt. Meine dritte Klasse heisst "ObjektBilden". In dieser Klasse möchte ich von der "EinlesenKlasse" eine Instanz bilden.
Der Sinn der Sache: In der Basisklasse wird allgemein der Zugriff auf Excel-Files mit der JExcel-API geregelt. In der "EinlesenKlasse" spezifiere ich den Zugriff genauer und in der "ObjektBilden"-Klasse bilde ich ein Objekt von der "EinlesenKlasse" und sage, wieviele Spalten eingelesen werden sollen und aus welcher Datei. Nach dem Start des Programms sollen dann die in der "ObjektBilden"-Klasse festgelegten Spalten in der Konsole dargestellt werden.
Bisher habe ich noch Probleme die Modifizierer optimal zu setzen, bzw. auf Variablen in anderen Klassen optimal zuzugreifen. Brauche ich da immer Getter und Setter, auch wenn ich von der Klasse erbe ("EinlesenKlasse" erbt ja von "Basisklasse"). Wie könnte ich dieses kleine Programm verbessern?
Welche Modifizierer nutze ich wann am Besten?
Besonders wichtig wäre mir, aus diesen Klassen ein Beispiel für das optimale Zusammenspiel verschiedener Klassen in der objektorientierten Programmierung (also Vererbung; Kapeselung...) zu erhalten.
Vielen Dank mal im Voraus für alle, die schon mehr Know-How im Zusammenhang der Objektorientierten Programmierung haben.
Hier mal meine Klassen:
Basisklasse:
Java:
//In dieser Klasse wird generell der Zugriff auf Excel-Dokumente geregelt.
//Eine bestimmte Anzahl an Excel-Zellen wird in einen String geschrieben
package beispiel;
import java.io.IOException;
import jxl.*;
import java.io.File;
import jxl.read.biff.BiffException;
public class Basisklasse
{
private Workbook exceldateiEingabe;
public void readExceldatei() throws IOException, BiffException
{
//Workbook erstellen
exceldateiEingabe = Workbook.getWorkbook(new File(datei));
}
public void closeExceldatei()
{
exceldateiEingabe.close();
}
}
EinlesenKlasse:
Java:
package beispiel;
import java.io.IOException;
import jxl.*;
import java.io.File;
import jxl.read.biff.BiffException;
public class EinlesenKlasse extends Basisklasse
{
//Anzahl der Spalten die eingelesen werden sollen
private int var1;
//Datei die eingelesen werden soll
private String datei;
//parameterloser Standardkonstruktor
public EinlesenKlasse()
{
}
//Konstruktor
public EinlesenKlasse(int varA, String varB)
{
this.var1 = varA;
this.datei = varB;
}
//Set-Methoden
public void setVar1(int varA)
{
this.var1 = varA;
}
public void setVar2(String varB)
{
this.datei = varB;
}
//Get-Methoden
public int getVar1()
{
return var1;
}
public String getDatei()
{
return datei;
}
//Hier wird die Funktion der Basisklasse überschrieben
public void readExceldatei()
{
//Festlegen welches Tabellenblatt verwendet werden soll
Sheet tabelle = exceldateiEingabe.getSheet(0);
//Gesamte Spalte durchlaufen und Werte in String schreiben
for (int y = 0; y < tabelle.getRows(); y++)
{
String a = tabelle.getCell(0, y).getContents();
String b = tabelle.getCell(1, y).getContents();
System.out.println(a + " | " + b);
}
}
}
ObjektBilden:
Java:
package beispiel;
import java.io.IOException;
import jxl.read.biff.BiffException;
public class ObjektBilden
{
//Hauptmethode eines Java-Programms = Startpunkt für Programm
public static void main(String[] args) throws IOException, BiffException
{
//paarameterloser Standardkonstruktor wird aufgerufen
//EinlesenKlasse einlesen = new EinlesenKlasse();
//Konstruktor mit Parametern wird aufgerufen
EinlesenKlasse einlesen2 = new EinlesenKlasse(2, "C:/.../einfacheExcelDatei.xls");
einlesen2.readExceldatei();
einlesen2.closeExceldatei();
}
}