Title / Description
Code class Complex { public double re, im; // odpowiednik definicji rekordu // re - część rzeczywista liczby zespolonej // im - część urojona liczby zespolonej public double mod() // definicja metody w klasie { return Math.sqrt( this.re*this.re + this.im*this.im ); } // this oznacza dany obiekt w klasie Test bedzie to z.re i z.im public String toString() { return "(" + this.re + ", " + this.im + ")" ; } public Complex coupled() { Complex other; // bufor dla this, zeby nie zmienil other = new Complex(); // swojej wartosci .im //! other = this; // błędne, ustawi 'this' do zmiennej other.re = this.re; // ustawiamy tylko wartości other.im = this.im; other.im = -other.im; return other; } } class Test { public static void main(String[] args) { Complex x, y, z; // x,y,z reprezentuja obiekt klasy Complex x = new Complex(); // tworzy nowy obiekt y = new Complex(); z = new Complex(); x.re = 5.0; x.im = 3.0; y.re = 4.0; y.im = 4.0; System.out.print ( "Liczby zesp.: " + x.toString() ); // do liczby mozna dodac // nie moze byc przecinkow // string, wowczas liczba // w tym nawiasie // staje się stringiem System.out.println( ", " + y.toString() ); System.out.println( "==========================================" ); z.re = x.re + y.re; z.im = x.im + y.im; System.out.println( "suma liczb: " + z.toString() ); z.re = x.re*y.re - x.im*y.im; z.im = x.re*y.im + x.im*y.re; System.out.println( "iloczyn liczb: " + z.toString() ); System.out.println( "modul pierwszej: " + x.mod() ); z = x.coupled(); // tworzy sprzezona do x i wstawia ja // w miejsce z System.out.println( x.toString() + "sprzezona do pierwszej: " + z.toString() ); } } Mamy tutaj zdefiniowane dwie klasy Complex i Test. Zatem po zakończeniu kompilacji do kodu bajtowego otrzymamy dwa pliki z rozszerzeniem .class . Klasa Complex zawiera definicje typu liczby zespolonej, na przykładzie której wykonywać będziemy operacji dodawania, mnożenia, itd. przykładowych liczby zespolonych. W klasie Test znajdują się polecenia wykorzystujące typ i metody zdefiniowane dla klasy Complex. [edytuj] Przykład 3 Plik źródłowy CrashTest2.java : class Vehicle { private String owner; public String model; public int type; //1,2,3 - typy samochodow private int reg; public void setOwner(String s) { owner=s; } public String getOwner() { return owner; } // public String toString() // { return model + ", " + type + "\nReg.No." + reg + // ", wlasnosc: " + owner + "\n"; } public String toString() { return model + ", " + typeToString() + "\nNr " + reg + ", wlasnosc: " + owner + "\n"; } private static int count=1000; /* poniewaz jest static, z kazdego obiektu nastepuje odwolanie do tej samej komorki pamieci */ Vehicle() { reg = count++; } // konstruktor klasy private String typeToString() { if (type == 1) return "rower"; else if (type == 2) return "motocykl"; else if (type == 3) return "auto"; else return "NIEZNANY!"; } } class CrashTest2 { public static void main(String[] args) { Vehicle v1 = new Vehicle(); Vehicle v2 = new Vehicle(); Vehicle v3 = new Vehicle(); v1.model = "Syrena 105 Turbo"; v1.type = 3; v1.setOwner("Jan Kowalski"); System.out.println(v1); v2.model = "Harley D., 1965"; v2.type = 2; v2.setOwner("Crazy Jackill"); System.out.println(v2); v3.model = "Romet Wigry 3"; v3.type = 1; v3.setOwner("John Brown"); System.out.println(v3); } }
Author
Highlight as C C++ CSS Clojure Delphi ERb Groovy (beta) HAML HTML JSON Java JavaScript PHP Plain text Python Ruby SQL XML YAML diff code