FH-Unki.de - Studium BWL
BWL-Studium an der FH Giessen
Spenden via PayPal
::: FH-Unki.de? :: Studium :: Literatur :: Forum :: Links :: Infos fuer Ersties :: Diplom :: Kontakt ::.
.:: Skripte :: Lernkarten :: AE :: BPS :: Diplom ::.
.:: BWL 5 :: Externes 2 :: Internes 1 :: Internes 2 :: Recht :: WI :: VWL 1 :: VWL 2 :: VWL 3::.
.:: Java :: Softwareentwicklung :: Datenmodellierung :: Ebusiness :: SAP ::.
Was sind die Eigenschaften von Java?
Java benannt nach einer Kaffeesorte von Bohnen der Insel Java wurde ursprünglich für Konsumerelektronik entwickelt. Es sollte in Haushaltsgeräten, Handys, ... als eine portable Sprache plattformunabhängig funktionieren.
Die Hauptvorzüge von Java sind daher:
Warum Java?
- plattformunabhängig
WORA (write once, run anywhere)
- gilt als sicher
(lässt keine lokalen Zugriffe zu auf den aufrufenden Rechner)
- Sprache des Web
- objektorientiert
(Einheit von Daten und Funktionen, Vererbung)
- Multithreading (Parallelbearbeitung)
- robust, fehlertolerant
(auch bei Fehlern wieterhin laufend)
- verteilte Architektur (jre)


Prinzipien der Objektorientierung:
Grundgedanke ist die Zusammenfassung von Daten und Funktionen (Methoden). Ein Beispiel:
Die Klasse Katze besitzt die Attribute: Fellfarbe, Name, Augenfarbe, ... Sie hat die Methoden: fressen, trinken, Maeuse jagen, ...
Eine Klasse kann wie eine Typdefinition verstanden werden. Klassen können in einer Klassenhierarchie (Vererbungsbeziehung) hierarchisch angeordnet sein. Untergeordnete Klassen (Subklassen) erben Attribute und Methoden der übergeordneten Klassen (Superklassen). Ein Objekt ist eine Ausprägung (=Instanz) einer Klasse.
Die verwandte SE-Methode ist hier UML

- Objektidentität
Jedes Objekt ist eundeutig verifiziert.
Objekt bleibt die ganze Zeit eindeutig identifizierbar im Lebenszyklus mittels einer eindeutigen Referenz. Es hat eine eindeutige Identifizierung (Speicheradresse) während der Lebensdauer.
Objektidentität: Jedes Objekt verfügt während seiner Lebensdauer über eine eindeutige Identität. Diese Identität kann auch nicht durch Änderung des Zustands des Objektes geändert werden.

- Kapselung
Es gibt die Möglichkeit objecte zugriffsabhängig zu gestaltetn (public/private))
Objekt läßt nach außen nur Funktionen durch, aber nicht, wie diese umgesetzt werden. Attribute sind nach außen nicht erkennbar.
Datenkapselung: Die interne Darstellung der Daten eines Objektes und deren Verarbeitung durch die Methoden ist nach außen nicht sichtbar. Daten und Funktionen eines Objektes werden ausschließlich über eine genau definierte Schnittstelle zugänglich gemacht.
Bei der Datenkapselung wird zwischen privaten Methoden, die nach außen gar nicht sichtbar sind, und öffentlichen Methoden unterschieden, die die Aufrufschnittstelle des Objektes nach außen darstellen. Die Attribute eines Objektes dürfen nur durch die Methoden des Objekts selbst, nicht jedoch von außen verändert werden. Die Objekte lassen auf diese Weise nach außen nur erkennen, was sie ausführen können, jedoch nicht, wie die Ausführung erfolgt. In modernen objektorientierten Sprachen gibt es verschiedene Stufen der Kapselung, z.B. private, protected, public etc. Bei geringer Programmierdisziplin (z.B. grundsätzlicher Definition aller Methoden als public) wird die Datenkapselung weitgehend ad absurdum geführt.
- Vererbung
Es herrscht eine strenge Monovererbung. Klassen können voneinander erben und die Unterschiede dann anpassen.
Vererbung: Objekte können Daten und Methoden erben bzw. vererben. Wie das erfolgt wird bei der Modellierung der Klassenhierarchie definiert. Die Vererbung führt bei der Implementierung zu Aufwandsersparnis.

