1 / 12

Objekt-orienteeritus programmeerimises Klassikirjeldus Klassiväli. Klassimeetod

L8. Objekt-orienteeritus programmeerimises Klassikirjeldus Klassiväli. Klassimeetod Isendiväli. Isendimeetod Isend. Konstruktor. Punkt, sirge, kolmnurk . Loe: Aabits vihik 2 ja vihik 3. Punkt. Punkt tasandil on antud oma kahe koordinaadiga.

Download Presentation

Objekt-orienteeritus programmeerimises Klassikirjeldus Klassiväli. Klassimeetod

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. L8 • Objekt-orienteeritus programmeerimises • Klassikirjeldus • Klassiväli. Klassimeetod • Isendiväli. Isendimeetod • Isend. Konstruktor Punkt, sirge, kolmnurk. Loe: Aabits vihik 2 ja vihik 3.

  2. Punkt Punkt tasandil on antud oma kahe koordinaadiga. Kolm punkti (mis ei asu ühel ja samal sirgel) määravad alati mingi kolmnurga, st on teatud kindla kolmnurga tippudeks. y (1; 2) (5; 1) x (3; -4)

  3. [vt Aabits. Vihik 2] class Punkt{ private double x; private double y; Punkt(double a, double b){//kon x = a; y = b; }//konstruktor . . . public double kaugus(Punkt p){ return Math.sqrt( (x-p.x( ))*(x-p.x( )) + (y-p.y( ))*(y-p.y( ))); }//kaugus . . . public String toString(){ return "("+Test_PS.ümar(x)+ "; " + Test_PS.ümar(y) + ")"; }//toString Punkt privaatsed isendiväljad: x y isendimeetodid: x( ) y( ) veerand( ) kaugus( ) kaugus(Punkt p) kaugus(Sirge s) toString( )

  4. class Test_Punkt{ static Punkt p1 = new Punkt(1.0, 2.0); static Punkt p2 = new Punkt(5.0, 1.0); static Punkt p3 = new Punkt(3.0, -4.0); public static void main(String[] args){ System.out.println("Punktid on:"); System.out.println(p1); System.out.println(p2); System.out.println(p3); väljastadaKolmnurk(); }//main static void väljastadaKolmnurk(){ . . . }//väljastadaKolmnurk }//Test_Punkt Test_Punkt Punkt p1 Punkt p2 Punkt p3 main( ) väljastadaKolmnurk( )

  5. class Test_Punkt{ static Punkt p1 = new Punkt(1.0, 2.0); static Punkt p2 = new Punkt(5.0, 1.0); static Punkt p3 = new Punkt(3.0, -4.0); public static void main(String[] args){ . . . }//main static void väljastadaKolmnurk(){ . . . }//väljastadaKolmnurk }//Test_Punkt Punkt x: 1.0 y: 2.0 Punkt x: 5.0 y: 1.0 Test_Punkt Punkt p1 Punkt p2 Punkt p3 main( ) väljastadaKolmnurk( ) Punkt x: 3.0 y: -4.0

  6. Punkt p2 = new Punkt(5.0, 1.0); Rakendatakse klassi Punkt konstruktorit: Punkt(5.0,1.0) - täidab isendi väljad p2 Isendi kohaviit omistatakse 3. 2. new Punkt teeb koha isendile Punkt x: y: 1. Konstruktor klassis Punkt Punkt(double a, double b){//kon x = a; y = b; }//konstruktor

  7. class Test_Punkt{ static Punkt p1 = new Punkt(1.0, 2.0); static Punkt p2 = new Punkt(5.0, 1.0); static Punkt p3 = new Punkt(3.0, -4.0); public static void main(String[] args){ System.out.println("Punktid on:"); System.out.println(p1);// ehk: System.out.println(p1.toString( )); System.out.println(p2); System.out.println(p3); väljastadaKolmnurk(); }//main static void väljastadaKolmnurk(){ . . . }//väljastadaKolmnurk }//Test_Punkt Isendimeetod klassist Punkt public String toString(){ return "("+Test_PS.ümar(x)+ "; " + Test_PS.ümar(y) + ")"; }//toString Klassimeetod klassist Test_PS public static double ümar(double x){//tagastatake ümar x double arv = Math.pow(10, KOHTI_PEALE_KOMA); return Math.round(x*arv)/arv; }//ümar [vt Aabits. Vihik 2]

  8. static void väljastadaKolmnurk(){ double a = p1.kaugus(p2); double b = p2.kaugus(p3); double c = p3.kaugus(p1); double p = (a + b + c) / 2; System.out.println("Kolmnurga küljed on: "); System.out.println(a + ", " + b + ", " + c); System.out.println("Kolmnurga ümbermõõt on " + 2*p); System.out.println("Kolmnurga pindala on " + Math.sqrt(p*(p-a)*(p-b)*(p-c))); }//väljastadaKolmnurk Isendimeetod klassist Punkt public double kaugus(Punkt p){ return Math.sqrt( (x-p.x( ))*(x-p.x( )) + (y-p.y( ))*(y-p.y( ))); }//kaugus Klassimeetod klassist Math public double sqrt(double arg){ . . . }

  9. java Test_Punkt Punktid on: (1.0; 2.0) (5.0; 1.0) (3.0; -4.0) Kolmnurga küljed on: 4.123105625617661, 5.385164807134504, 6.324555320336759 Kolmnurga ümbermõõt on 15.832825753088922 Kolmnurga pindala on 10.999999999999996 Meetodid main( ), väljastadaKolmnurk( ) kaugus( ), toString( ) ümar( ) sqrt( ) println( ) Klassid Test_Punkt Punkt Test_PS Math System PrintStream

  10. Ülesandeid 1. Muuta peameetodis antud punktide koordinaate. 2. Muuta meetodit Test_Punkt.väljastadaKolmnurk( ) nii, et kolmnurga andmed väljastataks ümardatult. 3. Lisada meetodisse Test_Punkt.väljastadaKolmnurk( ) ka kolmnurga nurkade arvutamine ja väljastamine. [vt ka Aabits. Vihik 3, lk 4] Kontrollida programmi tööd (peameetodit rakendades).

  11. x [vt Aabits. Vihik 2] y Sirge privaatsed isendiväljad: k b isendimeetodid: tõus( ) algordinaat( ) kaugus(Punkt p ) kaugus( ) lõikepunkt(Sirge s) nurk(Sirge s) b k on tõus b on algordinaat tagastatakse k tagastatakse b -”- selle sirge kaugus punktist p -”- selle sirge kaugus nullpunktist -”- selle sirge lõikepunkt sirgega s -”- selle sirge ja sirge s vaheline teravnurk

  12. Sirge privaatsed isendiväljad: k b isendimeetodid: tõus( ) algordinaat( ) kaugus(Punkt p ) kaugus( ) lõikepunkt(Sirge s) nurk(Sirge s) Punkt privaatsed isendiväljad: x y isendimeetodid: x( ) y( ) veerand( ) kaugus( ) kaugus(Punkt p) kaugus(Sirge s) toString( ) Test_PS klassiväljad: Punkt p1 Punkt p2 Sirge s1 Sirge s2 klassimeetodid: ümar( ) main( )

More Related