1 Java Java 1.1 Java 1) 2) 3) Java OS Java 1.3 4) Java Web Start Web / 5) Java C C++ Java JSP(Java Server Pages) 1) OS 2) 3) 4) Java Write Once, Run Anywhere 5) Java Web Java
2 1 Web Java Android Java 1.2 6) Java Java 7) 6) Java Java (Swing, JavaFX) (JDBC) 7) OS 1.3 Java Java
1.3 3 Java 0 1 1 8) Java Java Java Java 1.1 9)10) Java Java JIT 8) 9) 10) Java Scala Java Java
4 1 1.1 Java / / 11) Hotspot 12) Android Dalvik ART JVM 13) OS API (Application Programming Interface) 14) Java (Just In Time Compiler) 11) JVM(Java Virtual Machine) 12) Java JVM C OS API 13) Java OS Java Java Java 14) Java Java API (Java Application Programming Interface) Java
1.4 5 Java SE (Java Platform Standard Edition) 15) Java Java Java API 1 12 13 17 15) Java SE Java Java EE (Enterprise Edition), Java ME (Micro Edition) 1.4 Java 1995 2010 Java 1998 12 J2SE 1.2(Java2 Platform Standard Edition 1.2) 2004 J2SE 5.0 (Java2 Platform Standard Edition 5.0) 16) 2014 Java SE 8 JavaFX Java SE 8 Java 17) JavaFX GUI Java SE 8 Java SE 8 Java 18) 16) J2SE 1.2, 2 J2SE 5.0 17) cuncurrent J2SE5.0 12 18) Java 1.5 Java Java
6 1 19) JDK JRE (Java Runtime Environment) 20) 2017 6 Java SE OR- ACLE Java Java Platform, Standard Edition (Java SE) 8, http://docs.oracle. com/javase/jp/8/ 21) Java SE API JavaFX API 22) 23) Java 24) UNIX Windows Mac 25) Java SE JDK (Java Development Kit) 19)20) API 21 ) JDK Linux Macintosh Windows 22) Eclipse Java 23 ) Eclipse Eclipse chap02 chap03... 24) Eclipse Java 25) Windows Linux, Mac ( ) cd d cd d d d dir ls -l dir/w ls
2 2.1 1) 100 60 x y 2) 3) 0 4) 2.1 400 400 4) (200, 200) 0 100 144 5 5) Turtle TurtleFrame 6) TurtleFrame Turtle 100 144 1) 2) 7.1 3) 1 1 5) 4 6) Point TurtleGraphics TurtleGraphics chap02 tg Eclipse tg
8 2 2.1 2.2 7) Eclipse package chap02; chap02 5.4 8) 9) / 5.1.4 10) 5 15 11) 3 public class T21 { 3 12) 13) 2.5 56 2.1 T21.java 7) (1) 1 8) / / 9) // 4 16 10) Java 11 ) 12) 13) (2) 2 2.6 3 {
2.2 9 2.1 (T21.java) 1 / / 2 import tg. ; 3 public class T21 { 4 public static void main(string[] args){ 5 TurtleFrame f; // f 6 f = new TurtleFrame(); // TurtleFrame f 7 Turtle m = new Turtle(); // Turtle m 8 Turtle m1 = new Turtle(); // m1 9 f.add(m); // f m 10 f.add(m1); // f m1 11 m.fd(100.0); // m 100 12 m.rt(90.0); // m 90 13 m.fd(150.0); // m 150 14 m1.rt(90.0); // m1 90 15 m1.fd(100.0); // m1 100 16 } 17 } 17 } T21 14) 15) 4 { 16 } T21 public class Java 16 ) (3) 6 TurtleFrame new () 17) TurtleFrame (4) 18) 19) = ; 14) 15) 4.3 16) 4 [] [] 2 17) new () 18) 2.5 (1) 2.8 = 20 )
10 2 19) 20) 7.2.3 21) (;) new TurtleFrame() 6 TurtleFrame f (;) 6 15 (5) 21) ; 5 f TurtleFrame (6) = ; 22) 23) Turtle 9 TurtleFrame 24) 25) 22) 5, 6 1 TurtleFrame f = new TurtleFrame(); 7 Turtle m 23) 8 m1 Turtle m, m1; Turtle m =..., m1 =...; (7) 24 )25)
2.3 11 (8) 26) 9 9 f TurtleFrame add m Turtle f m 27 ). ( 1,..., n ); 28) (,) 1 f m 10 m m1 (200, 200) 0 11 fd Turtle 100.0 100 29) 7.1 m 100 30) 12 rt Turtle m 90 26) 4 27) 28) 29) 100 100.0 30) 100.0 100.0 100 100 2.3 31 )32) 1.3 Java.java 33 ) T21.java chap02 T21.java javac > javac T21.java 31) Eclipse 32) 5.4 33) public 5.4.2
12 2 34) 35) TurtleFrame Turtle 36) Ctrl c OS Eclipse 37) Eclipse Java Eclipse package chap02; 5.4 javac T21.class 34)35) JVM java > java T21 java T21.class main 2.1 TurtleFrame File Quit Speed no turtle Ctrl-c 36) java 2.1 2.1 P20.java T21.java 37 ) 2.4 TurtleFrame Turtle API 38) API 39) Point Turtle- Frame TurtleFrame T21 API 38) API 39) tg TurtleFrame() TurtleFrame (400 400) TurtleFrame(double width, double height) TurtleFrame width height void add(turtle t) Turtle t void remove(turtle t) Turtle t void clear() void addmesh() void addcontrolarea() 10 10 Point getmouseposition() Point
2.4 TurtleFrame Turtle API 13 Turtle tg Turtle() (200, 200) 0 Turtle Turtle(double x, double y, double a) (x, y) a Turtle 57 void fd(double n) n void bk(double n) n void rt(double n) n void lt(double n) n void setcolor(javafx.scene.paint.color nc) nc void setwidth(double width) width 1.0 double moveto(double x, double y) (x, y) (x, y) double moveto(turtle t) t t double moveto(double x, double y, double angle) (x, y) (x, y) angle double getx() x double gety() y double getangle() Turtle clone() void up() void down() boolean isdown() false true void speed(int x) x x =20 static void speedall(int x) 14 3 javafx.scene.paint.color tcolor (Color.LIME) double tscale 0.4 static boolean withturtleall false true true Point tg double x double y x y TurtleFrame Turtle T21.java TurtleFrame add Turtle fd rt 40) static 4 speedall 40) TurtleFrame Turtle
14 2 41) T21.java 42) 2.2 T21.java 13 f TurtleFrame addmesh 15 f clear lt bk (P21.java) 41)42) 2.5 2.2 (1) 4 double Java 300 300.0 2.2 2.2 (T22.java) 1 import tg. ; 2 public class T22 { 3 public static void main(string[] args){ 4 double x = 300.0, y = 200.0, d = 100.0; // double 5 TurtleFrame f = new TurtleFrame(700.0, 500.0); // 6 Turtle m = new Turtle(x, y, 180.0); 7 Turtle m1 = new Turtle(x+d, y+d, 0.0); 8 javafx.scene.paint.color c = new javafx.scene.paint.color(0.8, 0.0, 0.0, 1.0); // 9 m1.setcolor(c); // m1 c 8 10 f.add(m); 11 f.add(m1); 12 m.fd(d); 13 m1.fd(d); 14 m.lt(90.0); 15 m1.lt(90.0); 16 d=d/2; // d d/2 17 m.fd(d); 18 m1.fd(d); 19 m1.moveto(m); 20 } 21 }
2.5 15 43) 2.8 Turtle 44) int double 45) byte short int long 46) float double 47) boolean char 8 7.1 (2) 5 new TurtleFrame 700.0 500.0 new new ( 1,..., n ) 48) TurtleFrame TurtleFrame double n 43) 100.0 200.0 100.0 javafx.scene. paint.color 44) 2 6.1, 9.5 45) 46) 47) 3.1 48) ( 1 1,..., n n ) 49 ) 5 700 500 TurtleFrame f 6 7 6 x, y, 180.0 x, y double double x, y 300.0, 200.0 300.0, 200.0, 180.0 13 (300, 200) 180 Turtle m 7 x+d, y+d 400.0, 300.0 (400, 300) 0 Turtle m1 49) API
16 2 50) setcolor 13 Turtle (3) Java API 8 javafx.scene.paint.color c 1 Java Java API 4.4 15.2 double red green blue 0 1 double 0.0, 0.0, 0.0, 1.0 1.0, 1.0, 1.0, 1.0 0.8, 0.0, 0.0, 1.0 Color c c m1 setcolor 50) 8 9 m1.setcolor(new javafx.scene.paint.color(0.8, 0.0, 0.0, 1.0)); (4) 10 T21.java f, m, m1 16 d = d/2; d d/2 51) d d/2 51) d 0? Java = ; = d 100.0 d/2 50.0 d 52) 100.0 50.0 52 ) 17 100.0 18 12 13 100 200.0 50.0 53) moveto void double 2.7 50 (5) 19 m1 m moveto double Turtle double 53 ) m1 Turtle
2.6 17 54) (6) x, y, d x+d 55 ) (x, y) d 1 4 x, y, d 7 new Turtle(300.0, 300.0, 0.0) 300.0 1 150 56 ) 2.3 T22.java (50, 100) 1 200 (P22.java) 54) 55) 56) 57) *2.4 57 TurtleHouse.java x, y, d, a (x,y) d d/2 a d 2d 2.6 2.2 Java API javafx.scene.paint.color Java API 5.4 javafx.scene.paint.color javafx.scene.paint Color 58) javafx.scene javafx 59) 58) javafx.scene.paint javafx scene 11 59) 5.4
18 2. import. ; 60) 60) import. ; 2.5 2.2 import javafx.scene.paint.color; 61) 61) 8 import javafx.scene.paint.*; Color c = new Color(0.8, 0.0, 0.0, 1.0); 2.5 T22.java (P23.java) T21.java T22.java import tg. ; tg 62) new Turtle() new tg.turtle() 63) 5.4 tg Turtle TurtleFrame 62 )63) 2.7 2.3 (1) 5 d, x, y, a double d double int 100 double int double 64) int d = 100 d = 100.0 d 100.0 7 18 64) double 100.0
2.7 19 2.3 (T23.java) 1 import tg. ; 2 import javafx.scene.paint. ; 3 public class T23 { 4 public static void main(string[] args){ 5 double d = 100, x, y, a; 6 TurtleFrame f = new TurtleFrame(); 7 Turtle m = new Turtle(200, 300, 0); 8 f.add(m); 9 m.fd(d); 10 x = m.getx(); // m x 11 y = m.gety(); // m y 12 a = m.getangle() 45; // m 13 Turtle m1 = new Turtle(x,y,a); // m1 14 f.add(m1); 15 m1.fd(d); 16 Turtle m2 = m.clone(); // m2 17 f.add(m2); 18 m.rt(45); 19 m.fd(d); 20 double newscale = m2.tscale 4; // m2 tscale 4 21 m2.tscale = newscale; // m2 tscale 22 m2.tcolor = new Color(0.0, 1.0, 1.0, 1.0); // m2 23 m2.fd(d); 24 Point p = f.getmouseposition(); 25 m2.moveto(p.x, p.y); 26 } 27 } int 65) 13 Turtle void double Turtle void getx x double 10 m.getx() m x m.getx() 66 ) 65) 55 66) void
20 2 67) m.getangle() double 45 int 7 double int int double double double 68) API void moveto 2.2 19 2.3 25 69) API 70) 4 API static withturtleall 71) tcolor, tscale settcolor settscale Turtle 5.4.2 72) 2 newscale m2.tscale=m2.tscale*4; m x x 11, 12 12 m.getangle() 45 m.getangle() 45 67)68) 13 Turtle 10 13 Turtle m1 = new Turtle(m.getX(), m.gety(), m.getangle() 45); 16 m clone() Turtle (2) Turtle javafx.scene.paint.color tcolor double tscale Turtle tcolor tscale javafx.scene.paint.color double 69)70) 2.2 Turtle tcolor tscale 71). 20 m2 tscale 4 double newscale 21 m2 tscale newscale m2.tscale 0.4 4 72 ) 22 m2.tcolor, m2 tcolor m2 4 m2 m m1
2.7 21 javafx.scene. paint.color (0.0,1.0,0.0) 100.0 200.0 200.0-45.0 (270.7,129.2,45.0) (129.2,129.2,-45.0) javafx.scene. paint.color (0.0,1.0,1.0) m2: (67.9,238.9,-136.5) 2.2 T23 23 2.2 73) Turtle Color red, green,blue 4 24 TurtleFrame getmouseposition x, y Point Point x, y 74) Point p p x, y moveto m2 75) 2.6 Mouse21.java 76)77) 2.7 10 Mouse22.java 73) m m1 tcolor Color Turtle 74) 75) 14 76) up, moveto, down 77) rt(162)
22 2 78) *2.8 13 TurtleFrame Turtle 78) 2.8 79) API 80) Turtle x, y TurtleFrame API Turtle Turtle x, y fd API 5.4.2 79) Turtle fd x y Turtle fd TurtleFrame Turtle fd TurtleFrame 2.1 m Turtle m m1 Turtle m = new Turtle(); Turtle m1 = m; m m1 80) m.fd(100); m1.fd(100);
2.8 23 m m1 81) int x = 50; int y = 20 + 30; int z=x; x yx z 82) Java 83 )84) Turtle 85) null null Turtle m = null; TurtleFrame f = null; null java.lang.nullpointerexception 8.3 86) Turtle TurtleFrame API 81) int 7.1 82) 83) Smalltalk 84) 7.3 85) 2.5 (1) 86) Turtle java 8.3