DOC

Unterschied zwischen Java und C++

By Melvin Ramirez,2014-04-24 14:21
12 views 0
Unterschied zwischen Java und C++

    Unterschiede zwischen Java und C++

1. Applikationen und Applets

    Mit Java kann man Applikationen und Applets erstellen. Im Gegensatz zu

    Applikationen benötigen Applets zur Ausführung einen Container, wie z.B.

    einen Browser. Applets unterliegen gewissen Einschränken.

    Applikationen sind Stand-alone-Programme

2. Funktion main

     in Java gibt es nur Klassen, d.h. keine Anweisung, Funktion oder Deklaration

    außerhalb einer Klasse.

    Darum ist die Hauptfunktion main als Methode einer Klasse zu definieren:

    public class haupt

    {

     public static void main(String[] args)

     {

    

     }

    }

3. imports anstatt includes:

     Bibliotheks-Klassen bzw. ganze Packages werden zu Beginn mit import

    eingefügt:

    import java.util.*;

    import java.io.*:

    ...

4. Die Bytecode und die JVM

    Der Javacompiler erzeugt keinen Maschinencode, sondern einen Bytecode,

    eine Art Zwischencode, der auf allen Systemen identisch ist und dann durch

    die virtuelle Java Maschine (JVM) zur Laufzeit extra übersetzt wird

    5. Felder int[] feld = new int[20];

     sind in Java Objekte:

    Die Klasse Arrays enthält mehrere Funktionen zum Initialisieren, Sortieren,

    Suchen, Vergleichen. Z.B. Arrays.fill (feld,0);

6. Zufallszahlen: Random r = new Random();

    

     zahl = r.nextInt(10);

     dazu benötigt man ein Objekt der Klasse Random.

    Die Klasse Random enthält u.a. die Funktion nextInt(..) zum Erzeugen einer

    Zufallszahl.

7. Strings: String s = new String(“Dienstag”);

     dazu benötigt man ein Objekt der Klasse String.

    Die Klasse String enthält mehrere Funktion zur Stringbearbeitung, u.a. die

    Funktion valueOf zur Umwandlung eines primitiven Datentyps in einen String:

     s = String.valueOf (234.23);

