java part1 www.underwar.co.il

Upload: compserver

Post on 06-Apr-2018

222 views

Category:

Documents


0 download

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

    .(