/* ************************************************************************ * TESTREIHE PAKETBENUTZUNG: * Wie arbeiten verschiedene Programmbestandteile in JAVA zusammen? * * Autorin: Sigrid Wehner * Stand: 14.6.2002 * ----------------------------------------------------------------------- * diese Quelle: Hpex6.java * Bestandteile: * ------------ * Quelle: Hpex6.java Klasse liegt in aktueller Directory,z.B.: * /home/sigrid/hiwi/javatests/ex6/ * 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/ex6/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) * * * Unterpakete: SWjtools.mathele mit: * ------------ ----------------- * * * Java-Syntax zur * Paketbenutzung: * --------------- * // Import der Pakete * import SWjtools.*; * import SWjtools.subtool1.*; * import SWjtools.subtool2.*; * import SWjtools.mathele*; * ACHTUNG: FEHLERMELDUNG * vom Compiler, falls durch * wildcard-import Namens- * konflikte auftreten * * // Konstruktorzeilen: * static SWIO SWIO = new SWIO(); * static SWmathfor SWmathfor = new SWmathfor(); * static A A = new A(); * static B B = new B(); * static C C = new C(); * --> statt dessen auch moeglich, falls .subtool2 * NICHT importiert wurde: * static SWjtools.subtool2.C C = new SWjtools.subtool2.C(); * static Polynom ************************************************************************ */ /** Hpex6:
* Ablauffaehige Klasse, beinhaltet Methode main
* sowie 2 Methoden mit demselben Namen min,
* jedoch unterschiedlichen Parametertypen.
* Benutzt Paket SWjtools und Unterpaket SWjtools.mathele * @author Sigrid Wehner * @version 9.6.2002 */ // Import der Pakete: // ------------------ import SWjtools.*; // import SWjtools.subtool1.A; // nur Klasse A importieren import SWjtools.subtool1.*; // import SWjtools.subtool2.*; import SWjtools.mathele.*; public class Hpex6 { // Instanziierungszeilen: // ---------------------- static SWIO SWIO = new SWIO(); // Klasse SWIO, Namen behalten static SWmathfor SWmathfor = new SWmathfor(); // Klasse SWmathfor, Namen behalten static A A = new A(); // Klassen A,B,C static B B = new B(); // static C C = new C(); static SWjtools.subtool2.C C = new SWjtools.subtool2.C(); static Polynom F = new Polynom(); // Objekt F der Klasse Polynom erzeugen // mit Default Konstruktor /** 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("Hpex6"); SWIO.sterne(); SWIO.writeln ("Test mit Klassen in derselben Quelle und in anderen Directories"); SWIO.writeln ("---------------------------------------------------------------"); 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.leerzeile(); 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 ("Test mit dem Paket SWjtools (Klassen SWIO und SWmathfor)"); SWIO.writeln ("--------------------------------------------------------"); SWIO.leerzeile(); SWIO.writeln("Fakultaetsberechnung (rekursiv):"); SWIO.writeln("--------------------------------"); for (int i=0;i<8;i++) { SWIO.write(i); SWIO.write("! = "); SWIO.writeln(SWmathfor.fakr(i)); } SWIO.leerzeile(); 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(); // Benutzung der Unterpakete SWjtools.subtool1 und SWjtools.subtool2 SWIO.writeln( "Test zur Benutzung der Unterpakete SWjtools.subtool1 und .subtool2"); SWIO.writeln( "------------------------------------------------------------------"); SWIO.leerzeile(); A.halloGer(); B.halloGer(); C.halloWor(); // Benutzung des Unterpakets mathele SWIO.sterne(); SWIO.writeln( "Test zur Benutzung des Unterpakets SWjtools.mathele"); SWIO.writeln( "---------------------------------------------------"); SWIO.leerzeile(); // F ist Nullpolynom, bereits ausserhalb von main erzeugt SWIO.writeln("Polynom F"); SWIO.writeln("---------"); SWIO.write("Grad = "); SWIO.writeln(F.Degree()); F.Display(); SWIO.leerzeile(); // G Polynom 3. Grades, wird erst jetzt in main erzeugt int n=3; double[] a = new double[n+1]; // a[0]=0.001; a[1]=1.0; a[2]=2.0; a[3]=3.0; // a[0]=0.001; a[1]=-1.1; a[2]=2.22; a[3]=-3.333; a[0]=0.001; a[1]=-1.1; a[2]=-2.22; a[3]=-3.33; Polynom G = new Polynom(n,a); SWIO.writeln("Polynom G"); SWIO.writeln("---------"); SWIO.write("Grad = "); SWIO.writeln(G.Degree()); G.Display(); SWIO.leerzeile(); double x=-5.0; for (int i=0; i<=10; i++) { SWIO.write("G("); SWIO.write(x); SWIO.write(")="); SWIO.writeln(G.Pwert(x)); x=x+1.0; } SWIO.sterne(); SWIO.writeln("Jetzt kommen noch die beliebten komplexen Zahlen:"); SWIO.writeln("-------------------------------------------------"); // Erzeuge 4 verschiedene komplexe Zahlen komplex u = new komplex(1,0); komplex v = new komplex(0,1); komplex w = new komplex(-1,0); komplex z = new komplex(0,-1); komplex uv_S = new komplex(); komplex wz_S = new komplex(); komplex uv_P = new komplex(); komplex wz_P = new komplex(); uv_S=uv_S.k_Summe(u,v); wz_S=wz_S.k_Summe(w,z); uv_P=uv_P.k_Produkt(u,v); wz_P=wz_P.k_Produkt(w,z); SWIO.write("komplexe Zahl u = "); SWIO.writeln(u.toString()); SWIO.write("komplexe Zahl v = "); SWIO.writeln(v.toString()); SWIO.write("komplexe Zahl w = "); SWIO.writeln(w.toString()); SWIO.write("komplexe Zahl z = "); SWIO.writeln(z.toString()); SWIO.leerzeile(); SWIO.write("u in Polarkoordinaten = "); SWIO.write("("); SWIO.write(u.k_r()); SWIO.write(" | "); SWIO.write(u.k_phi()); SWIO.write(" bzw. "); SWIO.write(u.k_phi_deg()); SWIO.writeln(" Grad)"); SWIO.write("v in Polarkoordinaten = "); SWIO.write("("); SWIO.write(v.k_r()); SWIO.write(" | "); SWIO.write(v.k_phi()); SWIO.write(" bzw. "); SWIO.write(v.k_phi_deg()); SWIO.writeln(" Grad)"); SWIO.write("w in Polarkoordinaten = "); SWIO.write("("); SWIO.write(w.k_r()); SWIO.write(" | "); SWIO.write(w.k_phi()); SWIO.write(" bzw. "); SWIO.write(w.k_phi_deg()); SWIO.writeln(" Grad)"); SWIO.write("z in Polarkoordinaten = "); SWIO.write("("); SWIO.write(z.k_r()); SWIO.write(" | "); SWIO.write(z.k_phi()); SWIO.write(" bzw. "); SWIO.write(z.k_phi_deg()); SWIO.writeln(" Grad)"); SWIO.leerzeile(); SWIO.write("Betrag von u = "); SWIO.writeln(u.k_Betrag()); SWIO.write("Betrag von v = "); SWIO.writeln(v.k_Betrag()); SWIO.write("Betrag von w = "); SWIO.writeln(w.k_Betrag()); SWIO.write("Betrag von z = "); SWIO.writeln(z.k_Betrag()); SWIO.leerzeile(); SWIO.write("Summe u + v = "); SWIO.write(uv_S.toString()); SWIO.write(" Betrag = "); SWIO.writeln(uv_S.k_Betrag()); SWIO.write("Summe w + z = "); SWIO.write(wz_S.toString()); SWIO.write(" Betrag = "); SWIO.writeln(wz_S.k_Betrag()); SWIO.write("Produkt u * v = "); SWIO.write(uv_P.toString()); SWIO.write(" Betrag = "); SWIO.writeln(uv_P.k_Betrag()); SWIO.write("Produkt w * z = "); SWIO.write(wz_P.toString()); SWIO.write(" Betrag = "); SWIO.writeln(wz_P.k_Betrag()); SWIO.sterne(); SWIO.fuss("Hpex6"); SWIO.leerzeile(); } } class A { public void halloGer () { System.out.println("Klasse A: Hallo Germany! (***this***)"); } public void halloWor () { System.out.println("Klasse A: Hallo World! (***this***)"); } }