oop chapter 1 by jlncrnl

Upload: chiechiekoy

Post on 02-Jun-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    1/62

    Chapter 1Introduction

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    2/62

    1-2

    Outline

    Brief History of Java

    The Java Programming Language

    Program Development

    Object-Oriented Programming

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    3/62

    Brief History of java

    In 1990, Sun Microsystems began an internal project known as

    the Green Projectto work on a new technology.

    In 1992, the Green Project was spun off and its interest directedtoward building highly interactive devices for the cable TV

    industry. This failed to materialize.

    In 1994, the focus of the original team was re-targeted, this tim

    to the use of Internet technology. A small web browser calledHotJavawas written. Oak was renamed toJavaafter learning

    that Oak had already been trademarked.

    In 1995, Java was first publicly released.

    In 1996, Java Development Kit (JDK) 1.0 was released.

    In 2002, JDK 1.4 (codenameMerlin) was released, the most

    widely used version.

    In 2004, JDK 5.0 (codename Tiger) was released, the latest

    version.

    1-3

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    4/62

    James Gosling

    James Goslingis generally

    credited as the inventor of the Java

    programming language

    He was the first designer of Java

    and implemented its original

    compiler and virtual machine He is also known as the Father of

    Java

    He is currently the Chief Technical

    Officer of Sun Microsystems

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    5/62

    1-5

    Java

    A programm ing languagespecifies the words andsymbols that we can use to write a program

    A programming language employs a set of rules

    that dictate how the words and symbols can be put

    together to form valid prog ram statements

    The Java programming language was created by

    Sun Microsystems, Inc.

    It was introduced in 1995 and it's popularity hasgrown quickly since

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    6/62

    Java Platform Editions

    A Java Platform is the set of APIs, class libraries, and other programs

    used in developing Java programs for specific applications

    There are 3 Java Platform Editions

    1. Java SE (Standard Edition)- formerly J2SE

    Core Java Platform targeting applications running on workstations

    2. Java EE (Enterprise Edition) formerly J2EE

    Component-based approach to developing distributed, multi-tier

    enterprise applications

    3. Java ME (Mobile Edition), formerly J2ME

    Targeted at small, stand-alone or connectable consumer and

    embedded devices

    1-6

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    7/62

    Java Development Kit (JDK)

    Java Development Kit (JDK)

    Is a set of Java tools for developing Java programs

    Consists of Java API, Java Compiler, and JVM

    Java Application Programming Interface (API)

    Is prewritten code, organized into packages of similar topics

    Java Virtual MachineJava API

    MyProgram.java

    Hardware - Based Platform

    JDK

    JRE

    Java VirtualMachine (JVM)

    Is an

    execution engine that

    runs compiled Java

    byte code

    1-7

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    8/62

    1-8

    Java Program Structure

    In the Java programming language: A programis made up of one or more classes

    A classcontains one or more methods

    A methodcontains program statements

    A Java application always contains a methodcalledmain

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    9/62

    1-9

    Java Program Structure

    public classMyProgram

    {

    }

    // comments about the class

    class header

    class body

    Comments can be placed almost anywhere

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    10/62

    1-10

    Java Program Structure

    public class MyProgram

    {

    }

    // comments about the class

    public static voidmain(String[] args)

    {

    }

    // comments about the method

    method header

    method body

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    11/62

    9/17/2014

    11

    The First Java Program

    classWelcome{

    /* The Welcome Program-------------------

    Illustrates a simple program displaying

    a message.

    */

    public static void main (String [ ] args) {

    System.out.println("Welcome to Java!");

    }

    }

    Type all carefully and save it to a

    file named Welcome.java

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    12/62

    9/17/2014

    12

    The First Java Program

    classWelcome {

    /* The Welcome Program-------------------

    Illustrates a simple program displaying

    a message.

    */

    public static void main (String [ ] args) {

    System.out.println("Welcome to Java!");

    }

    }

    Java program source files (.java)

    contain definition of classes

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    13/62

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    14/62

    9/17/2014

    14

    The First Java Program

    class Welcome {

    /* The Welcome Program-------------------

    Illustrates a simple program displaying

    a message.

    */

    public static voidmain(String [ ] args) {

    System.out.println("Welcome to Java!");

    }

    }

    Curly braces pair enclose a block

    of code, method main()here

    Dont miss me!

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    15/62

    9/17/2014

    15

    The First Java Program

    class Welcome {

    /* The Welcome Program-------------------

    Illustrates a simple program displaying

    a message.

    */

    public static void main (String [ ] args) {

    System.out.println("Welcome to Java!");

    }

    }

    This is a block of comments, for

    human, not for computer

    It explains to you what happens

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    16/62

    9/17/2014

    16

    The First Java Program

    class Welcome {

    /* The Welcome Program-------------------

    Illustrates a simple program displaying

    a message.

    */

    public static void main (String [ ] args) {

    System.out.println("Welcome to Java!");

    }

    }

    This is a method of the class

    Welcome, named main()

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    17/62

    9/17/2014

    17

    The First Java Program

    class Welcome {

    /* The Welcome Program-------------------

    Illustrates a simple program displaying

    a message.

    */

    public static void main (String [ ] args){

    System.out.println("Welcome to Java!");

    }

    }

    There MUSTbe a pair of

    parentheses following ALL

    method names

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    18/62

    9/17/2014

    18

    The First Java Program

    class Welcome {

    /* The Welcome Program-------------------

    Illustrates a simple program displaying

    a message.

    */

    public static void main (String [ ] args) {

    System.out.println("Welcome to Java!");

    }

    }

    A method maytake some input

    from the caller, formally known as

    argumentsorparameters

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    19/62

    9/17/2014

    19

    The First Java Program

    class Welcome {

    /* The Welcome Program-------------------

    Illustrates a simple program displaying

    a message.

    */

    public static voidmain (String [ ] args) {

    System.out.println("Welcome to Java!");

    }

    }

    A method maygive some output to the

    caller too, known as return value

    void means no return value

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    20/62

    9/17/2014

    20

    The First Java Program

    class Welcome {

    /* The Welcome Program-------------------

    Illustrates a simple program displaying

    a message.

    */

    public staticvoid main (String [ ] args) {

    System.out.println("Welcome to Java!");

    }

    }

    The statickeyword before a

    method definition indicates this is

    a class method

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    21/62

    9/17/2014

    21

    The First Java Program

    class Welcome {

    /* The Welcome Program-------------------

    Illustrates a simple program displaying

    a message.

    */

    publicstatic void main (String [ ] args) {

    System.out.println("Welcome to Java!");

    }

    }

    This method is apublicone, others

    can callme.

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    22/62

    9/17/2014

    22

    The First Java Program

    class Welcome {

    /* The Welcome Program-------------------

    Illustrates a simple program displaying

    a message.

    */

    public static void main(String [ ] args) {

    System.out.println("Welcome to Java!");

    }

    }

    Standard properties of the main() method

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    23/62

    9/17/2014

    23

    The First Java Program

    class Welcome {

    /* The Welcome Program-------------------

    Illustrates a simple program displaying

    a message.

    */

    public static void main (String [ ] args) {

    System.out.println("Welcome to Java!");

    }

    }

    A statement(instruction) to display

    a message

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    24/62

    9/17/2014

    24

    The First Java Program

    Change to the directory containing the fileWelcome.java

    Typejavac Welcome.java

    It generates a new fileWelcome.class

    Type (without .class)

    java Welcome

    Whats the result?

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    25/62

    1-25

    Comments

    Comments in a program are called in l ine

    documentat ion

    They should be included to explain the purposeof the program and describe processing steps

    They do not affect how a program works

    Java comments can take three forms:

    // this comment runs to the end of the line

    /* this comment runs to the terminatingsymbol, even across line breaks */

    /** this is a javadoccomment */

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    26/62

    1-26

    Identifiers

    Identi f iersare the words a programmer uses in aprogram

    An identifier can be made up of letters, digits, theunderscore character ( _ ), and the dollar sign

    Identifiers cannot begin with a digit Java is case sens it ive-Total, total, andTOTAL are different identifiers

    By convention, programmers use different case

    styles for different types of identifiers, such as t i t le casefor class names - Lincoln

    upper casefor constants -MAXIMUM

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    27/62

    1-27

    Identifiers

    Sometimes we choose identifiers ourselves whenwriting a program (such as Lincoln)

    Sometimes we are using another programmer's

    code, so we use the identifiers that he or she

    chose (such asprintln)

    Often we use special identifiers called reserved

    words that already have a predefined meaning in

    the language

    A reserved word cannot be used in any other way

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    28/62

    1-28

    Reserved Words

    The Java reserved words:

    abstract

    assert

    boolean

    break

    bytecase

    catch

    char

    class

    const

    continuedefault

    do

    double

    else

    enum

    extends

    false

    finalfinally

    float

    for

    goto

    if

    implementsimport

    instanceof

    int

    interface

    long

    native

    new

    nullpackage

    private

    protected

    public

    return

    shortstatic

    strictfp

    super

    switch

    synchronized

    this

    throw

    throwstransient

    true

    try

    void

    volatile

    while

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    29/62

    1-29

    White Space

    Spaces, blank lines, and tabs are called white

    space

    White spaceis used to separate words and

    symbols in a program

    Extra white space is ignored

    A valid Java program can be formatted many ways

    Programs should be formatted to enhance

    readability, using consistent indentation

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    30/62

    1-30

    Outline

    The Java Programming Language

    Program Development

    Object-Oriented Programming

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    31/62

    1-31

    Program Development

    The mechanics of developing a program include

    several activities

    writing the program in a specific programming language

    (such as Java)

    translating the program into a form that the computer canexecute

    investigating and fixing various types of errors that can

    occur

    Software tools can be used to help with all parts ofthis process

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    32/62

    1-32

    Language Levels

    There are four programming language levels:

    machine language

    assembly language

    high-level language

    fourth-generation language

    Each type of CPU has its own specific machine

    language

    The other levels were created to make it easier for

    a human being to read and write programs

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    33/62

    1-33

    Programming Languages

    Each type of CPU executes only a particular

    machine language

    A program must be translated into machine

    language before it can be executed

    A compi leris a software tool which translates

    source codeinto a specific target language

    Often, that target language is the machine

    language for a particular CPU type

    The Java approach is somewhat different

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    34/62

    1-34

    Java Translation

    The Java compiler translates Java source code

    into a special representation called bytecode

    Java bytecode is not the machine languagefor any

    traditional CPU

    Another software tool, called an interpreter,

    translates bytecode into machine language and

    executes it

    Therefore the Java compiler is not tied to anyparticular machine

    Java is considered to be architecture-neutral

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    35/62

    1-35

    Java Translation

    Java sourcecode

    Machinecode

    Java

    bytecode

    Bytecode

    interpreter

    Bytecode

    compiler

    Java

    compiler

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    36/62

    COREJAVA

    Java source.java

    javac

    Java bytecode .class

    JVM

    Programming API

    Platform interface

    of Web Browse

    JVM

    Programming API

    Platform interface

    of Windows

    JVM

    Programming API

    Platform interface

    of Unix

    java

    1-36

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    37/62

    1-37

    Development Environments

    There are many programs that support the

    development of Java software, including:

    Sun Java Development Kit (JDK)

    Sun NetBeans

    IBM Eclipse

    Borland JBuilder

    MetroWerks CodeWarrior

    BlueJ

    jGRASP

    Though the details of these environments differ,

    the basic compilation and execution process is

    essentially the same

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    38/62

    1-38

    Syntax and Semantics

    The syntaxru lesof a language define how we can

    put together symbols, reserved words, and

    identifiers to make a valid program

    The semant icsof a program statement define what

    that statement means (its purpose or role in aprogram)

    A program that is syntactically correct is not

    necessarily logically (semantically) correct

    A program will always do what we tell it to do, not

    what we meant to tell it to do

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    39/62

    1-39

    Errors

    A program can have three types of errors

    The compiler will find syntax errors and other

    basic problems (compi le-t ime errors)

    If compile-time errors exist, an executable version of the

    program is not created

    A problem can occur during program execution,

    such as trying to divide by zero, which causes a

    program to terminate abnormally (run-t ime errors)

    A program may run, but produce incorrect results,

    perhaps using an incorrect formula (log icalerrors)

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    40/62

    1-40

    Basic Program Development

    errors

    errors

    Edit and

    save program

    Compile program

    Execute program and

    evaluate results

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    41/62

    1-41

    Outline

    Brief History of Java

    The Java Programming Language

    Program Development

    Object-Oriented Programming

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    42/62

    1-42

    Problem Solving

    The purpose of writing a program is to solve a

    problem

    Solving a problem consists of multiple activities:

    Understand the problem

    Design a solution

    Consider alternatives and refine the solution

    Implement the solution

    Test the solution

    These activities are not purely linearthey

    overlap and interact

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    43/62

    1-43

    Problem Solving

    The key to designing a solution is breaking it down

    into manageable pieces

    When writing software, we design separate pieces

    that are responsible for certain parts of the

    solution

    An ob ject-or iented app roachlends itself to this

    kind of solution decomposition

    We will dissect our solutions into pieces calledobjects and classes

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    44/62

    1-44

    Object-Oriented Programming

    Java is an object-oriented programming language

    As the term implies, an object is a fundamental

    entity in a Java program

    Objects can be used effectively to represent real-

    world entities

    For instance, an object might represent a

    particular employee in a company

    Each employee object handles the processing and

    data management related to that employee

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    45/62

    1-45

    Objects

    An object has:

    state - descriptive characteristics (attributes)

    behaviors - what it can do (or what can be done to it)

    The state of a bank account includes its account

    number and its current balance

    The behaviors associated with a bank account

    include the ability to make deposits and

    withdrawals

    Note that the behavior of an object might change

    its state

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    46/62

    1-46

    Classes

    An object is defined by a class

    A class is the blueprintof an object

    The class uses methods to define the behaviors of

    the object

    The class that contains the main method of a Java

    program represents the entire program

    A class represents a concept, and an object

    represents the embodiment of that concept

    Multiple objects can be created from the same

    class

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    47/62

    1-47

    Objects and Classes

    Bank

    Account

    A class

    the concept)

    Johns Bank Account

    Balance: $5,257

    An object

    the realization)

    Bills Bank AccountBalance: $1,245,069

    Marys Bank AccountBalance: $16,833

    Multiple objects

    from the same class

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    48/62

    Lesson: Working with Classes

    How to Create a New Class

    How to Add Instance Data Members

    How to Add Methods

    How to Create an Instance of a Class

    How to Use Constructors

    1-48

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    49/62

    How to Create a New Class

    Create a new class by using the Add Class

    command on the Project menu

    Example of new class named BankAccount:

    public class BankAccount {

    }

    1-49

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    50/62

    How to Add Instance Data Members

    Adding a data member named balance

    public class BankAccount {

    privatedoublebalance;

    }

    Keyword Definition

    Public Accessible everywhere

    Private Accessible only within the type itself

    ProtectedAccessible only by classes which inheritfrom the class

    H Add M h d

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    51/62

    How to Add Methods

    Adding a method named Deposit

    public class BankAccount {

    privateDouble balance;

    publicdouble Deposit (doubleamount) {balance += amount;

    }

    }

    Overloaded methods: two or more methods withthe same name but different signatures

    Example:MessageBox.Show

    How to Create an Instance of a

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    52/62

    How to Create an Instance of a

    Class Using the New keyword to create an instance of

    the BankAccount class:

    public class Bank {

    public static void main (string args[]) {BankAccount account = newBankAccount( )

    account.Deposit(500.00)

    }

    }

    1-52

    P ti C ti Cl

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    53/62

    Practice: Creating a Class

    In this practice, you will create aBankAccount class with methods

    1-53

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    54/62

    How to Use Constructors

    Executes code when object is instantiated

    public class New {

    public int New (inti) {value = i

    }

    }

    Can overload, but does not use Overloads keyword

    public class New {

    public int New () {

    value = 1 }

    }

    1-54

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    55/62

    What Is Inheritance?

    Inheritance specifies an is-a-kind-of relationship

    Multiple classes share the same attributes andoperations, allowing efficient code reuse

    Examples:

    A customer is a kind of person

    An employee is a kind of person

    Customer Employee

    Person

    Base Class

    Derived Classes

    1-55

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    56/62

    1-56

    Inheritance

    One class can be used to derive another via

    inheri tance

    Classes can be organized into hierarchies

    BankAccount

    Account

    ChargeAccount

    SavingsAccount

    CheckingAccount

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    57/62

    How to Inherit from a Class

    A derived class inherits from a base class

    Properties, methods, data members, events, and

    event handlers can be inherited (dependent on

    scope)

    Keywords

    Inheritsinherits from a base class

    NotInheritablecannot be inherited from

    MustInheritinstances of the class cannot be created;

    must be inherited from as a base class

    1-57

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    58/62

    What Is Polymorphism?

    The method name resides in the base class

    The method implementations reside in the derived

    classes

    BaseTaxCalculateTax( )

    CountyTax

    CalculateTax( )

    CityTax

    CalculateTax( )

    1-58

    C C S

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    59/62

    Comparing Classes to Structures

    Classes Structures

    Can define data members,

    properties, and methods

    Can define data members,properties, and methods

    Support constructors and

    member initialization

    No default constructor or

    member initialization

    Support Finalizemethod Do not support Finalizemethod

    Extensible by inheritance Do not support inheritance

    Reference type Value type

    1-59

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    60/62

    Key Points

    A Java source file can include package, import

    and class declarations in that order Themain()method is the start of execution of a

    Java application

    Each Java statement is terminated by a

    semicolon ; Identifiers are case-sensitive

    Java keywords cannot be used as identifiers

    Each variable must be declared with a data type

    There are 8 primitive data types:boolean, char,byte, short, int, long, floatand double

    There are 3 reference data types: class, array and

    interface1-60

    K P i t

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    61/62

    Key Points

    if()and switch()are used for branching

    statements

    while(), do-while()and for()are used for

    iterating statements

    break, continueand labelare used to branch

    inside loops

    1-61

    S

  • 8/11/2019 OOP chapter 1 by JLNCRNL

    62/62

    Summary

    Chapter 1 focused on:

    programming and programming languages

    an introduction to Java

    an overview of object-oriented concepts