java part1 www.underwar.co.il
TRANSCRIPT
-
8/3/2019 Java Part1 Www.underwar.co.Il
1/33
JavaC++-
www.underwar.co.il.
, . , , ,
. , .
Nir AdarEmail: [email protected]
.
-
8/3/2019 Java Part1 Www.underwar.co.Il
2/33
1.
1. 2
2. 4
2.1. 4 2.2. J AVA VIRTUAL M ACHINE 5 2.3. 5 2.4. -C++-J AVA 6
3. -PACKAGES 7
3.1. PACKAGE 7 3.2. IMPORT 9 3.3. 9
4. JAVA 10
4.1. 10
4.2.
W RAPPERS 10
4.3. C ASE SENSITIVITY 11 4.4. -J AVA 11 4.5. 11 4.6. 12 4.7. 13 4.8. 14
4.8.1. 14 4.8.2. 14 4.8.3. DEFAULT CONSTRUCTOR 15 4.8.4. 15 4.8.5. 17
4.8.6. 18 4.8.7. 19 4.8.8. 20
4.9. 21 5.9.1. OBJECT 22 5.9.2. 22 5.9.3. -FINALIZATION 23 4.10. 24 4.11. FINAL 24
5. JAVADOC 25
5.1. 25
-
8/3/2019 Java Part1 Www.underwar.co.Il
3/33
5.2. 25 5.3. J AVADOC 26
5.4. -JAVADOC 28 5.5. -PACKAGES 31 5.6. J AVADOC 32
-
8/3/2019 Java Part1 Www.underwar.co.Il
4/33
2.
2.1.
Java ,-1995.
-C++.
JavaC++ .
JavaC++:
Java C++,unions.
-Java .
.
. -Java
)Exception(.
Java code verifier
.,Java ,
, .
.
Garbage Collector-Java ,
.Java -Garbage Collector,
.
-Java . -C++
. .
/, ,
, .
-
8/3/2019 Java Part1 Www.underwar.co.Il
5/33
2.2.Java Virtual Machine
Java -Java Virtual Machine)JVM.(
: Java, , ,
byte code. ,
native code.
-Java -Java
.
2.3.
Hello, World! .
Hello.Java
public class Hello{
public static void main(String[] args){
System.out.println("Hello, World!");}
}
:
-Java . . main. C++,
.
, .
) .(
Javac (Java Compiler) :
C:\>Javac Hello.Java
-
8/3/2019 Java Part1 Www.underwar.co.Il
6/33
-
8/3/2019 Java Part1 Www.underwar.co.Il
7/33
3. -packages
3.1.package
-"" .
-Java packages.
-package,
:
package ;
.
:
// File MyClass.Java
package MyFirstPackage;
class MyClass{
}
,) ( -package
MyFirstPackage.
-package / -package
-default package.
-
8/3/2019 Java Part1 Www.underwar.co.Il
8/33
-class - package
-package.
, -package .
-package
-class -package.
-dJavac. ,
-package.
:
C:\> Javac -d C:\ MyClass.Java
-class
MyFirstPackage, C:\ .
packages.,package packages.
packages .
-package,
. -package
-packages -package -package.
-package , .
-
8/3/2019 Java Part1 Www.underwar.co.Il
9/33
3.2.import
,
. -import.
:
import ;
* packages.
package, , -package.
3.3.
package , import.
-packageJava.lang -Java,
.
package import, -package
-import.
-
8/3/2019 Java Part1 Www.underwar.co.Il
10/33
4. Java
4.1.
Java. C/C++
) ,
int,, 4 (,Java .
-Java unsigned -C/C++.
Type Size Minimum Maximum Literals Default* boolean - - - true, false Falsechar 16-bit Unicode 0 Unicode 162 1 'x' '\u0000'byte 8-bit 128 127 (byte)1 (byte)0short 16-bit 152 152 1 (short)1 (short)0int 32-bit 312 312 1 1, 0754,
0xfe0
long 64-bit 632 632 1 1L 0Lfloat 32-bit IEEE754 IEEE754 1.2f 0.0f double 64-bit IEEE754 IEEE754 1.2 0.0dvoid - - - - -
*- members variables.
4.2.Wrappers
,Java
, .
,Integer int:
Integer n = new Integer("4");int m = n.intValue();
-
8/3/2019 Java Part1 Www.underwar.co.Il
11/33
4.3.Case Sensitivity
Java Case Sensitive:main Main.
.
4.4. -Java
-Java :
, .
.
)final( .
,getPrice(), ,
.
4.5.
Java .
C++:
// blah blah
/* this is a blah blah */
, Java,Javadoc.
:
/** comment */
-
8/3/2019 Java Part1 Www.underwar.co.Il
12/33
4.6.
Java -C++.
,:
1. :,%(),+,*,/,-
2. = :,+=,=-,*=
3. :!=,==,=,>=> ,< ,<
4. ! :|| ,&& ,
5.++,--
Java-C -C,-Java casting
.
-C/C++ -Java:
sizeof -C /.
* .
& /.
:: .
, . -Java-
-for.
-
8/3/2019 Java Part1 Www.underwar.co.Il
13/33
4.7.
Java C++. :
if/else
if (expression){
// block}else{
// alternate block}
do/while
do{
// block}
while (expression);
for loop
for (initalize; condition; step){
// block}
switch... case
switch(indifier){
case VALUE1:case VALUE2:
// act 1 break;
default:// act2
break;}
-
8/3/2019 Java Part1 Www.underwar.co.Il
14/33
4.8.
Java . .
.
-Java ) ..(
4.8.1.
-Java C++:private, public, protected.
public, .
private, .
protected,
.
-Java , , -C++
. , package friendly.:
.
)package( , -package .
4.8.2.
, .
, .
. , .
-
8/3/2019 Java Part1 Www.underwar.co.Il
15/33
4.8.3.Default Constructor
-Java ,
. , , ,
-false -null.
, .
-C++,
.
4.8.4.
instantiation ,
, new.
instance )-reference ( . .
-Java . ,
, . )int, char'(
.
. ,
.:
Box myBox;
Box.
-
8/3/2019 Java Part1 Www.underwar.co.Il
16/33
reference
) reference
.(
C++:-C++ .
-Java . reference .
.
:
Box myBox = new Box();
reference null.
. ,
-reference. -Java.
Class-Type Class-Type.
, ,
.:
Car familyCar, sportCar ; familyCar = new Car();sportCar = familyCar ;
familyCar-sportCar reference.,
-familyCar -reference,
-sportCar -reference ,,reference.
-
8/3/2019 Java Part1 Www.underwar.co.Il
17/33
4.8.5.
== -Java .
,
, . .
:
Integer i1 = new Integer("3");Integer i2 = new Integer("3");Integer i3 = i2;
:
i1 == i1 && i1 != i2 && i2 == i3
.
boolean equals(Object o), :
i1.equals(i1) && i1.equals(i2)
.
-Java
Object. Object
equals. equals .
true .
== :, . , Java, , , ,,
.
-
8/3/2019 Java Part1 Www.underwar.co.Il
18/33
:
public class Name{
String firstName;String lastName;...
public boolean equals(Object o){
if (!(o instanceof Name)) return false; Name n = (Name)o;
return firstName.equals(n.firstName) &&lastName.equals(n.lastName);
}}
4.8.6.
-Java , .
.
length .
:
Animal[] arr; // nothing yet
arr = new Animal[4]; // only array of pointers
for(int i=0 ; i < arr.length ; i++)
arr[i] = new Animal();
// now we have a complete array
-Java .
-for .
-0 char ,-false
boolean. -null .
-
8/3/2019 Java Part1 Www.underwar.co.Il
19/33
-Java =, :
int vec1[] = {1,2,3};int vec2[] = {8,7,6,5};vec1 = vec2; // Won't copy the array!
, .
-Java,arraycopy.
arraycopy System:
public static void arraycopy(Object src,
int src_position,Object dst,int dst_position,int length);
:
int []vec1 = {1,2,3,4,5};int []vec2 = new int[vec1.length];System.arraycopy(vec1, 0, vec2, 0, vec1.length);
4.8.7.
-Java . ,:
String s = "Hello, World";
, -"Hello, World", s
.-Java , C/C++.
String .
, , -reference -String
String) .(
-
8/3/2019 Java Part1 Www.underwar.co.Il
20/33
4.8.8.
)class variables.(
,
.
static .
,
) . -C++, .(
.
, ,
.
-
8/3/2019 Java Part1 Www.underwar.co.Il
21/33
4.9.
,Java , .
Java:
class Base{
Base(){}Base(int i) {}
protected void foo() {}}
class Derived extends Base{
Derived() {} protected void foo() {}
Derived(int i){
super(i);super.foo();
}}
, :
class Base{
void foo(){
System.out.println(Base);}
}
class Derived extends Base
{ void foo(){
System.out.println(Derived);}
}
public class Test{
public static void main(String[] args){
Base b = new Derived(); b.foo(); // Derived.foo() will be activated
}}
-
8/3/2019 Java Part1 Www.underwar.co.Il
22/33
Java:-Java
C++. C++.
5.9.1.Object
Java, , Object.
,:
boolean equals(Object o);Object clone();int hashCode();String toString();
.
5.9.2.
, .
.
.
C++.
:
public abstract class Shape{
public abstract void draw();
public void move(int x, int y){
setColor(BackGroundColor);draw();setCenter(x,y);setColor(ForeGroundColor);
-
8/3/2019 Java Part1 Www.underwar.co.Il
23/33
draw();}
}
public class Circle extends Shape
{ public void draw(){
// draw the circle ...}
}
5.9.3. -Finalization
Objectfinalize().
. ,
. :
, '. -Destructor
C++, -Garbage Collector
, -C++ ,
-Java.
finalize :
1. finalize().
2. .
3. void.
4. protected.
finalize()
Object.
-
8/3/2019 Java Part1 Www.underwar.co.Il
24/33
4.10.
" " .
, :
)public(
-public, static-final.
, .:
interface IChef{
void cook(Food);}
interface Singer{
void sing(Song);}
interface SouthParkCharacter{
void curse();}
class Chef implements IChef, SouthParkCharacter{
public void curse() { } public void cook(Food f) { }
}
4.11.final
final , .
-final .
-final .
-final . .
-
8/3/2019 Java Part1 Www.underwar.co.Il
25/33
5.Javadoc
5.1.
.Java
. Javadoc.-Javadoc
-Java HTML "
.
5.2.
Javadoc/** -*/.
Javadoc : -Javadoc.
Javadoc ) ( .*
:
/*** This is the descriptive text of the doc comment.** @Xxx Comment for the tag.* @Yyy Comment for the tag.
*/ public class Aaa
{}
- javadoc // '...
.
-
8/3/2019 Java Part1 Www.underwar.co.Il
26/33
, **/ :- /* .
- javadoc *.
HTML . -HTML .
"
.
Javadoc
. .
. -summary, .
5.3. Javadoc
-Javadoc .
:
,
-Javadoc
:Overrides ) .(
, -interface
-Javadoc :Specified by ) -interface.(
", -Javadoc
)
-interface.( , -interface
.
-
8/3/2019 Java Part1 Www.underwar.co.Il
27/33
- javadoc) ,packages, interfaces,,,
( >code
-
8/3/2019 Java Part1 Www.underwar.co.Il
28/33
5.4. -javadoc
- javadoc, ,
- javadoc. @ .
javadoc
.,, @author
, . , - javadoc
.
- javadoc :
javadoc field:
javadoc -field :@see,@since-
@deprecated.
javadoc class
interface:
@author author name
-class/interface.
@author javadoc.
@see className
class,interface,methodfield.
:
fieldmethod) ( : @see # nameOfMethodOrField
fieldmethod) ( :
@see nameOfOtherClass#nameOfMethodOrField
method (overriding methods)
/
/ .
@see java.awt.Container#add(String,Component) javadocclass\interface @see.
-
8/3/2019 Java Part1 Www.underwar.co.Il
29/33
@since sinceText
-field\method\constructor\classinterface
JDK.
@deprecated deprecatedText
-class -interface -deprecated)(,
. /
. -deprecated
"No replacement".
Javadoc -method
constructor:
@param parameterNameDescription
-method -constructor.:@param size long size of
the file. @param .
, -a,anthe.:
@param num the int number to be tested. )
.(- javadoc -CODE
) @param.(
, /
. , .
@return description
-method.:@return length of the file
void-construcotrs .
@exception fulltQualifidClassNameDescription
-exception . Throws: -HTML -exception
. exception - javadoc ) -
exception.(:@exception IOException if the file is too big
@throws @exception. exception -throws
exception )errors-
NullPointerException.(
-
8/3/2019 Java Part1 Www.underwar.co.Il
30/33
@see className
, , See Also.
) .(
@since sinceText
.@since -class/interface.
@since -class/interface
class/interface.
@deprecated deprecatedText
method\constructor (deprecate).
deprecated .
deprecated.
@link .
-deprecated No replacement.
{@link}
.
Applet:
/*** Returns an absolute URL naming the directory of the document
in which* the applet is embedded. For example, suppose an applet is
contained* within the document:* * http://java.sun.com/products/jdk/1.2/index.html* * The document base is:* * http://java.sun.com/products/jdk/1.2/* ** @return the {@link java.net.URL} of the document that
contains this* applet.* @see java.applet.Applet#getCodeBase()*/
public URL getDocumentBase() {return stub.getDocumentBase();
}
-
8/3/2019 Java Part1 Www.underwar.co.Il
31/33
-Default Constructor:
default constructor
.
5.5. -packages
-packages package.html,
(*.java). -package
package.html package.
package.html package
-interfaces. -interfaces
package.html) -BODY.( package.html
package, -
interfacesc API
documentation.
HTML.
/**-*/ .
package.html:
:
Package Xxx Description. -
package.,Provides classes and interfaces for handling mobile
communication".. . : -package specification: .
: Related Documentation: ), '.(
@category :
-classes-interfaces -package. , -
packages,classes-interfaces.
-
8/3/2019 Java Part1 Www.underwar.co.Il
32/33
5.6.Javadoc
-Javadoc :
javadoc [options] [package | source.java]
, Javadoc )(-package
)-packages(HTML. -HTML
publicprotected.
package., -Javadoc HTML
)tree.html( HTML index
.
-options / / ) /
-package\packages(:
-public
-HTML public
.
-protected
-HTML public
protected.
-package
-HTML public,
protectedpackage friendly.
-private
-HTML .
-
8/3/2019 Java Part1 Www.underwar.co.Il
33/33
-author
-HTML @author .
-HTML.
-d directory
-HTML .
-sourcepath path
-path -package
-packages) -Javadoc
( -path -source code
javadoc.
javadoc -package)-package
.(