package abstrakte_klassen;publicabstractclassVorlage{String s ="";publicvoidadd(String zeichen){
s = s + zeichen;}publicabstractvoidanzeigen();classVariante1extendsVorlage{publicvoidanzeigen(){char[] zeichen = s.toCharArray();for(int i =0; i < zeichen.length; i++){System.out.print(zeichen[i]+" ");}}}classVariante2extendsVorlage{publicvoidanzeigen(){System.out.println(s.toUpperCase());}}}
package datum_uhrzeit;importjava.util.*;publicclassDatum2{publicstaticvoidmain(String[] args){Scanner sc =newScanner(System.in);System.out.println("Geben Sie einen Tag ein(drei einzelne Zahlen): ");int tag = sc.nextInt();int monat = sc.nextInt();int jahr = sc.nextInt();GregorianCalendar gc =newGregorianCalendar(jahr, monat -1, tag);System.out.printf("Ihr Tag: %1$td.%1$tm.%1$tY%n",gc);System.out.printf("Der Tag ist ein %1$tA",gc);}}
eine abstrakte klasse kann nicht instanziiert werden. Um aber ein Objekt der Inneren Klassen (nested classes) Variante1 und Variante2 zu erzeugen brauchst du eine Instanz der äußeren klasse (Vorlage). Deshalb gibt der Code für mich irgendwie keinen Sinn.
Vielleicht sehe ich das aber auch falsch...
zu zweitens:
Funktioniert bei mir. Vllt vergisst du nur die Eingaben für Monat und Jahr und vermisst bereits nach der Eingabe vom Tag die Ausgabe. Machs mal so:
Java:
Scanner sc =newScanner(System.in);System.out.println("Geben Sie einen Tag ein: ");int tag = sc.nextInt();System.out.println("Geben Sie ein Monat ein: ");int monat = sc.nextInt();System.out.println("Geben Sie ein Jahr ein: ");int jahr = sc.nextInt();GregorianCalendar gc =newGregorianCalendar(jahr, monat -1, tag);System.out.printf("Ihr Tag: %1$td.%1$tm.%1$tY%n",gc);System.out.printf("Der Tag ist ein %1$tA",gc);
Jepp, das mit der inneren Klasse hast du falsch abgeschrieben. Es sollte so aussehen:
Java:
package abstrakte_klassen;publicabstractclassVorlage{String s ="";publicvoidadd(String zeichen){
s = s + zeichen;}publicabstractvoidanzeigen();}classVariante1extendsVorlage{publicvoidanzeigen(){char[] zeichen = s.toCharArray();for(int i =0; i < zeichen.length; i++){System.out.print(zeichen[i]+" ");}}}classVariante2extendsVorlage{publicvoidanzeigen(){System.out.println(s.toUpperCase());}}