Probleme mit Java 6, der interaktive Programmierkurs

tben_de

Neues Mitglied
Hallo,

ich habe einige Probleme mit dem besagten Kurs

Die Probleme sind code, den ich genau abgeschrieben habe, der bei mir aber nicht funktioniert. Java 1.6, Eclipse 3.1

1. Bei VorlageTest können Variante 1 und Variante 2 nicht aufgelöst werden
Java:
package abstrakte_klassen;


public class VorlageTest {

	public static void main(String[] args) {
		
		Vorlage v = new Variante1();
		v.add("Guten");
		v.add(" Tag");
		v.anzeigen();
		System.out.println();
		v = new Variante2();
		v.add("Guten");
		v.add(" Tag");
		v.anzeigen();
	}
}
----------------------------------------------------------------
Java:
package abstrakte_klassen;


public abstract class Vorlage {
	
	String s = "";
	
	public void add(String zeichen){
		s = s + zeichen;
	}
	public abstract void anzeigen();
	
	class Variante1 extends Vorlage{
		public void anzeigen(){
			char[] zeichen = s.toCharArray();
			for (int i = 0; i < zeichen.length; i++) {
				System.out.print(zeichen[i] + " ");
			}		
		}	
	}
	class Variante2 extends Vorlage{
		public void anzeigen(){
			System.out.println(s.toUpperCase());
		}
	}
}
-------------------------------------------------------------------------
2. Printf funktioniert nicht!
Java:
package datum_uhrzeit;

import java.util.*;

public class Datum2 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(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 = new GregorianCalendar(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);

	}
}
---------------------------------------------------------------------------

Ich bedanke mich schon mal im Voraus für den hoffentlich folgenden "AHA-Effekt".

Klar, bin Anfänger, deshalb bitte in Baby-Sprache

Viele Grüße
 
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 = new Scanner(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 = new GregorianCalendar(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;

public abstract class Vorlage {

	String s = "";

	public void add(String zeichen) {
		s = s + zeichen;
	}

	public abstract void anzeigen();

}

class Variante1 extends Vorlage {
	public void anzeigen() {
		char[] zeichen = s.toCharArray();
		for (int i = 0; i < zeichen.length; i++) {
			System.out.print(zeichen[i] + " ");
		}
	}
}

class Variante2 extends Vorlage {
	public void anzeigen() {
		System.out.println(s.toUpperCase());
	}
}

Dabei ist das im Buch doch eig. recht ordentlich eingerückt:
Java 6 - Der interaktive Programmierkurs - Google Bücher
:bae:
 
bin ich ja froh, dass ich mal was richtiges gesagt habe :toll:. sonst verbesserst du mich ja meistens 😳
 

Zurück
Oben