Frage zwischen Java und C++

IcocaI

Mitglied
Hallo an Allen da draußen,
ich bin seit ca. 2 Wochen mit Java beschäftigt und habe nun meine erste Frage ^^ ...

Vorher hab ich mit C++ gearbeitet. Wenn man ein Projekt erstellt hat, dann wurde einmal eine Header-Datei (.h) und eine CPP-Datei (.cpp) erstellt ... also z.b. eine Klasse, wo die Attributen und Methoden hinzugefügt werden. Für die Methoden hat man dann eine CPP-Datei erstellt und da die ganzen Methoden hineingeschrieben, was die genau machen sollen. In der Main hat man dann natürlich das Hauptprogramm geschrieben. So ... nun zum Groben Beispiel:

Test.h
Code:
public class Test
           {
                  int bla;
                  Test();
           };
Test.cpp
Code:
           #import "Test.h"
           Test::Test()
           {
                 mache irgendwas;
           }
main.cpp
Code:
           #import <iostream.h>
           #import "Test.h"
          
          void main (void)
         {
                    mache lalala;
         }

=====================================================

Ich hoffe man kann sehen was ich meine ^^ ... Meine Frage ist nun kann man in Java sowas ähnliches machen? Sprich eine Header-Datei anlegen das wäre in Java dann was ich bis jetzt kenne Test.java und eine CPP-Datei für die ganzen Methoden der Header-Datei. Wäre die Datei-Endung dann auch .java? Und wie muss ich die Datei mit den Methoden zu der Header-Datei einbinden? In C++ war das ja #import "Test.h" ... da kam ich einmal mit c++ ganz gut klar und schon muss ich eine neue Sprache neu erlernen ^^ ...

ich denke wahrscheinlich noch zuviel in c++ nach :rolleyes:

Mit freundlichen Grüßen
IcocaI
 
Hi,

in c++ muss man die Header Dateien definieren, damit der Compiler weiß, welche Eigenschaften bestimmte Klassen oder cpp-Dateien haben.

In Java muss man Methoden nicht mehr vor ihrem Aufruf in Header-Dateien deklarieren.

Also ein:

Code:
public class Test {

                 public static void main(String[] args) {
                         new Test().test();
                 }

                 int bla;
                  
                 void test() {
                     // do something;                  
                }
           };


reicht hier völlig.
 
Hier mal 2 Java Klassen mit Grundlegen funktionen.
Das meiste sollte selbst erklärent sein:

Java:
package test;
//gibt an in welchem Paket die klasse liegt

public class Test {

	public static void main(String[] args) {
		// Diese Methode startet von selbst
		
		System.out.println("Dieser Text wird auf der Console ausgegeben");
		
		//Eine Instanz unserer 2. Klasse anlegen:
		EineWeiterKlasse ewk = new EineWeiterKlasse();
		
		String s = ewk.getString();
		System.out.println("Die Klasse EineWeiterKlasse gibt mir einen String der lautet: "+s);
		
		int a = ewk.getInt();
		System.out.println("Die Klasse EineWeiterKlasse gibt mir einen Integer mit dem Wert: "+a);
		
		int summe = ewk.addieren(5, 5);
		System.out.println("Die Summe aus 5 und 5 ist: "+summe);
	}
}

Und der Code der "Weiteren Klasse" die oben genutzt wird

Java:
package test;

public class EineWeiterKlasse {
	public String getString() {
		// Diese Methode gibt einen String zurück
		String s = "TEXT";
		return s;
	}

	public int getInt() {
		// Diese Methode gibt eine Integer zurück
		int i = 5;
		return i;
	}

	public int addieren(int a, int b) {
		// Diese Methode nimmt 2 Integer entgegen und gibt einen Integer zurück
		int c = a + b;
		return c;
	}
}
 
die beiden klassen müssen lediglich im gleichem paket liegen. Importanweisungen sind dann nicht notwendig!
Klassen die außerhalb des eigenen Paktes liegen werden wiefolgt eingebunden:

Java:
import java.util.*;
 
Hallo Johannes,

im großen und ganzen hast Du schon Recht!
Es hängt im Endeffekt vom Aufbau Deiner Packages ab, ob und wie Du importieren musst!

Beispielsweise ist folgendes synonym:
Code:
import java.io.BufferedWriter;
import java.io.IOException;
Code:
import java.io.*;

Und, nur um mal so richtig Haare zu spalten: Du schreibst bei Deiner main-Methode:
... diese Methode startet von selbst ...

Na, dass will ich doch nicht hoffen :D
main ist immer der zentrale Einstiegspunkt in Dein Programm!!
Sie wird genau so an expliziter Stelle aufgerufen, wie bei C/C++ !!

Gruß
Klaus
 
danke für die schnelle antworten ... hat mir geholfen dass zu verstehen ... ist etwas anders aber auch nicht ganz ^^ naja dazwischen halt :P danke
 
Zurück