Interfaces

Javafan12

Aktives Mitglied
Java:
// Datei: Punkt.java

interface PunktSchnittstellen
{
   public int getX();       // Eine Methode, um den x-Wert abzuholen 
   public void setX (int i);// Eine Methode, um den x-Wert zu setzen 
}

public class Punkt implements PunktSchnittstellen
{                                    
   private int x;           //x-Koordinate vom Typ int

   public int getX()        // Alle Methoden der Schnittstelle 
   {                        // Punktschnittstellen müssen in der 
      return x;             // Klasse implementiert werden, wenn die
   }                        // Klasse instantiierbar werden soll.

   public void setX (int i)
   {
      x = i;
   }

   public static void main (String[] args) 
   {                                 
      Punkt p = new Punkt(); // Hiermit wird ein Punkt erzeugt
      p.setX (3);
      System.out.println ("Die Koordinate des Punktes p ist: ");
      System.out.println (p.getX());    
   }
}

Compiliere E:\BuchBegleitCD\Javabuch\CodeBeispiele\Kapitel_14\14.1_TrennungVonSpezifikationUndImplementierung\Punkt.java mit Java-Compiler
Punkt.java:3:1: error while writing PunktSchnittstellen: PunktSchnittstellen.class (Zugriff verweigert)
interface PunktSchnittstellen
^
1 error

Warum funktioniert das denn schon wieder nicht?
 

L-ectron-X

Gesperrter Benutzer
PunktSchnittstellen muss wohl
Code:
public
sein.

Edit: Blödsinn!
Du musst die Klasse Punkt in einer eigenen Datei namens Punkt.java speichern.
 
Zuletzt bearbeitet:

Javafan12

Aktives Mitglied
Hä das ist ein Beispiel von einem Buch wie können die denn da ein falsches Beispiel rein tun? MIST!
Java:
// Datei: PunktSchnittstellen.java

public interface PunktSchnittstellen
{
   public int getX();       // Eine Methode, um den x-Wert abzuholen 
   public void setX (int i);// Eine Methode, um den x-Wert zu setzen 
}

public class PunktSchnittstellen implements PunktSchnittstellen
{                                    
   private int x;           //x-Koordinate vom Typ int

   public int getX()        // Alle Methoden der Schnittstelle 
   {                        // Punktschnittstellen müssen in der 
      return x;             // Klasse implementiert werden, wenn die
   }                        // Klasse instantiierbar werden soll.

   public void setX (int i)
   {
      x = i;
   }

   public static void main (String[] args) 
   {                                 
      PunktSchnittstellen p = new PunktSchnittstellen(); // Hiermit wird ein PunktSchnittstellen erzeugt
      p.setX (3);
      System.out.println ("Die Koordinate des Punktes p ist: ");
      System.out.println (p.getX());    
   }
}

Fehlermeldung:Compiliere C:\Dokumente und Einstellungen\Torben\Eigene Dateien\PunktSchnittstellen.java mit Java-Compiler
PunktSchnittstellen.java:9:8: duplicate class: PunktSchnittstellen
public class PunktSchnittstellen implements PunktSchnittstellen
^
1 error

Warum ist das falsch kann mir jemand mal den korrekten qellcode senden?
 

Javafan12

Aktives Mitglied
Mach ich funktioniert immer noch nciht. Kann mir mal jemand einfach den richtigen Qellcode senden? Weil solangsam denke ich das, dass nich vom Qellcode kommt sondern vom Computer.
 

Mizar

Aktives Mitglied
Ich glaube kaum das es an deinem Computer liegt. In der Fehlermeldung heißt es ja auch:
PunktSchnittstellen.java:9:8: duplicate class: PunktSchnittstellen
Also im Klartext: Das Interface 'PunktSchnittstellen' darf nicht den gleichen Namen haben wie die Klasse 'PunktSchnittstellen'. Und ansonsten siehe nochmals L-ectron-X's Post:
L-ectron-X hat gesagt.:
Du musst die Klasse Punkt in einer eigenen Datei namens Punkt.java speichern.
 

Mizar

Aktives Mitglied
Das Interface und die Klasse haben also voneinander verschiedene Namen und beide stehen jeweils in einer separaten .java-Datei, welche wiederum den Namen des Interface bzw. den Namen der Klasse haben? Gut, dann wäre eine Fehlermeldung nicht schlecht. :)
 

Javafan12

Aktives Mitglied
Compiliere C:\Dokumente und Einstellungen\Torben\Eigene Dateien\P.java mit Java-Compiler
P.java:9:8: duplicate class: P
public class P implements PunktSchnittstelln
^
1 error