- Polymorphismus
Die Art der Implementierung der Funktion kann individuell sein. Gemeinsame Oberklassen liefern Methoden, jedoch kann es in den Unterklassen Unterschiede in diesen durch Abwandelung geben.
Polymorphismus: Methoden mit gleichem Namen können je nach Kontext, in dem sie aufgerufen werden, verschiedene Reaktionen auslösen, da je nach Stelle in der Klassenhierarchie eine andere Methode „gezogen“ wird
Polymorphismus verleiht objektorientierten Systemen Mächtigkeit, stellt aber auch eine erhebliche Fehlerquelle dar, falls z.B. der Entwickler die Übersicht über die Klassenhierarchie verliert, und nicht klar ist, was bei Aufruf einer Methode mit einem bestimmten Namen überhaupt geschieht.

Wichtige Werkzeuge:
JVM java virtual machine (führt Javaprogramme aus .class)
JAVAC java compiler (wandelt .java in ausführbare .class um)
JAVADOC Dokumentationsprogramm
JAR java archiver (.class Sammler)
Applett Viewer JavaApplett ausserhalb des Browser ansehen



Systematik:
Klassen ist ein abstrakter Begriff von denen die Objekte Instanzen sind.




HelloWorld.java
// Title: Hello World
// Version: 1.0
// Copyright: Copyright (c) 2003
// Author: Andreas Unkelbach
// Company: FH Giessen-Friedberg
// Description: Practise for Systemmessage
public class HelloWorld 
{
  public static void main(String[] args)
  {
  Student stud1 = new Student();

  stud1.setId(1);
  stud1.setName("Andreas Unkelbach");
  stud1.setMatrikel("123456");
  
  System.out.println("Dieses ist ein Test");
  System.out.println(stud1.toString());
  }
}
Student.java
// Title: Hello World _ Studenten
// Version: 1.0
// Copyright: Copyright (c) 2003
// Author: Andreas Unkelbach
// Company: FH Giessen-Friedberg
// Description: Practise for Set and Get

public class Student 
{
 private int id;
 private String name;
 private String fach;
 private String matrikel;

// Get Methoden zur Ausgabe der Werte

public int getId() { return id; }
public String getName() { return name; }
public String getMatrikel() { return matrikel; }

// Set Methoden zum Fuellen der Werte

public void setId(int newId)
{
id = newId;
}
public void setName(String newName)
{
name = newName;
}
public void setMatrikel(String newMatrikel)
{
matrikel = newMatrikel;
}


public String toString()
{
  return id + " " + name + " " + matrikel;
}

}
Datum.java
// Title: Hello World _ Studenten
// Version: 1.0
// Copyright: Copyright (c) 2003
// Author: Andreas Unkelbach
// Company: FH Giessen-Friedberg
// Description: Practise for date analys
public class Datum 
{
  public static boolean isLeapYear(int year)
  {
    return
    ( year % 4 == 0) && // year divisible by 4? and
    ( (year % 100 != 0 ) || // year not divisible by 100 or
    ( year % 400 == 0) ); // year divisible by 400
  }

 public static int lastDayInMonth(int month, int year)
 {
  int lastDayInMonth = 0;
  switch (month)
  {
    case 4:
    case 6:
    case 9:
    case 11: lastDayInMonth = 30;
             break;
    case 2:  lastDayInMonth = ( (isLeapYear(year)) ? 29:28);
             break;
    default: lastDayInMonth =31;
             break;
  }
  return lastDayInMonth;
 }

}
Klausur.java
// Title: Hello World _ Studenten
// Version: 1.0
// Copyright: Copyright (c) 2003
// Author: Andreas Unkelbach
// Company: FH Giessen-Friedberg
// Description: Practise for Loops

public class Klausur 
{

public static void main(String[] args)
{
  int jahr=2004;
  int monat=1;
  int tag=19;
  int lastday = Datum.lastDayInMonth(monat,jahr);


// Uebung Schleifen:

// Teil I: FOR SCHLEIFEN

// Wir wollen alle Tage bis zum Monatsende ausgeben
// Hierzu beziehen wir den letzten Tag des Monats
// aus der Klasse Dateum.


  for ( int temp1=tag;
        temp1<= lastday;
        temp1++)
        {
          System.out.println(temp1 + " " + monat + " " + jahr);
        }

// Selbige Ausgabe, aber maximal 4 Tage lang

  for ( int temp3 = tag, i = 0;
        temp3<= lastday && i < 4;
        temp3++,i++)
        {
          System.out.println(temp3 + " " + monat + " " + jahr);
        }

// Teil II: While Schleifen:
// Alle Tage bis Monatsende



int temp2 = tag;
while(temp2<=lastday)
{
  System.out.println(temp2+ "/"+" "+monat+"/"+jahr);
  temp2=temp2+1;
} 


// Alle Tage bis max. 4
int temp4= tag;
int laufzeit=0;

while (temp4<=lastday)
{
  System.out.println(temp4+"/"+ monat+"/"+jahr);
  temp4 = temp4+1;
  if (++laufzeit == 4) break;
}


} // EO Main

}

Nach oben
© fh-unki.de