/* ************************************************************************ * TESTREIHE PAKETBENUTZUNG: * Wie arbeiten verschiedene Programmbestandteile in JAVA zusammen? * * Autorin: Sigrid Wehner * Stand: 6.6.2002 * ----------------------------------------------------------------------- * diese Quelle: Hpex4b.java * Bestandteile: * ------------ * Quelle: Hpex4b.java Klasse liegt in aktueller Directory,z.B.: * /home/sigrid/hiwi/javatests/ex4b/ * int min Methode - dieselbe Quelle - * long min Methode - dieselbe Quelle - * main Methode - dieselbe Quelle - * * benoetigt: Klamax.class Klasse ebenso in AKTUELLER Directory * int max Methode - aus Klasse Klamax - * long max Methode - aus Klasse Klamax - * * Klaspann.class Klasse liegt in einer ANDEREN Directory * z.B. im Unterverzeichnis ./unterdir * also im Pfad: * /home/sigrid/hiwi/javatests/ex4b/unterdir * int spann Methode - aus Klasse Klaspann - * long spann Methode - aus Klasse Klaspann - * * Klaxquer.class Klasse liegt in einem Verzeichnis, das * durch die Umgebungsvariable * $CLASSPATH bekannt ist * hier z.B.: * /home/sigrid/SWJLIB/ * benutzt * Packages: * --------- * SWjtools Package --> es existiert ein Unterverzeichnis * -------- mit diesem Namen in einem mittels * CLASSPATH definiertem Pfad; * in diesem Unterverzeichnis liegen * die zum Paket gehoerenden * Klassen, in diesem Beispiel: * * SWIO.class Klasse SW's I/O-Routinen fuer Java * mit folgenden * Methoden: * void fuss(String s) * void kopf(String s) * void leern(int n) * void leerzeile() * String promptAndReadString(String s) * char promptAndReadChar(String s) * int promptAndReadInt(String s) * double promptAndReadDouble(String s) * void sterne() * void write(String s) * void write(int i) * void write(double z) * void writeln(String s) * void writeln(int i) * void writeln(double z) * boolean yesno(String s) * * SWmathfor. Klasse SW's mathematische Formeln * class mit folgenden * Methoden: * long faki(int n) * long fakr(int n) * int fiboi(int n) * int fibor(int n) * * Hpex4b ist identisch mit Hpex4a bis auf den Unterschied, dass * bei Konstruktion neuer Objekte der Klassen SWjtools.SWIO * und SWjtools.SWmathfor der Klassenname aus dem Paket * beibehalten wird. * * Java-Syntax zur * Paketbenutzung: * --------------- * // Import des Pakets SWjtools * import SWjtools.*; * // Jetzt ist die import-Zeile ZWINGEND, * // da in der Konstruktorzeile nur der Klassenname * // verwendet wird: * * // Instanziieren, Objekt erzeugen innerhalb der Klasse, * // aber ausserhalb von main * // unter Beibehaltung des vom Package vorgegebenen * // Klassennamens SWIO bzw. SWmathfor * static SWIO SWIO = new SWIO(); * static SWmathfor SWmathfor = new SWmathfor(); * * // Methoden benutzen, z.B.: * SWIO.writeln(hierformeln.fakr(i)); * ************************************************************************ */ /** Hpex4b:
* Ablauffaehige Klasse, beinhaltet Methode main
* sowie 2 Methoden mit demselben Namen min,
* jedoch unterschiedlichen Parametertypen.
* Benutzt Paket SWjtools * @author Sigrid Wehner * @version 6.6.2002 */ // Import des Pakets SWjtools import SWjtools.*; // alle Klassen des Pakets SWjtools // stehen zur Verfuegung // import SWjtools.SWIO; // nur Klasse SWIO // import SWjtools.SWmathfor; // nur Klasse SWmathfor; public class Hpex4b { // Instanziierung fuer ein Objekt der Klasse SWIO, heisst jetzt lokal: SWIO // Ab jetzt koennen alle Methoden der Klasse SWIO aus dem Paket SWjtools // angesprochen werden durch ---> SWIO.methoden_name // Instanziierung fuer ein Objekt der Klasse SWmathfor, // heisst jetzt lokal: SWmathfor. Methodenaufruf also durch: // ---> SWmathfor.methoden_name static SWIO SWIO = new SWIO(); static SWmathfor SWmathfor = new SWmathfor(); /** Sucht Minimum von 2 Integer-Zahlen * @param i erste Integerzahl * @param j zweite Integerzahl * @return Minimum der beiden Zahlen */ static int min (int i, int j) { if (i < j) return i; return j; } /** Sucht Minimum von 2 Long-Zahlen * @param i erste Longzahl * @param j zweite Longzahl * @return Minimum der beiden Zahlen */ static long min (long i, long j) { if (i < j) return i; return j; } /** Hauptprogramm */ public static void main (String args []) { long along=22l, blong=999l; int aint=33, bint=44; //SWIO SWIO.kopf("Hpex4b"); System.out.print(" 2 Integer-Zahlen sind: "); System.out.print(aint); System.out.print(" und "); System.out.println(bint); System.out.print(" 2 Long-Zahlen sind : "); System.out.print(along); System.out.print(" und "); System.out.println(blong); //SWIO SWIO.sterne(); System.out.print("MINIMUM --> Ergebnis von Methode int min (int, int) : "); System.out.println (min(aint,bint)); // diese Quelle, diese Klasse System.out.print("MINIMUM --> Ergebnis von Methode long min (long,long): "); System.out.println (min(along,blong)); // diese Quelle, diese Klasse System.out.println(); System.out.print("MAXIMUM --> Ergebnis von Methode int max (int, int) : "); System.out.println (Klamax.max(aint,bint)); // andere Klasse, aktueller Pfad System.out.print("MAXIMUM --> Ergebnis von Methode long max (long,long): "); System.out.println (Klamax.max(along,blong)); // andere Klasse, aktueller Pfad System.out.println(); System.out.print("SPANNWEITE --> fuer die beiden Integer-Zahlen : "); System.out.println (Klaspann.spann(aint,bint)); // andere Klasse, anderer Pfad System.out.print("SPANNWEITE --> fuer die beiden Long-Zahlen : "); System.out.println (Klaspann.spann(along,blong)); // andere Klasse, anderer Pfad System.out.println(); System.out.print("MITTELWERT --> fuer die beiden Integer-Zahlen : "); System.out.println (Klaxquer.xquer(aint,bint)); // andere Klasse im CLASSPATH System.out.print("MITTELWERT --> fuer die beiden Long-Zahlen : "); System.out.println (Klaspann.spann(along,blong)); // andere Klasse im CLASSPATH //SWIO, SWmathfor SWIO.sterne(); SWIO.writeln("Fakultaetsberechnung (rekursiv):"); SWIO.writeln("--------------------------------"); for (int i=0;i<8;i++) { SWIO.write(i); SWIO.write("! = "); SWIO.writeln(SWmathfor.fakr(i)); } SWIO.sterne(); SWIO.writeln("Fibonacci-Zahlen (iterativ):"); SWIO.writeln("--------------------------------"); for (int i=1;i<8;i++) { SWIO.write(i); SWIO.write(". Fibonacci-Zahl = "); SWIO.writeln(SWmathfor.fiboi(i)); } SWIO.sterne(); SWIO.fuss("Hpex4b"); SWIO.leerzeile(); } }