8. Wrapper-Klassen (Hüllklassen):

     sind Klassen, die der Umwandlung dienen:

     Long, Integer, Byte, Short, Float, Double

    4ITA Seite -1- 24.04.2010

    Unterschiede zwischen Java und C++

    Sie alle enthalten die Methode parseInt, welche einen String in eine Zahl

    umwandelt, z.B. int z = Integer.parseInt (“3891“);

    Zusätzlich enthalten sie Methoden zur Umwandlung in andere Datentypen, in andere Zahlensysteme sowie zur Umwandlung der Zahl in einen String

    9. Kommandozeilenparameter:

     werden gespeichert im dynamischen Feld args:

    public static void main(String[] args)

    {

    for (int i=0; i<args.length;i++)

    {

     System.out.println( (i+1) +”Parameter: ” + args[i]);

    }

     }

    10. Exceptionhandling:

     fehlerkritische Anweisungen werden in einem try-Block ausgeführt:

    Tritt ein Fehler auf, wird ein entsprechendes Fehlerobjekt erzeugt, z.B : ArrayIndexOutOfBoundsException, NumberFormatException,

    FileNotFoundException, IOExceptio, uvm.

    Darauf folgend wird der entsprechende catch-Block gesucht und ausgeführt und man vermeidet so einen Programmabsturz.

    try

    {

     for (int i=0; i<args.length;i++)

     {

     summe = summe + Double.parseDouble(args[i]);

     }

    }

     catch (ArrayIndexOutOfBoundsException e)

     {

     System.out.println("Die Feldgrenzen wurden überschritten!!");

     }

     catch (NumberFormatException e)

     {

     System.out.println("Falsches Eingabeformat!!");

     e.printStackTrace();

     }

    11. Streams:

     Für die Dateibearbeitung stehen in Java Klassen für das Byteformat

    (FileInputStream, BufferedInputStream, FileOutputStream, BufferedOutputStream) und

    für das Zeichenformat (FileReader, BufferedReader, FileWriter, BufferedWriter) zur

    Verfügung. Ein File-Objekt wird mit einer Datei verbunden und dem

    Konstruktor der Stream-Klassen übergeben.

     //in Datei schreiben

     File f = new File ("c:\\test.txt",true);

     FileWriter fw = new FileWriter (f, true);

     //oder ohne File-Objekt

     //FileWriter fw = new FileWriter ("c:\\test.txt",true);

     BufferedWriter bufw = new BufferedWriter(fw);

     //für Tastatureingaben

     InputStreamReader ir= new InputStreamReader(System.in);

     BufferedReader tastatur = new BufferedReader(ir);

     String s;

     do

     {

    4ITA Seite -2- 24.04.2010

    Unterschiede zwischen Java und C++

     s=tastatur.readLine();

     if (s.length()==0) break;

     bufw.write(s);

     bufw.newLine();

     } while (true);

     bufw.close();

     fw.close();

     // zur Kontrolle nochmal einlesen:

     FileReader file = new FileReader ("c:\\test.txt");

     BufferedReader In = new BufferedReader(file);

     LineNumberReader li=new LineNumberReader(In);

     String expr = new String();

     while ((expr=li.readLine())!=null)

     {

     System.out.println(li.getLineNumber()+": "+expr);

     }

     file.close();

    12. Klassendefinition

    ? eine Klasse wird definiert mit :

    public class name

    {

? bei der Definition sämtlicher Membervariablen und Methoden wird das

    Zugriffsattribut angegeben:

    public class name

    {

     private int nr;

     public void ausgabe(){…}

     public void eingabe() {…}

    }

    private: nur zugänglich für Methoden der Klasse

    public: uneingeschränkter Zugriff

    protected: nur Subklassen und Klassen aus dem gleichen Package haben

     Zugriff

    ? Membervariablen werden automatisch initialisiert (Zahlen mit 0, boolean mit

    false)

    ? Eine Klasse kann keinen (in dem Fall wird ein Standardkonstruktor

    aufgerufen), einen oder mehrere Konstruktoren enthalten.

    Bei der Definition des Konstruktors gelten die selben Regeln wie in C++

     Enthält eine Klasse mehrere Konstruktoren, ist es üblich einen anderen

     Konstruktor dieser Klasse mit this() oder this(n) aufzurufen.

    ? statische Methoden/Variablen:

     public static void setZins(double z)

     {

     zins=z;

     }

    existieren genau einmal in der Klasse und können mit dem Klassennamen

    angesprochen werden

    ? Garbage Collection

     es gibt keine Destruktoren in Java. Mit Hilfe der Garbage Collection wird nicht

     mehr benötigter Speicherplatz automatisch wieder frei gegeben

    4ITA Seite -3- 24.04.2010

    Unterschiede zwischen Java und C++

    ? Vererbung:

     Eine Klasse wird mit extends von einer anderen Klasse abgeleitet:

    public class CSparkonto extends CKonto

    {

    Die übergeordnete Klasse wird als Super-Klasse bezeichnet, die abgeleitete

    als Sub-Klasse.

    Ein Konstruktor der Super-Klasse wird aufgerufen mit:

     super();

    ebenso werden Funktionen aus der Super-Klasse aufgerufen:

     super.ausgabe();

    ? Abstrakte Klassen:

     abstract public class kreis

     {…

    von einer abstrakten Klasse können keine Objekte erzeugt werden. Sie

    müssen dazu abgeleitet werden. Enthält eine abstrakte Super-Klasse

    abstrakte Methoden (Methoden ohne Funktionsrumpf), müssen diese von den

    Sub-Klassen implementiert werden

    ? Objekte müssen stets mit new erzeugt werden

     CKonto k1 = new CKonto(); 4ITA Seite -4- 24.04.2010

Report this document

For any questions or suggestions please email
cust-service@docsford.com