java.Промышленное программирование
TRANSCRIPT
-
.. , ..
Java .
2007
-
004.434 32.973.26-018.2
69
:
, - .. ,
, . , - ..
:
, - .. , , ..
, ..
69 Java. : . / .. , .. . : , 2007. 704 .
ISBN 978-985-6699-63-7
, - Java SE 6 J2EE. Java - . Java, , , - , L. - , JSP, .
-. , HTML, XML, JavaScript, Struts Hibernate , J2EE XML.
004.434
32.973.26-018.2
.., .., 2007
ISBN 978-985-6699-63-7 . , 2007
-
............................................................................................................... 10
1. JAVA
1. ................................................. 11
2. ........................................................ 27
3. .................................................................................................. 50
4. .............................................. 78
5. ......................................................... 105
6. ...................................... 139
2.
7. ............................................................................. 160
8. ............................................................... 190
9. . / ................................................ 205
10. ......................................................................................... 229
11. ........................ 259
12. .............................................................................................. 275
13. ............................. 287
14. ................................................................... 328
15. .................................................................... 350
16. XML & JAVA ......................................................................................... 364
3. WEB-
17. JSP ........................................................ 414
18. ............................................................................................ 426
19. JAVA SERVER PAGES ......................................................................... 446
20. JDBC ....................................................................................................... 479
21. C, .................................................... 504
22. ............................................................. 523
....................................................................................... 536
1. TML ............................................................................................. 552
2. JavaScript ........................................................................................ 574
3. UML ............................................................................................... 599
4. SQL .............................................................. 608
5. Hibernate ............................................................................................. 625
6. Struts ............................................................................................... 645
7. (Logger) ........................................................ 667
8. Apache Ant ..................................................................................... 676
9. ....................................................................................... 690
............................................... 703
-
............................................................................................................... 10
1. JAVA
1. ............................................. 11 ................................................................... 11 Java ........................................................................................... 14 5.0 6.0 ........................................................ 15 ........................................................................ 16 ............................................................................. 19 .......................................................................... 20 .............................................................................................. 21 ................................................................................. 23 1 ............................................................................... 24 1 .............................................................. 25
2. ..................................................... 27 ................................................... 27 ................................................................... 29 ......................................................................................... 31 - .............................................................................. 34 ..................................................................... 37 ............................................................................................. 39 th ......................................................................................... 43 ................................................................ 44 2 ............................................................................... 47 2 .............................................................. 49
3. .................................................................................................. 50 ..................................................... 50 ........................................................................ 51 .................................................................................... 52 .............................................................................................. 54 ............................................................. 55 final ............................................................................ 56 ........................................................................ 57 native .......................................................................... 57 synchronized .............................................................. 57 ............................................................................. 58 .......................................................................... 59 ............................................................. 60 ............................................................ 65 .................................... 65 .................................................................................... 67 ......................................................................................... 70 3 ............................................................................... 72 3 .............................................................. 76
-
4. ........................................... 78 .................................................................................... 78 final .......................................................................... 81 super this ............................................................... 82 .................................... 83 ............................................................................ 86 ...................................................... 86 .............................................. 88 .................................................. 89 Object ....................................................................................... 91 ................................................................... 95 ................................... 97 4 ............................................................................... 99 4 ............................................................. 102
5. ...................................................... 105 GRASP ................................................. 105 Expert .................................................................................. 105 Creator ................................................................................ 107 Low Coupling ..................................................................... 108 High Cohesion .................................................................... 111 Controller ............................................................................ 113 GoF ...................................................... 114 ................................................................. 115 Factory ................................................................................ 115 AbstractFactory ................................................................... 117 Builder ................................................................................ 120 Singleton ............................................................................. 122 .................................................................... 123 Bridge ................................................................................. 123 Decorator ............................................................................ 125 ........................................................................ 127 Command ............................................................................ 128 Strategy ............................................................................... 131 Observer .............................................................................. 133 ...................................................... 135 5 .............................................................................. 137 5 ............................................................. 137
6. ................................. 139 ...................................................................................... 139 .............................................................................................. 142 ........................................................................ 145 .......................................................................... 146 (inner) .............................................................. 147 (nested) ............................................................. 152 (anonymous) .................................................... 153 6 .............................................................................. 156 6 ............................................................. 158
-
2.
7. ........................................................................... 160 String ....................................................................................... 160 StringBuilder StringBuffer ................................................ 165 .................................................................... 167 ............................................................. 173 ................................................................... 174 ......................................................... 178 ........................................................... 181 ............................................................... 182 7 .............................................................................. 184 7 ............................................................. 188
8. ............................................................ 190 ...................................................... 190 throw ................................................................................. 195 finally .................................................................... 197 ............................................................... 198 ........................................................... 199 assertion ..................................................... 201 8 .............................................................................. 202 8 ............................................................. 203
9. . / ............................................. 205 File .......................................................................................... 205 / .............................. 207 .............................................................. 212 ................................................................... 214 ............................................................................................. 218 Scanner ................................................................................... 219 ........................................................................................ 222 9 .............................................................................. 226 9 ............................................................. 227
10. ...................................................................................... 229 ......................................................................... 229 .............................................................................................. 231 Deque ................................................................................................. 239 ........................................................................................ 240 ......................................................................... 245 ............................................................ 249 Collections .............................................................................. 250 Arrays ..................................................................................... 253 10 ............................................................................ 255 10 ........................................................... 257
11. ................ 259 ................................................................ 259 ............................................................................................ 261 ............................................................................................. 270 11 ............................................................................ 272 11 ........................................................... 273
-
12. ............................................................................................ 275
........................................................................... 275
- ............................................................................. 281
12 ............................................................................ 284
12 ........................................................... 285
13. ....................... 287
................................................................. 287
..................................................................... 293
JavaBeans ............................................... 318
13 ............................................................................ 325
13 ........................................................... 326
14. ................................................................ 328
Thread Runnable ............................................... 328
................................................................. 329
............................... 330
...................................................................... 331
- ................................................................................ 333
............................................. 335
synchronized ....................................................................... 337
synchronized ................................................................. 340
............................................................................. 342
J2SE 5 ................................................................................ 344
14 ............................................................................ 347
14 ........................................................... 348
15. ................................................................ 350
....................................................................... 350
TCP/IP ................................. 354
............................................................................. 356
UDP ......................................................... 359
15 ............................................................................ 361
15 ........................................................... 362
16. XML & JAVA ........................................................................................ 364
DTD ................................................................................................... 367
XSD ........................................................................................ 370
XML- ............................................................................ 380
SAX- ............................................................................ 381
........................................................................ 388
Xerces ................................................................................................ 388
JDOM ................................................................................................ 392
StAX .................................................................................................. 399
XSL .................................................................................................... 404
.............................................................. 407
16 ............................................................................ 408
16 ........................................................... 412
-
3. WEB-
17. JSP .................................................... 414
................................................................................ 414
................... 416
JSP ........................................................................................ 419
JSP ...................................................... 421
17 ............................................................................ 424
17 ........................................................... 424
18. .......................................................................................... 426
ServletContext ................................................................ 426
ServletConfig ................................................................. 427
ServletRequest HttpServletRequest .......................... 428
ServletResponse HttpServletResponse ..................... 432
........................................................................... 432
............................................................................. 436
........................................................................... 439
18 ............................................................................ 443
18 ........................................................... 444
19. JAVA SERVER PAGES ....................................................................... 446
action ......................................................... 447
JSP- .................................................................................... 449
JSTL ................................................................................................... 451
............................................................................. 453
JSTL core ............................................................................................ 454
JSTL fmt ........................................................................................... 458
JSTL sql ............................................................................................. 461
JSTL xml ........................................................................................... 461
........................................................................ 462
........................................................................... 463
............................................................ 465
JSP .................................. 467
19 ............................................................................ 476
19 ........................................................... 477
20. JDBC ....................................................................................................... 479
, ................................................... 479
MySQL ................................................................................... 481
........................................... 482
...................................................................................... 485
....................... 486
....................................................................................... 489
............................................................................ 493
............................................................................... 495
20 ............................................................................ 497
20 ........................................................... 502
-
21. C, ............................................... 504
() .................................................................................. 504
Cookie ................................................................................................ 509
.......................................................................... 512
............................................................................................ 516
21 ............................................................................ 519
21 ........................................................... 521
22. ........................................................ 523
....................................................................................... 523
.............................................................................. 526
........................................................................................ 528
action ............................................................................... 531
22 ............................................................................ 533
22 ........................................................... 534
....................................................................................... 536
1. HTML ............................................................................................. 552
2. JavaScript ........................................................................................ 574
3. UML ............................................................................................... 599
4. SQL .............................................................. 608
5. Hibernate ............................................................................................. 625
6. Struts ............................................................................................... 645
7. (Logger) ........................................................ 667
8. Apache Ant ..................................................................................... 676
9. ....................................................................................... 690
............................................... 703
-
Java 2. , 2005 . Java SE 6 J2EE.
, - - , EPAM Systems, Sun Microsystems Java. Java , - Java .
, , . Java-, . , - , Java-. . , .
. - Java - -. , , XML. - - , JSP , - .
. - .
, - HTML , Java-, - Struts Hibernate , Apache Ant .
EPAM Systems: UML ; - SQL ; XML&Java Struts Hibernate ; Apache Ant - ; JavaScript .
-- . , .
-
1. JAVA
, Ja-va - .
1
- , . - . . , - . , - .
- (), . .
, -
, . .
, -
. - -
, :
( ), -
, , . - , . - , .
. . , -
. .
() ( , ).
-
. 1.1. ()
, :
. 1.2.
- :
- ;
- ;
- ;
- ;
- . (encapsulation) , , -
, . -, .
Tank
- cannon: int - model: String - speed: int
+ go() : void + init() : void + repair() : void + shoot() : void
-
(inheritance) ,
. , -
,
.
:
( )
();
( Java -
).
UML:
. 1.3.
Auto , Tank .
(polymorphism) ,
,
.
. -
, .
- ,
, .
-
. , -
, -
.
: ,
.
. ,
. ,
. ,
( ) .
Auto
Tank
-
Java
- Java, Sun Microsystems, - . Java -, Web- , . - , . JavaScript.
Java , - ++. J2SE 1.5.0 () Java SE 6 () Java /++/#. ( ++) , , . - . Java , , -.
Java , - , -, , . , , JVM (Java Virtual Machine) .
Java (heap) , , , (stack). , C++. , Java - , - . , Java , , , . JVM , . Java : - . - ( ),
new.
Java- - - (h-) . - ++, , , . Java- - .
-
Java , -
C++. Java
typedef, ( char), -
. Java ,
( ), -
goto const, -
.
Java:
abstract continue for new switch
assert default goto package synchronized
boolean do if private this
break double implements protected throw
byte else import public throws
case enum instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp volatile
const float native super while
, Java : null, true, false,
.
: const, goto.
5.0 6.0
J2SE 5.0 -
:
;
;
-;
;
;
;
/;
;
;
Unicode 4.0;
, . Java SE 6 , -
.
:
Scripting API;
-
Java-XML Web Service (JAX-WS)
Web 2.0;
, -
-;
java.awt.Desktop API;
: , SystemTray TrayIcon;
Java Foundation Classes (JFC) Swing;
Java-XML Binding (JAXB 2.0);
JDBC 4.0.
.
// # 1 : : First.java package chapt01;
public class First {
public static void main(String[] args) {
// System.out.print(" ");
System.out.println(" !");
}
}
, -
:
/* # 2 : - :
FirstProgram.java */ package chapt01;
public class FirstProgram {
public static void main(String[] args) {
// firstObject MustangLogic firstObject = new MustangLogic();
// , firstObject.jumpMustang();
}
}
// # 3 : : MustangLogic class MustangLogic {
public void jumpMustang() {//
// System.out.println(" !");
}
}
-
FirstProgram ,
main(), Java
. main() -
- String[] args,
, (public) . ,
main() . static -
, , . -, ++. main()
MustangLogic firstObject = new MustangLogic();
firstObject.jumpMustang();
" !"
println() (ln ) out
System,
java.lang.
FirstProgram.java ( .java ), -
. package chapt01;
chapt01,
. , , . package ,
. ( - ), -.
2 3 FirstProgram.java.
. -
( chapt01):
javac chapt01/FirstProgram.java
FirstProgram.class
Mustang.class. -
Java:
java chapt01.FirstProgram
FirstProgram.class
chapt01, .
, - , java.sun.com. -
. JDK ( Windows) c:\jdk1.6.0, , Java
, - LASSPATH :
LASSPATH=.;c:\jdk1.6.0\
-
. -
, :\temp,
.
-
, PATH
PATH=c:\jdk1.6.0\bin
javac.exe
java.exe. JDK -
.
,
. - , . -
, . -
.
main(). , -
,
String[] args. args[0] ..
args.length.
/* # 4 : : OutArgs.java */ package chapt01;
public class OutArgs {
public static void main(String[] args) {
for (String str : args)
System.out.printf("A-> %s%n", str);
}
}
Java 5.0 for
Java printf(). -
for (int i = 0; i < args.length; i++)
System.out.println("A-> " + args[i]);
:
java chapt01.OutArgs 2007 Mustang "Java SE 6"
:
-> 2007
-> Mustang
-> Java SE 6
, , -
.
-
Java , , - . C++: ; , - , ; inline,
C++ , ; public, private,
protected , ,
, , ++; private,
. :
[] class [extends ]
[implements _]{/* */}
public ( -
), final ( ), abstract
( , -). (friendly). . friendly - . , - .
,
extends, , -
implements. -
, .
// # 5 : Java Beans : User.java package chapt01;
public class User {
public int numericCode;// private String password;
public void setNumericCode(int value) {
if(value > 0) numericCode = value;
else numericCode = 1;
}
public int getNumericCode() {
return numericCode;
}
public void setPassword(String pass) {
if (pass != null) password = pass;
else password = "11111";
}
public String getPassword() {
//public String getPass() {// return password;
}
}
-
User numericCode password,
public private. password -
, setPassword(). numericCode -
User. public- -
.
/* # 6 : , : UserView.java : Runner.java */ package chapt01;
class UserView {
public static void welcome(User obj) {
System.out.printf("! : %d, : %s",
obj.getNumericCode(), obj.getPassword());
}
}
public class Runner {
public static void main(String[] args) {
User user = new User();
user.numericCode = 71;// -
// user.password = null; //
user.setPassword("pass"); // UserView.welcome(user);
}
}
- :
! : 71, : pass
.
. new , :
User user; //
user = new User(); //
:
User user = new User();/* */
new , -
, . , .
, .
, , equals(). -
Object,
- .
-
/* # 7 : : ComparingStrings.java */ package chapt01;
public class ComparingStrings {
public static void main(String[] args) {
String s1, s2;
s1 = "Java";
s2 = s1; // System.out.println(" "
+ (s1 == s2)); // true
// s1 += '2';
// s1-="a"; //,
// s2 = new String(s1);
System.out.println(" "
+ (s1 == s2)); // false
System.out.println(" "
+ s1.equals(s2)); // true }
}
System.in -
. -
-
, ,
.
// # 8 : System.in : DemoSystemIn.java package chapt01;
public class ReadCharRunner {
public static void main(String[] args) {
int x;
try {
x = System.in.read();
char c = (char)x;
System.out.println(" : " + c + " =" + x);
} catch (java.io.IOException e) {
e.printStackTrace();
}
}
}
-
IOException,
/ -
, main()
try-catch.
-. .
// # 9 : : ReadCharRunner.java package chapt01;
import java.io.*;//
public class ReadCharRunner {
public static void main(String[] args) {
/* System.in InputStreamReader */ InputStreamReader is =
new InputStreamReader(System.in);
/* , */
BufferedReader bis = new BufferedReader(is);
try {
System.out.println(
" :");
/* ; readLine() try */
String name = bis.readLine();
System.out.println(", " + name);
} catch (IOException e) {
System.err.print(" " + e);
}
}
}
, , :
:
,
, , , .
,
printf()
Console.
/* # 10 : printf() Console: PrintDeutsch.java */ public class PrintDeutsch {
public static void main(String[] args) {
String str = "ber";
-
System.out.println(str);
Console con = System.console();
con.printf("%s", str);
}
}
:
ber
ber
Java
, Web-. -, , -
Web- .
// # 11 : : FirstApplet.java import java.awt.Graphics;
import java.util.Calendar;
public class FirstApplet extends javax.swing.JApplet {
private Calendar calendar;
public void init() {
calendar = Calendar.getInstance();
setSize(250,80);
}
public void paint(Graphics g) {
g.drawString(" :", 20, 15);
g.drawString(
calendar.getTime().toString(), 20, 35);
}
}
Calendar java.util. toString() -
, ,
drawString().
,
.
main()
init() paint().
HTML- Web-,
Java. ()
HTML- view.html:
-
FirstApplet.class -
, HTML-. HTML- Microsoft Internet Explorer - , Java.
view.html .1.4.
. 1.4.
JDK
appletviewer.exe.
1
A
1. Hello, -
, . 2. ,
main() .
3. , n
. 4. -
-. 5. -
, () . 6. , ,
, .
Calendar
java.util.
7. - HTML-.
B
n . :
1. . 2. . 3. , 3 9. 4. , 5 7. 5. , .
-
6. , .
7. . 8. . 9. . 10. . 11. . 12. : f0 = f1 = 1, f (n) = f (n1) + f (n2). 13. -,
. 14. , . 15. p = m/n -
n m, .
16. .
1
1.1. :
class Quest1 {
private static void main (String a) {
System.out.println("Java 2");
} }
, Quest1 ? ( 2 )
1) Quest1 public;
2) main() String[] a;
3) main() public;
4) main().
1.2. Java: ( 2)
1) goto;
2) , ; 3) ; 4) ; 5) .
1.3. :
class Quest3 {
public static void main(String s[ ]) {
String args;
System.out.print(args + s);
}
}
:
1) : main() -
;
-
2) : args ;
3) : -
print();
4) .
1.4. :
public class Quest4 {
public static void main(String[] args) {
byte b[]=new byte[80];
for (int i=0;i
-
2
( -) . - .
Java , - (stack). - . , -, - , (heap).
, - . Java -. . .
()
( )
boolean 8 false true, false
byte 8 0 128..127
char 16 '\u0000' 0..65535
short 16 0 32768..32767
int 32 0 -2147483648..2147483647
long 64 0 922372036854775807L
float 32 0.0 3.40282347E+38
double 64 0.0 1.797693134486231570E+308
Java , : 35 -
, 071 , 051 -
. int. -
long, L
(: 0xffffL). ,
int (2147483647), Java , long.
1.618 -
0.112E-05 double, , -
double.
float, F. -
-
('a', '\n', '\141', '\u005a' ). -
Unicode, . Unicode , - ASCII , C++. '\ucode', code
. Java , ;
'\n' , '\r' , '\f' ,
'\t' , '\b' , '\uxxxx' -
Unicode, '\ddd' . J2SE
5.0 Unicode 4.0.
Character.
true false, null
.
String . ,
, , .
byte short int long float double. Java byte short
int .
(). :
byte b = (byte)128; // int byte
, - . - - , , - -. Java - , . - (++), (--)
(+=, /= ..). ()
. , -
, #.
$ _ , .
/* # 1 : , :TypeByte.java */ package chapt02;
public class TypeByte {
public static void main(String[] args) {
byte b = 1, b1 = 1 + 2;
final byte B = 1 + 2;
//b = b1 + 1; //
-
/* b1 , b = b1 + 1; , b1 + 1 - byte- */
b = (byte)(b1 + 1);
b = B + 1; //
/* B - , , - B + 1, byte , */ //b = -b; //
b = (byte) -b;
//b = +b; // b = (byte) +b;
int i = 3;
//b = i; // , int byte b = (byte) i;
final int I = 3;
b = I; //
/*I . , byte, , */
final int I2 = 129;
//b=I2; // , .. 129 , 127 b = (byte) I2;
b += i++; //
b += 1000; //
b1 *= 2; // float f = 1.1f;
b /= f; //
/* - , . , b /= f; b = (byte)(b / f); */
}
}
, , -, . , , . {}, -
.
Java /* */
//, , C++.
/** */, :
@author ;
@version ;
-
@exception ;
@param , ;
@return , ;
@deprecated , -
; @since ( ) ;
@throws , ;
@see .
java-, , javadoc.exe
HTML-.
User .
package chapt02;
public class User {
/**
* personal user's code
*/
private int numericCode;
/**
* user's password
*/
private String password;
/**
* see also chapter #3 "Classes"
*/
public User() {
password = "default";
}
/**
* @return the numericCode
* return the numericCode
*/
public int getNumericCode() {
return numericCode;
}
/**
* @param numericCode the numericCode to set
* parameter numericCode to set
*/
public void setNumericCode(int numericCode) {
this.numericCode = numericCode;
}
/**
* @return the password
* return the password
*/
-
public String getPassword() {
return password;
}
/**
* @param password the password to set
* parameter password to set
*/
public void setPassword(String password) {
this.password = password;
}
}
HTML- :
. 2.1. User
Java C++
. Java , *,
&, ->, delete .
- . + +=
String. -
==, != = -
, . , .
: +, , *, %, /, ++, &, |, ^,
~ C++. -
, .
-
, - , IEEE 754 -
+Infinity Infinity NaN (Not a Number),
, , - .
+ / ( - )
+= ( -)
/= ( )
-
% ( -)
= ( )
%= ( -)
* ++ ( )
*= ( -)
( )
| >>
|= ( ) >>= ( )
& >>>
&= (c ) >>>=
^
-
-
instanceof ?: (if-then-else).
boolean
Boolean (true false).
// # 2 : %: DemoOperators.java package chapt02;
public class DemoOperators {
public static void main(String[] args) {
System.out.println("5%1=" + 5%1 + " 5%2=" + 5%2);
int b1 = 0xe;//14 1110
int b2 = 0x9;//9 1001
int i = 0;
System.out.println(b1 + "|" + b2 + " = " +
(b1|b2));
System.out.println(b1 + "&" + b2 + " = " +
(b1&b2));
System.out.println(b1 + "^" + b2 + " = " +
(b1^b2));
System.out.println( "~" + b2 + " = " + ~b2);
System.out.println(b1 + ">>" + ++i + " = " +
(b1>>i));
System.out.println(b1 + ">>" + i +" = " +
(b1>>>i));
}
}
:
5%1=0 5%2=1
14|9 = 15
14&9 = 8
14^9 = 7
~9 = -10
14>>1 = 7
14>2 = 3
"?" :
boolean ? :
boolean true,
, -
.
instanceof true, -
. , :
class Course extends Object {}
class BaseCourse extends Course {}
-
class FreeCourse extends BaseCourse {}
class OptionalCourse extends Course {}
. 2.2.
instanceof
doLogic(Course c):
void doLogic(Course c) {
if (c instanceof BaseCourse) {/* BaseCourse
FreeCourse*/
} else if (c instanceof OptionalCourse) {/*
OptionalCourse*/
} else {/* Course*/} }
instanceof ,
, .
Object , -
Object. -
null ,
null - .
null -
. null -
,
instanceof.
-
, Java -
- (wrapper-) java.lang: Boolean,
Character, Integer, Byte, Short, Long, Float, Double.
, .
BaseCourse
Course
FreeCourse
OptionalCourse
-
. 2.3. -
-, , - - . , , - java.lang,
Number Comparable, -
-. - null.
-, . - Value()
. Character Number, -
, - . Character -
. Character,
, String.
/* # 3 : : CastTypes.java */ package chapt02;
public class CastTypes {
public static void main(String[] args) {
Float f1 = new Float(10.71); // double Float
String s1 = Float.toString(0f); // float String
String s2 = String.valueOf(f1); // Float String
Byte b = Byte.valueOf("120"); // String Byte
Float
Number
+ byteValue() : byte + doubleValue() : double + floatValue() : float + intValue() : int + longValue() : long
+ shortValue() : short
interface Comparable
Integer Byte Double Long Short
Character
Void
Boolean
+ booleanValue() : boolean + equals(Object) : boolean + getBoolean(String) : boolean + compareTo(Boolean) : int + parseBoolean(String) : boolean + valueOf() : Boolean
-
double d = b.doubleValue(); // Byte double
byte b0=(byte)(float)f1;// Float byte //b2 = (byte)f1; // !!! /*f1 , */ short s = (short) d; // double short
/* Character int */ Character ch = new Character('3');
int i = Character.digit(ch.charValue(), 10);
System.out.printf("f1=%1.2e s1=%s s2=%s%n", f1, s1, s2);
System.out.printf("b=%o d=%.1f b0=%d s=%d i=%d",
b, d , b0, s , i);
}
}
:
f1=1.07e+01 s1=0.0 s2=10.71
b=170 d=120,0 b0=10 s=120 i=3
valueOf(String str) -, -
, , , - .
Java java.math.BigInteger java.math.BigDecimal, - .
Java String.
String "+"
. '\0', ASCII-, .
5.0 (). - new. :
Integer iob = 71;
- . , intValue(), doubleValue()
. , -
, / :
// # 4 : autoboxing & unboxing: NewProperties.java package chapt02;
public class NewProperties {
public static void main(String[] args) {
Integer j = 71; // +
Integer k = ++j; //++ int i = 2;
k = i + j + k;
}
-
}
NullPointerException
null Integer:
Integer j = null; // !
int i = j; //
, -, .
int i = 128;// 127 !!!
Integer oa = i; // + Integer ob = i;
System.out.println("oa==i " + (oa == i));// true
System.out.println("ob==i " + (ob == i));// true
System.out.println("oa==ob " + (oa == ob));// false( ) System.out.println("equals ->" + oa.equals(i)
+ ob.equals(i)
+ oa.equals(ob));// true
equals() , -
, . oa.equals(ob)
true.
equals().
:
boolean b = i.equals(oa);//
- - ,
Float f = 7;// (float)7 7F 7
. , ,
, Number, :
Number n1 = 1;
Number n2 = 7.1;
Number array[] = {71, 7.1, 7L};
.
, - - .
if :
if (boolexp) { /**/} //1
else { /**/ } //2
boolexp true,
1, 2. else -
-
, if ( 2),
if.
- if {} else if {}.
C++ switch:
switch(exp) {
case exp1:{/**/} break;
case expN:{/**/} break;
default: {/**/} }
exp==exp1
, break, exp1,,
expN int, byte, short,
char enum.
, . if ,
, else -
. switch
case ( -
),
default.
Java , - ++:
while (boolexp) { /**/ } //
do { /**/ } while (boolexp); //
for(exp1; boolexp; exp3){ /**/ } //
exp1 , boolexp -
, exp3 , ( -
, ). ,
boolexp true.
:
- , for while ,
do/while .
- for -
. while -
, - , , . -
while(true).
- for .
-
- , .
- .
- . .
- . 5.0 , -
:
for( : ){ /**/ }
- .
int[] array = {1, 3, 5};
for(int i : array) //
System.out.printf("%d ", i);//
. , -
Iterable Iterator.
Java break
continue, -
, :
int j = -3;
OUT: while(true) {
for(;;)
while (j < 10) {
if (j == 0)
break OUT;
else {
j++;
System.out.printf("%d ", j);
}
}
}
System.out.print("end");
break , OUT.
goto .
, . . . Java , new . -
, , null -
.
-
, : int a[].
int[] a.
/* # 5 : : ArrRef.java */ package chapt02;
public class ArrRef {
public static void main(String[] args) {
int myRef[], my;//
float[] myRefFloat, myFloat; // !
// int myDyn[] = new int[10];
/* */ int myInt[] = {5, 7, 9, -5, 6, -2};//6
byte myByte[] = {1, 3, 5};//3
/* Object */ Object myObj = new float[5];
// myRef = myDyn;
myDyn = myInt;
myRefFloat = (float[])myObj;
myObj = myByte;//
myRefFloat = (float[])myObj;//
// () // myInt = myByte;
//myInt = (int[])myByte; }
}
Object
. - , -. , - . .
myDyn=myInt , -
myDyn
myInt, .
, - . -
length.
Java , . , :
int arr[][] = { { 1 },
{ 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9, 0 }
};
-
, arr[2][0]
, 4.
() .
. 2.4.
/* # 6 : : Matrix.java */ package chapt02;
public class Matrix {
private int[][] a;
public Matrix(int n, int m) {
// a = new int[n][m];
}
public int getVerticalSize() {
return a.length;
}
public int getHorizontalSize() {
return a[0].length;
}
public int getElement(int i, int j) {
return a[i][j];
}
public void setElement(int i, int j, int value) {
a[i][j] = value;
}
public String toString() {
String s = "\nMatrix : " + a.length +
"x" + a[0].length + "\n";
for (int[] vector : a) {
for (int value : vector)
s+= value+" ";
s += "\n";
}
Matrix
- a: int[][]
+ Matrix(int, int) + getHorizontalSize() : int + getVerticalSize() : int + getElement(int, int) : int
+ setElement(int, int, int) : void + toString() : String
MatrixFactory
+ createRandomized(int, int) : Matrix
Multiplicator
+ multiply(Matrix, Matrix) : void
-
return s;
}
}
/* # 7 : - : MatrixFactory.java */ package chapt02;
public class MatrixFactory {
public static Matrix createRandomized(int n, int m) {
Matrix matrix = new Matrix(n, m);
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
matrix.setElement(i, j, (int)(Math.random()*m*m));
}
}
return matrix;
}
}
/* # 8 : : Multiplicator.java */ package chapt02;
public class Multiplicator {
public static Matrix multiply(Matrix p, Matrix q)
throws MultipleException {
int v = p.getVerticalSize(); int h = q.getHorizontalSize();
int temp = p.getHorizontalSize();
// if (temp != q.getVerticalSize())
throw new MultipleException();
// Matrix result = new Matrix(v, h);
// for (int i = 0; i < v; i++)
for (int j = 0; j < h; j++) {
int value = 0;
for (int k = 0; k < temp; k++) {
value += p.getElement(i, k) * q.getElement(k, j);
}
result.setElement(i, j, value);
}
return result;
}
}
/* # 9 : : MultipleException.java */ package chapt02;
public class MultipleException extends Exception {}
-
/* # 10 : , : Runner.java */ package chapt02;
public class Runner {
public static void main(String[] args) {
int n = 2, m = 3, l = 4;
Matrix p = MatrixFactory.createRandomized(n, m);
Matrix q = MatrixFactory.createRandomized(m, l);
System.out.println("Matrix first is: " + p);
System.out.println("Matrix second is: " + q);
try {
Matrix result = Multiplicator.multiply(p, q);
System.out.println("Matrix product is: "
+ result);
} catch (MultipleException e){
System.err.println("Matrices could"
+ " not be multiplied: ");
}
}
}
random(), :
Matrix first is:
Matrix : 2x3
6 4 2
0 8 4
Matrix second is:
Matrix : 3x4
8 0 2 7
6 1 0 0
1 2 4 5
Matrix product is:
Matrix : 2x4
74 8 20 52
52 16 16 20
. , -
null.
-.
th
java.lang.Math -
, E PI.
-
( -
Math ). -
, ,
floor(), ceil(), rint(), round(), max(), min(),
, , ..
, random() Math.
/* # 11 : Math: MathMethods.java */ package chapt02;
public class MathMethods {
public static void main(String[] args) {
final int MAX_VALUE = 10;
double d;
d = Math.random() * MAX_VALUE;
System.out.println("d = " + d);
System.out.println(" ="
+ Math.round(d));
System.out.println(" , "
+ " = ="
+ Math.ceil(d));
System.out.println(" "
+ " =" + Math.rint(d));
}
}
:
d = 0.08439575016076173
=0
, = =1.0
=0.0
java.lang. -
java.lang.System,
. .
, System.in, System.out System.err,
/ , :
void gc() ;
void exit(int status) java-
(JVM);
-
void setIn(InputStream in), void setOut(PrintStream out),
void setErr(PrintStream err)
/;
Properties getProperties() ;
String getProperty(String key) -
;
void setSecurityManager(SecurityManager s), SecurityMan-
ager getSecurityManager() -
;
void load(String filename) ;
void loadLibrary(String libname) ;
void arrayCopy()
.
java.lang.Runtime. Runtime
getRuntime(), Runtime, -
. exit(int status) halt(int status). -
: gc(),
runFinalization() . -
totalMemory() freeMemory().
/* # 12 : : RuntimeDemo.java*/ package chapt02;
public class RuntimeDemo {
public static void main(String[] args) {
Runtime rt = Runtime.getRuntime();
System.out.println(" : "
+ rt.totalMemory());
System.out.println(" : "
+ rt.freeMemory());
double d[] = new double[10000];
System.out.println(" " +
" : " + rt.freeMemory());
// ProcessBuilder pb =
new ProcessBuilder("mspaint","c:\\temp\\cow.gif");
try {
pb.start(); // mspaint.exe } catch (java.io.IOException e) {
System.err.println(e.getMessage());
}
System.out.println(" "
+ " mspaint.exe: " + rt.freeMemory());
-
System.out.println(" : "
+ pb.command());
}
}
, ,
:
: 2031616
: 1903632
: 1823336
mspaint.exe: 1819680
: [mspaint, c:\temp\cow.gif]
java.lang.ProcessBuilder, -
start(),
. - - .
arraycopy() System,
, .
/* # 13 : : ArrayCopyDemo.java */ package chapt02;
public class ArrayCopyDemo {
public static void main(String[] args) {
int mas1[] = { 1, 2, 3 },
mas2[] = { 4, 5, 6, 7, 8, 9 };
show("mas1[]: ", mas1);
show("mas2[]: ", mas2);
// mas1[] mas2[] System.arraycopy(mas1, 0, mas2, 2, 3);
/*
0 mas1[] , 2 , , 3 */ System.out.printf("%n arraycopy(): ");
show("mas1[]: ", mas1);
show("mas2[]: ", mas2);
}
private static void show(String s, int[] mas) {
System.out.printf("%n%s", s);
for (int i : mas) System.out.printf("%d ", i);
}
}
:
mas1[]: 1 2 3
-
mas2[]: 4 5 6 7 8 9
arraycopy():
mas1[]: 1 2 3
mas2[]: 4 5 1 2 3 9
2
A
-
, , .
Date.
/** */,
HTML- Web-
.
1. n ,
. .
2. n .
() .
3. n . , -
() , .
4. n . ,
. ,
.
5. n . ,
,
.
6. n . , -
. ,
.
7. n . ,
. , .
8. n . , ,
-. , -
.
9. 18,
.
10. switch, ,
k -
(-10k, 0], (0, 5], (5, 10], (10, 10k].
11. switch, ,
k
(-10k, 5], [0, 10], [5, 15], [10, 10k].
12. , 1 25
5x5 .
-
13. , -
. -
.
14. 1 12. , -
. (
).
n a[n][n]. -
-n n .
1. () -
k- ().
2. k
(, , ). 3. () -
, .
4. ,
.
5. .
6. .
7. 90 (180, 270) .
8. .
9. ,
.
10. ()
, .
11. , , .
12. -
.
13. , , -
, .
14. .
15. . (
i,j, i,j i-
j- ).
16. , , -
.
17. . (
, . ,
.)
18. . (
, .)
-
19. , ,
. ( - ).
20. - , -
, (2,2), - (3,3) . .,
.
2
2.1. ?
1) float f = 7.0;
2) char c = "z";
3) byte b = 255;
4) boolean n = null;
5) int i = 32565;
6) int j = .
2.2. ?
1) if (i
-
3) a3;
4) a4;
5) a5.
-
3
, , .
Java, -, , . . - , , , .
. , , - .
. / , .
:
class {
{}//
//
private//
protected//
public// }
. :
c ;
Java , - static
() , , . - public, private, protected .
, - . , - , .
-
final . -
final , ,
. -
, - :
/* # 1 : : Second.java */ package chapt03;
import java.util.*;
class Second {
private int x; //
private int y = 71; //
public final int CURRENT_YEAR = 2007; //
protected static int bonus; //
static String version = "Java SE 6"; // protected Calendar now;
public int method(int z) { // z++;
int a; //
//a++; // ,
a = 4; // a++;
now = Calendar.getInstance();// return a + x + y + z;
}
}
, - , ( String).
, new.
Java , . - Java :
, ;
private ;
protected ,
, ;
public
.
-
( ), public, -
. , private,
. , . . , , - , , protected. -
, . public
(enclosing) . , .
, . , ; , - new .
, . Java , -
( ). - finalize(). Java
, , .
/* # 2 : : Quest.java */ package chapt03;
public class Quest {
private int id;
private String text;
// ( ) public Quest() {
super();/* , */
}
// public Quest(int idc, String txt) {
super();/*
, */ id = idc;
text = txt;
}
}
Quest ,
:
Quest a = new Quest();// Quest b = new Quest(71, " boolean?");
-
new , -
, . , Java
,
, : 0, false, null.
, - . . . - , :
super();
Point c (),
.
/* # 3 : : Point.java: LocateLogic.java: Runner.java */ package chapt03;
public class Point {
/* */ private final double x;
private final double y;
public Point(final double xx, final double yy) {
super();
x = xx;
y = yy;
}
public double getX() {
return x;
}
public double getY() {
return y;
}
}
package chapt03;
public class LocateLogic {
public double calculateDistance(
Point t1, Point t2) {
/* */ double dx = t1.getX() - t2.getX();
double dy = t1.getY() - t2.getY();
return Math.hypot(dx, dy);
}
}
package chapt03;
public class Runner {
-
public static void main(String[] args) {
// Point t1 = new Point(5, 10);
Point t2 = new Point(2, 6);
System.out.print(" : "
+ new LocateLogic().calculateDistance(t1, t2));
}
}
:
: 5.0
public,
.
private , -
. protected
.
- . .
Java -. :
returnType methodName(_) {
//
return value; // (returnType void) }
, return -
, void.
void , .
( ):
objectName.methodName();
- -
new.
, .
( void) .
, , .
[] [static] [abstract] [final] [native]
[synchronized] returnType methodName(_)
[throws _]
,
public, private, protected .
.
-
-, , .
, static,
. , . - , - static. ,
this ,
. , . this
, - , .
// # 4 : : Mark.java package chapt03;
public class Mark {
private int mark = 3;
public static int coeff = 5;
public double getResult() {
return (double)coeff*mark/100;
}
public static void setCoeffFloat(float c) {
coeff = (int)coeff*c;;
}
public void setMark(int mark) {
this.mark = mark;
}
// /*public static int getResult() {
setMark(5);// return coeff*mark/100;// }*/
}
Mark ob1 = new Mark();
Mark ob2 = new Mark();
ob1.coeff ob2.coeff 5,
. :
Mark.coeff = 7;
: ClassName.methodName(), :
Mark.setCoeffFloat();
-
float z = Math.max(x, y); //
System.exit(1); //
, , .
-, , .
final
final - , . , final, , .
:
/* # 5 : final- : Rector.java: ProRector.java */ package chapt03;
public class Rector {
// final int ID = (int)(Math.random()*10);
// final String NAME_RECTOR;
public Rector() {
// NAME_RECTOR = "";// !!! }
// {NAME_RECTOR = "";} // !!!
public final void jobRector() {
// // ID = 100; //! }
public boolean checkRights(final int num) {
// id = 1; //! final int CODE = 72173394;
if (CODE == num) return true;
else return false;
}
public static void main(String[] args) {
System.out.println(new Rector().ID);
}
}
package chapt03;
public class ProRector extends Rector {
// public void jobRector(){} //! }
-
, -.
, {}, , -
. - . . .
, .
/* # 6 : : AbstractCourse.java */ public abstract class AbstractCourse {
private String name;
public AbstractCourse() { }
public abstract void changeTeacher(int id);/*
*/ public setName(String n){
name = n;
}
}
, -, , .
- . . .
native
Java , ++.
native, -
, . :
public native int loadCripto(int num);
, native,
.
synchronized
, .
synchronized, ,
.
notifyAll(), notify() wait() Object
( Java) -
synchronized, -
.
-
. - , - , :
{ /* */ }
static { /* */ }
-, . , -, -, . -
this, -
.
static.
- () .
/* # 7 : : Department.java: DemoLogic.java */ package chapt03;
public class Department {
{
System.out.println("logic (1) id=" + this.id);
}
static {
System.out.println("static logic");
}
private int id = 7;
public Department(int d) {
id = d;
System.out.println(" id=" + id);
}
int getId() {
return id;
}
{
id = 10;
System.out.println("logic (2) id=" + id);
}
}
package chapt03;
public class DemoLogic {
public static void main(String[] args) {
-
Department obj = new Department(71);
System.out.println(" id=" + obj.getId());
}
}
:
static logic
logic (1) id=0
logic (2) id=10
id=71
id=71
id , - , -. id, 10, -
, -.
, , . - . . - , - . , - .
.
, - .
/* # 8 : : NumberInfo.java */ package chapt04;
public class NumberInfo {
public static void viewNum(Integer i) {//1 System.out.printf("Integer=%d%n", i);
}
public static void viewNum(int i) {//2 System.out.printf("int=%d%n", i);
}
public static void viewNum(Float f) {//3 System.out.printf("Float=%.4f%n", f);
}
public static void viewNum(Number n) {//4 System.out.println("Number=" + n);
}
public static void main(String[] args) {
Number[] num =
-
{new Integer(7), 71, 3.14f, 7.2 };
for (Number n : num)
viewNum(n);
viewNum(new Integer(8));
viewNum(81);
viewNum(4.14f);
viewNum(8.2);
}
}
, , -:
Number=7
Number=71
Number=3.14
Number=7.2
Integer=8
int=81
Float=4,1400
Number=8.2
. , - num.
, ( ), , - .
- .
, , -, , .
:
;
;
.
J2SE 5 - (generic) , , - . generic- - . , , - .
generic- :
-
/* # 9 : : Subject.java */ package chapt03;
public class Subject {
private T1 name;
private T2 id;
public Subject() {
}
public Subject(T2 ids, T1 names) {
id = ids;
name = names;
}
}
T1, 2 , -
. - . .
Subject , , :
Subject sub =
new Subject();
char ch[] = {'J','a','v','a'};
Subject sub2 =
new Subject(ch, 71D );
sub2 71D Double.
.
Optional -
, .
/* # 10 : : Optional.java: Runner.java */ package chapt03;
public class Optional {
private T value;
public Optional() {
}
public Optional(T value) {
this.value = value;
}
public T getValue() {
return value;
}
public void setValue(T val) {
value = val;
-
}
public String toString() {
if (value == null) return null;
return value.getClass().getName() + " " + value;
}
}
package chapt03;
public class Runner {
public static void main(String[] args) {
// Integer Optional ob1 =
new Optional();
ob1.setValue(1);
//ob1.setValue("2");// : int v1 = ob1.getValue();
System.out.println(v1);
// String Optional ob2 =
new Optional("Java");
String v2 = ob2.getValue();
System.out.println(v2);
//ob1 = ob2; //
// Object Optional ob3 = new Optional();
System.out.println(ob3.getValue());
ob3.setValue("Java SE 6");
System.out.println(ob3.toString());/*
, */
ob3.setValue(71);
System.out.println(ob3.toString());
ob3.setValue(null);
}
}
:
1
Java
null
java.lang.String Java SE 6
java.lang.Integer 71
Optional: ob1
Integer ob2 String -
. generic- -
-
Object,
, ob3. -
, .
generic- , -
, - .
Object. , -
. ,
:
public class OptionalExt {
private T value;
}
, -
, () T, -
(bound) .
, - .
?. extends -
.
/* # 11 : : Mark.java, Runner.java */ package chapt03;
public class Mark {
public T mark;
public Mark(T value) {
mark = value;
}
public T getMark() {
return mark;
}
public int roundMark() {
return Math.round(mark.floatValue());
}
/* */ // public boolean sameAny(Mark ob) { public boolean sameAny(Mark ob) {
return roundMark() == ob.roundMark();
}
public boolean same(Mark ob) {
return getMark() == ob.getMark();
}
}
package chapt03;
-
public class Runner {
public static void main(String[] args) {
// Mark ms = new Mark(7); //
Mark md = new Mark(71.4D);//71.5d
System.out.println(md.sameAny(md));
Mark mi = new Mark(71);
System.out.println(md.sameAny(mi));
// md.same(mi); // System.out.println(md.roundMark());
}
}
:
true
true
71
sameAny(Mark ob) Mark,
,
Mark
, .
generic- . , -
generic-:
class Optional {
T value = new T();
}
, -
. generic- , -
generic- generic-,
:
/* # 12 : :
Failed.java */ package chapt03;
class Failed {
static T1 value;
T2 id;
static T1 getValue() {
return value;
}
static void use() {
System.out.print(id);
}
}
-
(generic) , - , - , , , :
returnType methodName(T arg) {}
returnType methodName(T arg) {}
. - , , - , extends.
. Generic- ,
. - . generic-.
/* # 13 : : GenericMethod.java */ public class GenericMethod {
public static byte asByte(T num) {
long n = num.longValue();
if (n >= -128 && n
-
public static void main(String args[]) {
System.out.println("N=" + getArgCount(7, 71, 555));
Integer[] i = { 1, 2, 3, 4, 5, 6, 7 };
System.out.println("N=" + getArgCount(i));
System.out.println(getArgCount());
}
}
:
arg:7 arg:71 arg:555 N=3
arg:1 arg:2 arg:3 arg:4 arg:5 arg:6 arg:7 N=7
No arg=0
. getArgCount()
. . . - .
, :
void methodName([]... args){}
:
void methodName(Integer...args) {}
void methodName(int x1, int x2) {}
void methodName(String...args) {}
- . Object... args , :
/* # 15 : : DemoOverload.java */ package chapt03;
public class DemoOverload {
public static void printArgCount(Object... args) {//1
System.out.println("Object args: " + args.length);
}
public static void printArgCount(Integer[]...args){//2
System.out.println("Integer[] args: " + args.length);
}
public static void printArgCount(int... args) {//3
System.out.print("int args: " + +args.length);
}
public static void main(String[] args) {
Integer[] i = { 1, 2, 3, 4, 5 };
printArgCount(7, "No", true, null);
printArgCount(i, i, i);
printArgCount(i, 4, 71);
printArgCount(i);// 1
-
printArgCount(5, 7);
// printArgCount();//! }
}
:
Object args: 4
Integer[] args: 3
Object args: 3
Object args: 5
int args: 2
printArgCount() i -
Object... args,
-
. Integer[]...args , -
Object[]...args. -
Integer[]...args
Object...args.
- - .
. ,
...args , :
void methodName(1 obj, 2... args) {}
(typesafe enums) Java java.lang.Enum.
new.
. -
:
/* # 16 : : SimpleUseEnum.java */ package chapt02;
enum Faculty {
MMF, FPMI, GEO
}
public class SimpleUseEnum {
public static void main(String args[]) {
Faculty current;
current = Faculty.GEO;
switch (current) {
case GEO:
System.out.print(current);
break;
case MMF:
-
System.out.print(current);
break;
// case LAW : System.out.print(current);// ! default:
System.out.print(" case: " + current);
}
}
}
case -
, switch.
Enum , -
, . enum -
:
static enumType[] values() ,
;
static T valueOf(Class enumType, String arg) -
, ;
static enumType valueOf(String arg) -
, ;
int ordinal() .
/* # 17 : : Shape.java */ package chapt02;
enum Shape {
RECTANGLE, TRIANGLE, CIRCLE;
public double square(double x, double y) {
switch (this) {
case RECTANGLE:
return x * y;
case TRIANGLE:
return x * y / 2;
case CIRCLE:
return Math.pow(x, 2) * Math.PI;
}
throw new EnumConstantNotPresentException(
this.getDeclaringClass(),this.name());
}
}
/* # 18 : : Runner.java */ package chapt02;
public class Runner {
public static void main(String args[]) {
double x = 2, y = 3;
Shape[] arr = Shape.values();
-
for (Shape sh : arr)
System.out.printf("%10s = %5.2f%n",
sh, sh.square(x, y));
}
}
:
RECTANGLE = 6,00
TRIANGLE = 3,00
CIRCLE = 12,57
, square(). throw , -
. - . case.
/* # 19 : : DeanDemo.java */ package chapt02;
enum Dean {
MMF(""), FPMI(""), GEO("");
String name;
Dean(String arg) {
name = arg;
}
String getName() {
return name;
}
}
package chapt02;
public class DeanDemo {
public static void main(String[] args) {
Dean dn = Dean.valueOf("FPMI");
System.out.print(dn.ordinal());
System.out.println(" : " + dn + " : " + dn.getName());
}
}
:
1 : FPMI :
. :
; ; ; , new.
-
-, - , , , , , -
. , ,
.
, - .
.
/* # 20 : : RequestForCustomer.java */ package chapt03;
public @interface RequestForCustomer {
int level();
String description();
String date();
}
interface @. -
. -
: int level(), String description(), String date().
, - , . ,
, throws .
: , String, Enum, Class
.
java.lang.annotation.Annotation. :
hashCode(), equals() toString(), Object.
annotationType(),
lass, .
-
. , . , , , ,
enum. .
.
, -.
, RequestForCustomer
:
@RequestForCustomer (
level = 2,
description = "Enable time",
date = "10/10/2007"
)
public void customerThroughTime() {
//... }
-
customerThroughTime().
, @,
-. - -, .
, "Enable time" -
description(), RequestForCustomer.
description . -
, . , - .
/* # 21 : : Request.java */ package chapt03;
import java.lang.reflect.Method;
public class Request {
@RequestForCustomer(level = 2,
description = "Enable time",
date = "10/10/2007")
public void customerThroughTime() {
try {
Class c = this.getClass();
Method m = c.getMethod("customerThroughTime");
RequestForCustomer ann =
m.getAnnotation(RequestForCustomer.class);
// System.out.println(ann.level() + " "
+ ann.description() + " "
+ ann.date());
} catch (NoSuchMethodException e) {
System.out.println(" ");
}
}
public static void main(String[] args) {
Request ob = new Request();
ob.customerThroughTime();
}
}
:
2 Enable time 10/10/2007
, -
RUNTIME
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME) //
, -
.
-
SOURCE -
. CLASS -
.class, JVM .
, RUNTIME,
.class JVM . -
, RUNTIME -
. : -, -
. - -. -
. . - - -, -.
public @interface TigerAnnotation {}
- isAnnotation-
Present().
-. -. -, . - . , -
value().
-. -
(_ = )
. Java ,
@Retention, @Documented, @Target @Inherited
java.lang.annotation. @Override,
@Deprecated @Suppresswarnings java.lang.
- .
3
A
1. n. ,
, , , , .
m .
, . .
2. n.
. , , , , . . , , .
-
3. R3. ,
, . m .
, .
4. (n x n).
. , ,
. . ,
n
iij
nj
n
jij
niaaaa
11121
1 )(max),(max| || | . ,
.
5. (m x n).
. .
,
k- . ,
i- .
6.
...32
1
0
a
xa
xa
xaA
, , , .
n, x, a[n].
7. (m,n).
. , ,
. k , /-
. ,
. 8. .
. , , , , . n . , .
9. . . , , /. .
10. (BoolMatrix) (n x m).
. (), . .
11. (BoolVector) n.
.
-
, , .
12. n.
.
; , , . ,
, (), , .
, , ,
.
13. n.
. m , .
.
: )(
)(
)(
)(
2
2
1
1
xQ
xp
xQ
xpR /.
14. . .
.
.
15.
. .
, ,
, ,
( ).
16. .
. : -
( ); -
, ( ),
: (
), ( ), -
, ( ).
17. . .
, ,
, ,
. .
B
, . -
set(), get(), toString(). -
, .
.
1. Student: id, , , , , , , , , .
-
. :
a) ;
b) ;
c) , ;
d) .
2. Customer: id, , , , ,
, .
. :
a) ;
b) ,
.
3. Patient: id, , , , , ,
, .
. :
a) , ;
b) ,
.
4. Abiturient: id, , , , , , .
. :
a) , ;
b) , ;
c) n ,
( ,
).
5. Book: id, , (), , ,
, , .
. :
a) ;
b) , ;
c) , .
6. House: id, , , , , ,
, .
. :
a) , ;
b) ,
, ;
c) , , .
7. Phone: id, , , , , ,
, , .
. :
a) ,
;
b) ,
;
c) .
-
8. Car: id, , , , , , . . : a) ; b) , n ; c) , .
9. Product: id, , UPC, , , , . . : a) ; b) , ; c) , .
10. Train: , , , (, , , ). . : a) , ; b) , ; c) , .
11. Bus: , , , , , . . : a) ; b) , 10 ; c) , 100000 .
12. Airlines: , , , , . . : a) ; b) ; c) , .
3
3.1.
-?
1) private;
2) final;
3) native;
4) abstract;
5) protected.
-
3.2.
Quest3, -
"".
public class Quest3 {
Quest3 (int i){ System.out.print(""); }
public static void main(String[] args){
Quest3 s= new Quest3();
//1
}
public Quest3() {
//2
}
{
//3
} }
1) //1 Quest3(1);
2) //2 Quest3(1);
3) //3 new Quest3(1);
4) //3 Quest3(1).
3.3.
?
1) nonstatic- ; 2) static- ;
3) private- ; 4) final- .
3.4.
:
public class Quest5 {
{System.out.print("1");}
static{System.out.print("2");}
Quest5(){System.out.print("3");}
public static void main(String[] args) {
System.out.print("4");
} }
:
1) 1234;
2) 4; 3) 34;
4) 24;
5) 14.
-
4
, (-) () , .
,
extends. ,
implements.
, . ,
private ( ) .
( extends ) -
Object.
, - , - , , - . , , .
, . , , .
() , - , .
- .
.
typeEmployee() -
Employee Manager. -
, .
/* # 1 : : Employee.java: Manager.java: Runner.java */ package chapt04;
public class Employee {// private int id;
-
public Employee(int idc) {
super();/* ,
*/ id = idc;
}
public int getId() {
return id;
}
public void typeEmployee() {
// ... System.out.println("");
}
}
package chapt04;
// ,
public class Manager extends Employee {
private int idProject;
public Manager(int idc, int idp) {
super(idc); /*
*/ idProject = idp;
}
public int getIdProject() {
return idProject;
}
public void typeEmployee() {
// ... System.out.println("");
}
}
package chapt04;
public class Runner {
public static void main(String[] args) {
Employee b1 = new Employee(7110);
Employee b2 = new Manager(9251, 31);
b1.typeEmployee();// Employee
b2.typeEmployee();// Manager
// b2.getIdProject();// !!! ((Manager) b2).getIdProject();
Manager b3 = new Manager(9711, 35);
System.out.println(b3.getIdProject());// 35
System.out.println(b3.getId());// 9711
}
}
-
b1 Employee, ,
, typeEmployee()
Employee. b2 Employee -
Manager.
, . (, , )
, .
, - , .
this,
super. -
:
/* # 2 : -: Course.java: BaseCourse.java: Logic.java */ package chapt04;
public class Course {
public int id = 71;
public Course() {
System.out.println(" Course");
id = getId();//!!!
System.out.println(" id=" + id);
}
public int getId() {
System.out.println("getId() Course");
return id;
}
}
package chapt04;
publi