Java Σημειώσεις Σεμιναρίου

of 27 /27
Εισαγωγή στη γλώσσα προγραμματισμού Java Σημειώσεις Σεμιναρίου

Embed Size (px)

description

για ειδικότητες πληροφορικής από το ΙΕΚ Νίκαιας

Transcript of Java Σημειώσεις Σεμιναρίου

  • Java

  • Java 2

    .................................................................................................................................................... 2

    1 ..................................................................................................... 6

    1.1 ..................................................................................................................................................... 6

    1.2 .................................................................................................................................................... 6

    1.3 ................................................................................................................................................... 7

    1.4 SUN MICROSYSTEMS ........................................................................................... 7

    1.5 .............................................................................................................................................. 9

    1.6 JAVA ........................................................................................................................................ 10

    1.7 JAVA ............................................................................................................................ 10

    1.8 JAVA SE 6 ...................................................................................................................... 12

    1.9 ................................................................................................................................... 13

    1.10 INTEGRATED DEVELOPMENT ENVIRONMENTS (IDES) .......................................................................................... 15

    1.11 JAVA ............................................................................................................................. 17

    1.12 (COMMENTS)................................................................................................................................... 18

    1.13 (MAIN) ......................................................................................................................... 20

    1.14 JAVA .................................................................................................................... 22

    1.15 ...................................................................................................................... 22

    1.16 (ESCAPE SEQUENCES) .................................................................................................. 23

    1.17 (PACKAGES) .................................................................................................................................... 24

    1.18 (COMMON DIALOGS) ........................................................................................................... 27

    2 / ................................................................................................. 31

    2.1 (DATA TYPES) ................................................................................................................. 31

    2.2 (LITERALS).................................................................................................................... 33

    2.3 (VARIABLES) ............................................................................................................................ 35

    2.4 ............................................................................................................................ 37

    2.5 (REFERENCES) ............................................................................................................................. 38

    2.6 ....................................................................................................................... 38

    2.7 (CONSTANTS) ............................................................................................................................... 39

    2.8 (OPERATORS) ................................................................................................................................ 40

    2.9 (ARITHMETIC) ............................................................................................................ 40

    2.10 M A/M (INCREMENT/DECREMENT) ................................................................ 41

    2.11 (RELATIONAL) ................................................................................................................. 43

    2.12 BIT (BITWISE) ................................................................................................................. 44

    2.13 (COMPOUND ASSIGNMENT)..................................................................................... 45

    2.14 (LOGICAL) ......................................................................................................................... 46

    2.15 ........................................................................................................................... 48

    2.16 ............................................................................................................................... 48

    2.17 (TYPE CASTING) ............................................................................................................. 52

    2.18 (ARRAYS) ...................................................................................................................................... 53

    2.19 .............................................................................................................................. 57

    2.20 .............................................................................................................................. 58

  • Java 3

    3 ............................................................................................................................ 61

    3.1 ...................................................................................................................................................... 61

    3.2 IF..ELSE ...................................................................................................................... 61

    3.3 IF..ELSE IF ................................................................................................................ 66

    3.4 IF .................................................................................................................................... 67

    3.5 ................................................................................................................................... 70

    3.6 (TERNARY OPERATOR) ? : .......................................................................................... 71

    3.7 H SWITCH ........................................................................................................................... 73

    3.8 WHILE ......................................................................................................................................... 77

    3.9 DO..WHILE ................................................................................................................................. 79

    3.10 FOR ............................................................................................................................................. 81

    3.11 ............................................................................................................................. 86

    3.12 BREAK CONTINUE ................................................................................................................................... 86

    3.13 LABELED STATEMENTS .................................................................................................................................. 88

    4 ( ) ......................................................... 91

    4.1 ................................................................................................................................................... 91

    4.2 (OBJECT)................................................................................................................................ 92

    4.3 (CLASS) ........................................................................................................................................... 93

    4.4 ........................................................................................................................................... 96

    4.5 (MEMBER-VARIABLES)..................................................................................................... 96

    4.6 (VISIBILITY) ............................................................................................................................... 97

    4.7 ......................................................................................................................... 98

    4.8 (METHODS) ............................................................................................................................... 100

    4.9 (CALL BY VALUE) .............................................................................................................. 105

    4.10 (CALL BY REFERENCE) ................................................................................................ 107

    4.11 (METHOD OVERLOADING) ...................................................................................... 108

    4.12 (CONSTRUCTORS) .................................................................................................................... 109

    4.13 ...................................................................................................................... 112

    4.14 GETTERS/SETTERS ..................................................................................................................................... 113

    4.15 ......................................................................................................................................... 114

    4.16 .............................................................................................................................. 117

    4.17 (ENUMERATED TYPES) .................................................................................................. 124

    5 (B ) ....................................................... 127

    5.1 (INHERITANCE) ............................................................................................................. 127

    5.2 IS-A, HAS-A .......................................................................................................................... 128

    5.3 ................................................................................................................ 129

    5.4 / .................................................................... 130

    5.5 ................................................................................................................. 132

    5.6 JAVA.LANG.OBJECT ................................................................................................................. 137

    5.7 (METHOD OVERRIDING) .......................................................................................... 138

    5.8 ....................................................................................................................................... 138

    5.9 ...................................................................................................................................... 139

    5.10 (POLYMORPHISM) ........................................................................................................... 142

    5.11 (ABSTRACT CLASSES) .................................................................................................. 151

    5.12 INTERFACES .............................................................................................................................................. 157

    5.13 (INNER CLASSES) ........................................................................................................... 160

  • Java 4

    6 ............................................................................................................ 167

    6.1 (EXCEPTIONS) ............................................................................................................................ 167

    6.2 (EXCEPTION HANDLING) ............................................................................................. 167

    6.3 FINALLY ................................................................................................................................ 170

    6.4 EXCEPTION PROPAGATION........................................................................................................................... 172

    6.5 .................................................................................................................................... 173

    6.6 CHECKED/UNCHECKED EXCEPTIONS .............................................................................................................. 175

    6.7 ................................................................................................................... 176

    6.8 ASSERTIONS ............................................................................................................................................. 180

    6.9 ASSERTIONS .......................................................................................................................... 183

    6.10 ..................................................................................................................................... 184

    7 ........................................................................................................ 185

    7.1 .................................................................................................................................................... 185

    7.2 ..................................................................................................................... 185

    7.3 JAVA.LANG.STRINGBUILDER ................................................................................................... 189

    7.4 JAVA.UTIL.LOCALE ................................................................................................................. 192

    7.5 ........................................................................................................................ 194

    7.6 JAVA.TEXT ............................................................................................................................ 196

    7.7 ...................................................................................................................... 199

    7.8 ........................................................................................................................... 200

    7.9 JAVA.LANG.MATH ..................................................................................................................... 204

    7.10 .................................................................................................................................. 205

    7.11 (BYTE STREAMS) ............................................................................................................. 208

    7.12 (CHARACTER STREAMS) ............................................................................................. 210

    7.13 SERIALIZATION .......................................................................................................................................... 213

    7.14 ................................................................................................................................. 217

    7.15 REGULAR EXPRESSIONS ............................................................................................................................... 219

    7.16 JAVA.REGEX .......................................................................................................................... 221

    7.17 JAVA.UTIL.SCANNER ............................................................................................................... 222

    7.18 JAR ...................................................................................................................................... 225

    8 OBJECTS, WRAPPER CLASSES, , .............................................................. 227

    8.1 JAVA.LANG ............................................................................................................................ 227

    8.2 ............................................................................................................................ 229

    8.3 .......................................................................................................................... 231

    8.4 HASHING ................................................................................................................................................. 232

    8.5 INTERFACES COMPARABLE & COMPARATOR .............................................................................................. 234

    8.6 WRAPPER CLASSES .................................................................................................................................... 235

    8.7 (GENERICS) ............................................................................................................................. 238

    8.8 JAVA COLLECTIONS FRAMEWORK .................................................................................................................. 239

    8.9 (SETS) ......................................................................................................................................... 243

    8.10 (LISTS) ........................................................................................................................................... 244

    8.11 (QUEUES) ....................................................................................................................................... 246

    8.12 (MAPS) ................................................................................................................................ 248

    8.13 ...................................................................................................................... 250

    9 ................................................................................................. 255

    9.1 MULTITASKING/MULTITHREADING ............................................................................................................... 255

    9.2 (THREAD) ....................................................................................................................................... 256

  • Java 5

    9.3 .............................................................................................................................. 257

    9.4 JAVA.LANG.THREAD ................................................................................................................. 262

    9.5 (SYNCHRONIZATION) ............................................................................................................. 262

    9.6 (PRIORITIES) .................................................................................................................... 265

    9.7 ............................................................................................................................ 267

    9.8 ......................................................................................................................... 270

    9.9 (DEADLOCK) .............................................................................................................................. 279

    10 (GUI) ..................................................................... 281

    10.1 JFC .................................................................................................................... 281

    10.2 SWING ...................................................................................................................................... 282

    10.3 (LAYOUT MANAGERS) ................................................................................................ 291

    10.4 ........................................................................................................ 292

    10.5 EVENT-DRIVEN PROGRAMMING ................................................................................................................... 295

    10.6 (EVENT-HANDLING) ................................................................................................. 296

    10.7 TOOLBARS TOOLTIPS ............................................................................................................................... 299

    10.8 (DIALOGS) .................................................................................................................................. 303

    10.9 MODEL-VIEW-CONTROLLER .................................................................................................. 308

  • Java 6

    Java

    1

    1.1

    Java ...

    Java 10

    Java.

    Java ,

    .

    Java

    . ,

    .

    4 (

    ) , .

    .

    .

    , 2009

    ,

    Sun Microsystems Java,

    (

    Java 1.4). ,

    ,

    Sun Microsystems.

    1.2

    . Java

    .

    .

    ,

  • Java 7

    ,

    . ,

    ,

    .

    ,

    .

    .

    ,

    .

    1.3

    .

    :

    , , , .

    Sun:

    Sun Microsystems.

    .

    : .

    1.4 Sun Microsystems

    Sun Microsystems Java,

    (Cisco, Microsoft ).

    ,

    .

    :

    Sun Certified Java Associate (SCJA): ,

    Java. .

    Sun Certified Java Programmer (SCJP): ,

    Java SE 6

    .

    .

    .

  • Java 8

    Sun Certified Java Developer (SCJD): SCJP,

    Java SE 6.

    . , ,

    SCJP 6 Java.

    Sun Certified Web Component Developer (SCWCD):

    Enterprise Java (Java EE) developers

    . , SCJP

    .

    Sun Certified Business Component Developer (SCBCD):

    Java EE

    Enterprise JavaBeans. SCJP.

    Sun Certified Developer For Java Web Services (SCDJWS): developers

    (web services) Java EE.

    SCJP .

    Sun Certified Mobile Application Developer (SCMAD): developers

    Java ME.

    SCJP .

    Sun Certified Enterprise Architect (SCEA): Sun

    developer

    Java

    EE.

    : ,

    essay.

    ,

    SCJP.

    .

    (VUE Prometric),

    .

    SCJP Java

    CX-310-065. 210 ,

    72

    5 . 65%, 47

    72 .

    , SCJP Java,

    CX-310-066,

    (48 150

    ).

    66% 32

    48 .

    .

    . ,

    ,

  • Java 9

    (PC, )

    .

    ,

    .

    .

    , ,

    (trick questions)

    .

    ,

    Java.

    .

    ,

    .

    1.5

    1.

    Java

    .

    .

    () Java :

    Effective Java (2nd Edition), Joshua Bloch, Pearson Education, 2008

    Sun,

    .

    .

    SCJP Sun Certified Programmer for Java 6 Study Guide, Katherine Sierra, McGraw-Hill, 2008

    Programmer's Guide to Java SCJP Certification: A Comprehensive Primer, Khalid Mughal,

    Addison Wesley, 2008

    2. Online

    Java .

    site tutorial :

    http://conta.uom.gr/conta/ekpaideysh/seminaria/Tutorials-Java.html

    3. Websites

    site Sun Microsystems Java ,

    Java. site

    online , , case studies, software, . :

    http://java.sun.com

  • Java 10

    1.6 Java

    Java 1991, Sun Microsystems

    . James Gosling (

    Java) C++ .

    , Gosling

    C++

    .

    (C++ ++) Oak ().

    .

    C++

    .

    Oak

    Java ( ).

    .

    project

    ,

    . Sun

    project,

    internet. project

    project

    .

    , 1996 Java Sun Microsystems,

    .

    , Sun ISO

    standard Java, .

    , Java de facto standard.

    1998 2 Java

    . ,

    .

    Java , 2004

    5 Tiger. (2006)

    Java 6 Mustang, .

    , 2007 Sun Microsystems Java open source

    , .

    1.7 Java

    Java :

    :

    Java, . Java

  • Java 11

    . C++,

    (pointers)

    .

    (compiled) (interpreted): C/C++

    compiled , Java

    .

    .

    (pure OOD): Java

    (object-oriented paradigm)

    (.. ).

    :

    Java.

    .. Windows

    Unix .

    (Unix)

    JRE.

    (strongly typed): Java

    ( 2)

    C/C++.

    : Java

    () .

    :

    .

    : Java

    (multimedia) .

    :

    , Java (network)

    (web) .

    (multi-threaded processing):

    , Java

    multi-threaded .

    : Java,

    garbage collector (

    ) .

    :

    . Java

    .

    (dynamic binding): Java

    (run-time).

    ,

    .

  • Java

    business projec

    ,

    C++

    .

    1.8

    JDK (Java Development

    SDK JRE

    Java

    .

    projects Java.

    .

    Java

    , . Java

    ,

    Java SE 6

    Java ,

    JRE (Java Run

    JRE

    opment Kit).

    1

    Java ,

    12

    .. games,

    Java

    ,

    Runtime Environment)

    . 1

    6 Java,

    ,

  • Java 13

    Java

    . , JDK JRE, .

    Java.

    Java Virtual Machine (JVM): (virtual machine)

    (bytecode)

    . JVM

    class loader, bytecode

    bytecode verifier, ,

    (JIT compiler),

    (automated exception handling) .

    Java SE API (Application Programming Interface): interfaces

    .

    Deployment Technologies: deployment (

    ) Java (stand-alone) browser (..

    applet).

    Tools: JDK.

    :

    javac: O compiler Java

    java: Java

    javadoc: HTML API

    jar: JAR

    jdb: Java debugger

    javap: Disassembler .class

    1.9

    Java

    (source code file).

    Java

    . ,

    (.. notepad)

    JDK.

    2

  • Java 14

    2 notepad Windows

    , Hello world.

    Java.

    2. HelloWorld.java.

    , .

    (command)

    .

    javac HelloWorld.java

    Enter. compiler Java

    . ( ) compiler ,

    HelloWorld.class.

    javac: file not found command

    compiler .

    HelloWorld.class (bytecode).

    command

    java HelloWorld

    Enter.

    3, .

    ,

    command :

    javac onoma_arxeiou.java

    , :

    java onoma_klashs

    3

  • Java 15

    4 .

    .

    class loader,

    bytecode verifier bytecode

    Java. JVM

    (JIT compiler)

    . JVM

    .

    4

    1.10 Integrated Development Environments (IDEs)

    project

    .

    ,

    .

    .

    ,

    ( command), ,

    compiler. ,

  • Java 16

    (Integrated Development Environments)

    IDEs.

    IDEs developer

    . , IDEs

    editor ,

    ( , ,

    ) compiler .

    ,

    projects .

    , IDE.

    , (debugging)

    .

    IDEs (version control), refactoring,

    ,

    smart tags, .

    IDE . Java, IDEs

    , Eclipse

    NetBeans. IDEs open source

    . Eclipse NetBeans

    CD .

    Java ,

    .

    Eclipse NetBeans

    ,

    . Java developers

    , . , screenshots

    . Windows

    Linux Unix. 5 screenshot Eclipse.

    NetBeans Eclipse

    project.

    IDE 2008 Sun

    Java site, .

    Eclipse, NetBeans .

    IDEs Java JDeveloper Oracle (open source) JBuilder

    Codegear ( Borland) . .

    Sun: IDEs

    , Sun

    1.9, .

  • Java 17

    5

    1.11 Java

    C/C++ , Java

    . .java, ..

    MyClass.java.

    : .

    .

    : Java case sensitive

    . Java myClass MyClass

    . ,

    IDE MyClass.java,

    MyClass.

    , Java

    :

  • Java 18

    .

    * - & ( ^ ~ ! .

    underscore ( _ )

    (spaces).

    , underscores

    . ,

    (Image Loader) ImageLoader Image_Loader

    .

    .

    Java project . ,

    project ,

    1.13.

    Java , :

    import

    interface

    6 Java

    . .

    6

    1.12 (Comments)

    .

    .

    .

    ,

    .

    . , project manager

  • Java 19

    . ,

    . (

    )

    !

    , . Java

    .

    .

    /* (-)

    */ (-). ,

    .

    /* auto einai ena syntaktika ortho sxolio */

    /*

    * opws

    * kai

    * ayto

    */

    compiler, ,

    , Greeklish, .

    // (2 )

    .

    :

    // this is a single line comment

    editors IDEs .

    ,

    .

    ,

    .

    , (/** */) tags annotations

    javadoc JDK HTML reference manual

    , Java API reference manual.

    Sun .

    annotations .

    /**

    * This class represents a jpg image

    *

    * @author Nikos Panagos

    * @version 1.0, March 23, 2008

    * @see server

    */

  • Java 20

    Sun:

    ,

    .

    1.13 (main)

    , ,

    (main method). Java C/C++ Java

    ( )

    , C/C++

    project.

    ({ }) .

    Java , ..

    java MyClass

    main

    .

    ( sequentially).

    Java :

    public static void main(String[] args)

    Java

    ; ( semi-colon) .

    , .

    ,

    , , .

    ({ }) .

    Java

    (command line arguments) ,

    . 7,

    :

    You passed the argument "[6]"

    8.

  • Java 21

    7

    8

    Sun: Sun

    .

    main(String[] args)

    , .

    :

    main(String args[])

    main(String[] something)

    ,

    .

    , ,

    , ..

    main(String something[])

  • Java 22

    1.14 Java

    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

    *

    ** 1.2

    *** 1.4

    **** 5

    Sun:

    ( ). ,

    Java

    C++, .

    , compiler .

    .

    1.15

    . ,

    System.out

    Java.

    println print

    .

    println

    print

    . print

  • Java 23

    compiler (\n) println.

    +

    .

    x = 5.

    ... int x = 5; System.out.println("x = " + x);

    ...

    7,

    ,

    .

    1.16 (Escape Sequences)

    . Java (")

    (string). ,

    .

    ,

    "To be or not to be?" ( ).

    System.out.println("To be or not to be?");

    .

    System.out.println(""To be or not to be?"");

    . ,

    compiler ,

    compiler ( To be or not to be

    ) .

    (escape sequences). compiler

    , ..

    .

    Java

    1.

  • Java 24

    \n newline

    \t tab

    \b backspace

    \f form feed

    \r return

    \" " ( )

    \' ' ( )

    \\ \ (back slash)

    \uDDDD Unicode DDDD (DDDD 4

    )

    1

    , \".

    ,

    System.out.println("\"To be or not to be?\"");

    1.13

    ( )

    . 1,

    newline ,

    tab, return Unicode.

    1.17 (Packages)

    .

    (modularity).

    , interfaces ( interfaces 4 5)

    .

    Java

    , .

    , interfaces

    .

  • Java 25

    .

    java.util

    util java. java

    .

    , (fully qualified name)

    compiler .

    java.util.Stack s = new java.util.Stack();

    compiler Stack

    util, java

    .

    .

    Java

    import. import

    . , import

    :

    import java.util.Stack;

    ...

    Stack s = new Stack();

    import

    ( ) .

    import (wildcard)

    :

    import java.util.*;

    compiler

    interfaces java.util (

    ). ,

    compiler

    .

    .

    project

    Helper. ,

    Helper. ,

  • Java 26

    , o compiler

    .

    ,

    . Java

    package .

    package sound;

    compiler

    sound. ,

    package elearning.lesson;

    lesson,

    elearning .

    ,

    imaging

    sound. ,

    compiler

    .

    (

    ) import

    ,

    import imaging.Helper;

    import sound.Helper;

    , (package)

    import statements. ,

    , :

    package elearning.sound; import java.util.*; public class Helper { ... }

    default . ,

    Java default .

  • Java 27

    , projects

    .

    , default

    import ( )

    . , Java

    . IDEs Eclipse NetBeans

    . ,

    default ,

    .

    1.18 (Common Dialogs)

    (common dialogs) Java

    .

    Sun.

    (common dialogs)

    , . Java

    javax.swing,

    GUI (Graphical User Interface).

    javax.swing 10.

    .

    showMessageDialog()

    JOptionPane, 9 (:

    4.

    ).

    IDE project. project

    Example01. ,

    . 9.

    import javax.swing.JOptionPane; // program uses JOptionPane public class Example01 { public static void main(String args[]){ JOptionPane.showMessageDialog(null, "Welcome\nto\nJava\nProgramming!"); System.exit(0); // terminate application with window } }