Das ist die Fehlermeldung.
Java:
// Datei: P.java

interface P
{
   public int getX();       // Eine Methode, um den x-Wert abzuholen 
   public void setX (int i);// Eine Methode, um den x-Wert zu setzen 
}

public class P implements PunktSchnittstelln
{                                    
   private int x;           //x-Koordinate vom Typ int

   public int getX()        // Alle Methoden der Schnittstelle 
   {                        // Punktschnittstellen müssen in der 
      return x;             // Klasse implementiert werden, wenn die
   }                        // Klasse instantiierbar werden soll.

   public void setX (int i)
   {
      x = i;
   }

   public static void main (String[] args) 
   {                                 
      P p = new P(); // Hiermit wird ein P erzeugt
      p.setX (3);
      System.out.println ("Die Koordinate des Punktes p ist: ");
      System.out.println (p.getX());    
   }
}
Hab das jetzt mal geändert
 

tfa

Top Contributor
Lies die Fehlermeldung: "duplicate class: P"
Der Name P wird für deine Klasse und die Schnittstelle verwendet. Das ist nicht möglich. Benenne eine der beiden um.
 

Javafan12

Aktives Mitglied
Java:
// Datei: P.java

interface P
{
   public int getX();       // Eine Methode, um den x-Wert abzuholen 
   public void setX (int i);// Eine Methode, um den x-Wert zu setzen 
}

public class s implements PunktSchnittstelln
{                                    
   private int x;           //x-Koordinate vom Typ int

   public int getX()        // Alle Methoden der Schnittstelle 
   {                        // Punktschnittstellen müssen in der 
      return x;             // Klasse implementiert werden, wenn die
   }                        // Klasse instantiierbar werden soll.

   public void setX (int i)
   {
      x = i;
   }

   public static void main (String[] args) 
   {                                 
      P p = new P(); // Hiermit wird ein P erzeugt
      p.setX (3);
      System.out.println ("Die Koordinate des Punktes p ist: ");
      System.out.println (p.getX());    
   }
}

Hab ich gemacht trotzdem macht er es nicht. Und eig. müsste das Anfangs Beispiel richtig sein. Weil es ein Beispiel von einem Buch ist.

Fehlermeldung:
Compiliere C:\Dokumente und Einstellungen\Torben\Eigene Dateien\P.java mit Java-Compiler
P.java:9:8: class s is public, should be declared in a file named s.java
public class s implements PunktSchnittstelln
^
P.java:9:27: cannot find symbol
symbol: class PunktSchnittstelln
public class s implements PunktSchnittstelln
^
P.java:25:13: P is abstract; cannot be instantiated
P p = new P(); // Hiermit wird ein P erzeugt
^
3 errors

Obwohl es eig. richtig sein müsste. Kann mir jemand bitte den richtigen Qellcode schicken?
 

Thief

Bekanntes Mitglied
Also:

1.: Interface Schnittstelle -> Dateiname: Schnittstelle.java
2.: Classe Punkt -> Dateiname: Punkt.java (So wie es der Javakompiler auch sagt, wenn du dir die Fehlermeldung mal ansiehst!

3.: public class Punkt implements Schnittstelle

4.: Punkt punkt = new Punkt();
punkt.setX(3);
 

Mizar

Aktives Mitglied
Wobei man aber auch sagen sollte das der Code im allerersten Beitrag korrekt ist, da es nicht verboten ist mehrere Klassen (bzw. Interfaces) innerhalb einer Datei zu speichern, solange nur genau 1 Klasse "public" ist. Offenbar hat die 1. gepostete Fehlermeldung:
Punkt.java:3:1: error while writing PunktSchnittstellen: PunktSchnittstellen.class (Zugriff verweigert)
etwas mit unzureichenden Zugriffsrechten zu tun. Womöglich ist ein (evtl. angegebener) Dateipfad nicht vorhanden oder ein Ordner ist schreibgeschützt. Dennoch ist es meiner Meinung nach ein besserer Stil und übersichtlicher, wenn man pro Datei nur eine Klasse speichert.
 

Javafan12

Aktives Mitglied
Ja die Ordner auf der CD sind schreibgeschützt daran wird es wohl liegen. Obwohl das auch nicht sein kann, weil andere Programme von der schreibgeschützten CD funktionieren. Mmh... so jettzt hab ich den Qellcode falsch geändert. Kann mir aber bitte jemand was zu dem oben richtig geposteten Qellcode etwas sagen?
 

Thief

Bekanntes Mitglied
Falsch geändert würde ich nicht sagen. Wenn du meinen Beitrag mit einbeziehst passt wieder alles....

Hatte mich auch schon gefragt was beim ersten Beispiel falsch ist, aber hatte die Fehlermeldung nicht wirklich gelesen :(

Lösung des Problems ist dann ganz einfach, den oberen Quelltext (also die Source-Datei) auf Festplatte zu kopieren und dann zu kompilieren. Wenn du das tust wirst du feststellen dass im gleichen Ordner zwei .class Dateien entstehen (also die kompilierte Source). Wenn du das auf ner CD versuchst klappt es natürlich nicht, da eine CD ja schreibgeschützt ist....
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Interfaces von Interfaces macht das noch Sinn? Java Basics - Anfänger-Themen 21
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Wozu dient Interfaces? Java Basics - Anfänger-Themen 6
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
U Funktionale Interfaces mit mehreren abstrakten Methoden? Java Basics - Anfänger-Themen 8
M Interfaces Aufgabe Java Basics - Anfänger-Themen 2
I JSON / XML Struktur mit Vererbung / Interfaces Java Basics - Anfänger-Themen 0
I XML und Interfaces aus anderen Projekten Java Basics - Anfänger-Themen 3
8u3631984 Record - Interfaces Java Basics - Anfänger-Themen 4
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
H Sinn von Interfaces Java Basics - Anfänger-Themen 21
B JaxB und Interfaces? Java Basics - Anfänger-Themen 2
M Funktionale Interfaces Java Basics - Anfänger-Themen 3
Kirby.exe Frage zur Verwendung von Interfaces Java Basics - Anfänger-Themen 6
H Frage zu interfaces Java Basics - Anfänger-Themen 1
J Zweck von Interfaces immer noch nicht klar Java Basics - Anfänger-Themen 3
M Klasse erbt von Interfaces Java Basics - Anfänger-Themen 6
T Interfaces in erbenden Klassen Java Basics - Anfänger-Themen 2
T Abstrakte Klasse und Interfaces Java Basics - Anfänger-Themen 12
H Polymorphie Interfaces und statischer Typ Java Basics - Anfänger-Themen 33
T Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 7
F Exceptions in Interfaces Java Basics - Anfänger-Themen 4
F Interface Warum Interfaces? Java Basics - Anfänger-Themen 5
R interfaces Java Basics - Anfänger-Themen 1
B Interfaces Java Basics - Anfänger-Themen 6
A Vererbung/Interfaces/Generics Java Basics - Anfänger-Themen 12
D Interface Wieso Aufruf aller Methoden eines Interfaces? Java Basics - Anfänger-Themen 11
J Interfaces? Java Basics - Anfänger-Themen 32
M Erstellung Interfaces....totale Anfängerfrage Java Basics - Anfänger-Themen 16
S Erste Schritte Innere Klassen und Interfaces Java Basics - Anfänger-Themen 2
J Wofür dienen Interfaces ? Java Basics - Anfänger-Themen 1
Hijo2006 Frage zu Interfaces Java Basics - Anfänger-Themen 21
Hacer Interfaces implementieren Java Basics - Anfänger-Themen 7
H Implementierung eines Interfaces erweitern Java Basics - Anfänger-Themen 13
L Via Interfaces unterschiedliche Klassen ansprechen Java Basics - Anfänger-Themen 8
A Verwendung von Interfaces Java Basics - Anfänger-Themen 7
J Interfaces Java Basics - Anfänger-Themen 15
D Frage bzgl. Interfaces Java Basics - Anfänger-Themen 10
D Interface Verständnisprobleme von Interfaces Java Basics - Anfänger-Themen 5
D Interface Interfaces und abstrakte Klassen implementieren Java Basics - Anfänger-Themen 4
S Rollen verändern, Interfaces austauschen wie? Java Basics - Anfänger-Themen 10
K Interfaces/Klassen etc. Java Basics - Anfänger-Themen 6
F Implementierung von Interfaces -> Problem mit main Java Basics - Anfänger-Themen 12
S Verständnisproblem bei Interfaces Java Basics - Anfänger-Themen 6
I Interface Verständnisfrage Interfaces (Bsp.: Enumeration) Java Basics - Anfänger-Themen 2
M Frage zu Generics in Klassen, Abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 5
O Java Interfaces für andere Programmiersprachen zur Verfuegung stellen? Java Basics - Anfänger-Themen 2
K Interface Generics, Interfaces und Listen - ich bin verwirrt. Java Basics - Anfänger-Themen 7
G Instanzen eines Interfaces erzeugen Java Basics - Anfänger-Themen 7
M Compiler-Fehler Alle Methoden eines Interfaces Implementiert dennoch Fehler Java Basics - Anfänger-Themen 3
V Interface Interfaces und abstrakte Klassen Java Basics - Anfänger-Themen 3
F Best Practice UML/Planung eines Projektes (Klassen, Interfaces, ...) Java Basics - Anfänger-Themen 0
V Vererbung Vererbung, Interfaces und OOP... Java Basics - Anfänger-Themen 10
C Sinn eines Interfaces? Java Basics - Anfänger-Themen 4
A Interface Poymorphismus bei Interfaces Java Basics - Anfänger-Themen 2
Pentalon Eclipse JUNO keine Vorschläge von Methoden bzw. Interfaces der eigenen Klassen Java Basics - Anfänger-Themen 5
R Mehrere Interfaces(Comparable, ...) Java Basics - Anfänger-Themen 2
J Interfaces Abstrakte Klassen Java Basics - Anfänger-Themen 15
D Interfaces und allgemeingültige Methodenaufrufe Java Basics - Anfänger-Themen 6
H Erste Schritte 2 User Interfaces für eine Anwendung Java Basics - Anfänger-Themen 7
S OOP Wann Proxies und Interfaces? Java Basics - Anfänger-Themen 3
M Interface @Inject mit Interfaces? Java Basics - Anfänger-Themen 2
F Interface Unterschied von Attributen und Methoden bei abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 5
V mehrfachvererbung unter interfaces Java Basics - Anfänger-Themen 10
J Interface Wie funktioniert das mit den Interfaces. Ich verstehe es einfach nicht! :( Java Basics - Anfänger-Themen 15
T Interfaces und Implementierungen Java Basics - Anfänger-Themen 12
S Interface mehrere Interfaces Java Basics - Anfänger-Themen 2
M Vererbung Problem bei Interfaces Java Basics - Anfänger-Themen 8
H Dynamische Bindung mit Interfaces und LinkedList Java Basics - Anfänger-Themen 7
F Interfaces Java Basics - Anfänger-Themen 4
M Frage zu Interfaces Java Basics - Anfänger-Themen 3
N Generics und Interfaces Java Basics - Anfänger-Themen 5
D Abstrakte Klassen und Interfaces als Paramter in Funktionen Java Basics - Anfänger-Themen 3
P OOP Aufruf eines Interfaces Java Basics - Anfänger-Themen 4
N OOP Vererbung von Interfaces Java Basics - Anfänger-Themen 12
S Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 2
D Sinn von Interfaces - Wozu? Java Basics - Anfänger-Themen 9
P Frage zu Interfaces Bsp. Java Basics - Anfänger-Themen 9
A Deklarationen in abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 11
R Adapterklassen vs Interfaces Java Basics - Anfänger-Themen 6
P Interfaces -> eins oder mehrere für eine Anwendung? Java Basics - Anfänger-Themen 9
2 Interfaces, Polymorphie und Methoden. Java Basics - Anfänger-Themen 14
A Obstlager Interfaces Java Basics - Anfänger-Themen 7
K Theor. Frage zu Interfaces Java Basics - Anfänger-Themen 30
T Frage zu Interfaces und Abstrakten Klassen Java Basics - Anfänger-Themen 4
L Interfaces Java Basics - Anfänger-Themen 5
J spiel "Gefangenendilemma" Probleme mit Interfaces Java Basics - Anfänger-Themen 8
H Interfaces in java? Java Basics - Anfänger-Themen 2
A OOP Interfaces mit gleichem Methoden Java Basics - Anfänger-Themen 15
T Interfaces: Braucht man abstrakte Klassen eigentlich noch? Java Basics - Anfänger-Themen 3
S Implementierung gegen Interfaces / List, ArrayList, LinkedList Java Basics - Anfänger-Themen 11
D Interfaces / Schnittstellen Java Basics - Anfänger-Themen 8
I Probleme mit Interfaces Java Basics - Anfänger-Themen 4
K Interfaces "Schreibaufwand" Java Basics - Anfänger-Themen 53
I Interfaces Java Basics - Anfänger-Themen 34
bigbasti Warum genau braucht man Interfaces? Java Basics - Anfänger-Themen 10
A Programmieren gegen Interfaces Java Basics - Anfänger-Themen 4
I Frage zu Collection und List Interfaces Java Basics - Anfänger-Themen 2
7 Interfaces - Aufbau Java Basics - Anfänger-Themen 9
G Interfaces mit gleichen Methoden Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben