Hallo alle zusammen 
ich muss hier noch son Programm schreiben, also hier ist erstmal die Aufgabenstellung:
https://sol.cs.hm.edu/course/st/se1a-lab/slide0046.html
( seite von unserem Professor, sicherer zugriff
)
Alsooo
Ich hab schon was zusammen, aber bin mir bei dem was ich hab nicht ganz sicher.
Zum ersten hab ich die Klasse AbstractImag:
Dann dir Klasse Text:
Nun die Klasse Modern
Klasse Framed:
Sooo das hätte ich schonmal, hab jedoch noch paar Fragen.
1. Ich bin nicht sicher ob diese Implimentierung so gerecht ist. Ich meine ich weiss nicht ob man die Klasse "Modern" auch so schreiben soll, dass die Objekte von "Modern" wie die Objekte vom "Text" zusammengestellt werden, also mit Arrays.
2. Denn später muss ich ja in "Above" und so 2 bilder untereinander bzw. nebeneinander schreiben, hab da mal rumprobiert z.B. so:
theoretisch funkt es, ABER es muss ja daraus 1 Bild entstehen, also aus 2 obj. soll dann 1, zusammengewachsen sein, dass man dann auch Framen kann. Also so dachte ichs mir: (testklasse):
dabei kassier ich aber immer folgendes:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at AbstractImage.getWeight(AbstractImage.java:27)
at Framed.toString(Framed.java:20)
at java.lang.String.valueOf(String.java:2826)
at java.io.PrintStream.println(PrintStream.java:771)
at TT.main(TT.java:26)
Java Result: 1
So bin ich auf die idee gekommen, dass vielleicht die beiden einzelnen bilder nicht o kompotabel sind dass man daraus 1 machen kann, und zwar so dass man es umrahmen kann ...
Jedoch habe ich keine Ahnung wie ich das anders machen soll, bzw. wo hier was nicht zusammenpasst, und wo fehler sind.
3. Zu den anderen Klassen, passen die soweit ? Kann man noch irgendwas in die Abstracte Klasse hochziehen ?!
4. Ok zu den restlichen Klassen habe ich leider garkeine Idee ... fals da einem was so einfällt wäre cool
Aber eins nachm anderen, erstmal die sachen davor ausbessern bevor man weitermacht
Vielen Dank jetztschonmal für dir Zeit
So glaub dieser Roman reicht jetzt erstmal
ich muss hier noch son Programm schreiben, also hier ist erstmal die Aufgabenstellung:
https://sol.cs.hm.edu/course/st/se1a-lab/slide0046.html
( seite von unserem Professor, sicherer zugriff
Alsooo
Ich hab schon was zusammen, aber bin mir bei dem was ich hab nicht ganz sicher.
Zum ersten hab ich die Klasse AbstractImag:
Java:
public abstract class AbstractImage implements Image
{
protected String[] s;
public AbstractImage (String... args)
{
s = args;
}
public int getHight()
{
return s.length;
}
public int getWeight()
{
String maximum = s [0];
int i = 1;
while(i < s.length)
{
if (s[i].length() > maximum.length())
{
maximum = s[i];
}
i++;
}
return maximum.length();
}
public String getLine(int i)
{
return s[i];
}
}
Dann dir Klasse Text:
Java:
public class Text extends AbstractImage
{
public Text (String... args)
{
super (args);
}
@Override
public String toString()
{
String newline = "\n";
String result = "";
if (s.length > 0) {
result = s[0]; // start with the first element
for (int i = 1; i < s.length; i++) {
result = result + newline + s[i];
}
}
return result;
}
public void setLine(int i,String w)
{
s[i] = w;
}
}
Nun die Klasse Modern
Java:
public class Modern extends AbstractImage
{
private final char c;
private int height;
private int weight;
public Modern (char c, int height, int weight)
{
this.c = c;
this.height = height;
this.weight = weight;
}
public void setHeight (int i)
{
this.height = i;
}
public void setWidth(int i)
{
this.weight = i;
}
@Override
public String toString()
{
String newline = "\n";
String result = "";
int k = 0;
while(k < this.height)
{
for(int l = 0; l < this.weight; l++)
result = result + c;
result = result + newline;
k++;
}
return result;
}
}
Java:
public class Framed extends AbstractImage
{
private final Image image;
public Framed (Image image)
{
this.image = image;
}
@Override
public String toString()
{
int x;
int y;
System.out.print("+");
for (x = 0; x < image.getWeight(); x++)
{
System.out.print("-");
}
System.out.println("+");
for (int q = 0; q < image.getHight(); q++)
{
String d ="";
if (image.getLine(q).length() != image.getWeight())
{
for (int e = image.getLine(q).length(); e != image.getWeight(); e++)
d = d + " ";
}
System.out.println("|" + image.getLine(q) + d + "|");
}
System.out.print("+");
for (x = 0; x < image.getWeight(); x++)
{
System.out.print("-");
}
System.out.print("+");
return "";
}
}
Sooo das hätte ich schonmal, hab jedoch noch paar Fragen.
1. Ich bin nicht sicher ob diese Implimentierung so gerecht ist. Ich meine ich weiss nicht ob man die Klasse "Modern" auch so schreiben soll, dass die Objekte von "Modern" wie die Objekte vom "Text" zusammengestellt werden, also mit Arrays.
2. Denn später muss ich ja in "Above" und so 2 bilder untereinander bzw. nebeneinander schreiben, hab da mal rumprobiert z.B. so:
Java:
public class Above extends AbstractImage
{
private final Image image1;
private final Image image2;
public Above (Image image1, Image image2)
{
this.image1 = image1;
this.image2 = image2;
}
@Override
public String toString()
{
System.out.println(image1);
System.out.println(image2);
return "";
}
}
theoretisch funkt es, ABER es muss ja daraus 1 Bild entstehen, also aus 2 obj. soll dann 1, zusammengewachsen sein, dass man dann auch Framen kann. Also so dachte ichs mir: (testklasse):
Java:
public class TT {
public static void main(String[] args)
{
Text mw = new Text("München", "im", "Winter");
Modern snow = new Modern('*', 8000000, 5000000); // ein Monumentalgemälde
snow.setWidth(4);
snow.setHeight(3);
Above d = new Above(mw, snow);
System.out.println(d);
Framed a = new Framed(d);
System.out.println(a);
}
}
dabei kassier ich aber immer folgendes:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at AbstractImage.getWeight(AbstractImage.java:27)
at Framed.toString(Framed.java:20)
at java.lang.String.valueOf(String.java:2826)
at java.io.PrintStream.println(PrintStream.java:771)
at TT.main(TT.java:26)
Java Result: 1
So bin ich auf die idee gekommen, dass vielleicht die beiden einzelnen bilder nicht o kompotabel sind dass man daraus 1 machen kann, und zwar so dass man es umrahmen kann ...
Jedoch habe ich keine Ahnung wie ich das anders machen soll, bzw. wo hier was nicht zusammenpasst, und wo fehler sind.
3. Zu den anderen Klassen, passen die soweit ? Kann man noch irgendwas in die Abstracte Klasse hochziehen ?!
4. Ok zu den restlichen Klassen habe ich leider garkeine Idee ... fals da einem was so einfällt wäre cool
Aber eins nachm anderen, erstmal die sachen davor ausbessern bevor man weitermacht
Vielen Dank jetztschonmal für dir Zeit
So glaub dieser Roman reicht jetzt erstmal