Introduction to Java Programming - PowerPoint PPT Presentation

1 / 62
About This Presentation
Title:

Introduction to Java Programming

Description:

'Java, whose original name was Oak, was developed as a part of the Green project ... Indention in Statement Block. Usually indent the statements in a block so that ... – PowerPoint PPT presentation

Number of Views:48
Avg rating:3.0/5.0
Slides: 63
Provided by: YDanie5
Learn more at: https://cs.nyu.edu
Category:

less

Transcript and Presenter's Notes

Title: Introduction to Java Programming


1
Introduction to Java Programming
  • Adapted from tutorials by
  • Y. Daniel Liang
  • http//www.cs.armstrong.edu/liang/intro4e/slide.ht
    m
  • and Mike Scott
  • http//www.cs.utexas.edu/users/scottm/cs307/schedu
    le.htm

2
A brief history of Java
  • Oak
  • Java, whose original name was Oak, was developed
    as a part of the Green project at Sun. It was
    started in December '90 by Patrick Naughton, Mike
    Sheridan and James Gosling and was chartered to
    spend time (and money!) trying to figure out what
    would be the "next wave" of computing and how we
    might catch it. They quickly came to the
    conclusion that at least one of the waves was
    going to be the convergence of digitally
    controlled consumer devices and computers.
  • HotJava
  • The first Java-enabled Web browser (1994)
  • Java, May 23, 1995, Sun World

3
How Java Works
  • Java's platform independence is achieved by the
    use of the Java Virtual Machine
  • A Java program consists of one or more files with
    a .java extension
  • When a Java program is compiled the .java files
    are fed to a compiler which produces a .class
    file for each class definition
  • The .class file contains Java bytecode.
  • Bytecode is like machine language, but it is
    intended for the Java Virtual Machine not a
    specific chip

4
The advantage of Java
  • Java is platform independent
  • an application written for one computer is very
    likely to run unchanged on another computer.
  • write once, run anywhere
  • Java is simple
  • has a simpler syntax than C and C.
  • Most of the trickiest and error-prone portions
    (such as pointer manipulation) of the C languages
    do not exist in Java.
  • Java is object-oriented
  • encapsulation, inheritance, and polymorphism
  • all code must be contained in a class
  • no free functions (functions that do not belong
    to some class) like C
  • Java is free
  • can be downloaded free from http//java.sun.com

5
A simple program
  • //This program prints Hello World!
  • public class HelloWorld
  • //main method begins execution of Java
    //application
  • public static void main(String args)
  • System.out.println("Hello World!")

6
Compile programs
  • On command line
  • javac file.java
  • A program in Java consists of one or more class
    definitions, each compiled into its own .class
    file of Java Virtual Machine object code. One of
    these classes must define a method main(), which
    is where the program starts running.

7
Execute Programs
  • On command line
  • java classname
  • To invoke a Java program, you run the Java
    interpreter, java, and specify the name of the
    class that contains the main() method.

8
Set the CLASSPATH
  • The programmer must first set the CLASSPATH
    environment variable on the computer to tell the
    Java compiler where to look for the package.
  • For Windows
  • set CLASSPATHc\packages
  • For Unix systems running C shell
  • setenv CLASSPATH HOME/packages

9
Preview to Java Language
  • Basic syntax the same as C
  • Programmers dont need to deal with pointers as
    in C language.
  • All parameters are pass by value. Pass by
    reference is not possible
  • no more C const or
  • Garbage Collection is used
  • No need for destructors
  • Not as many memory management issues (memory is
    still managed, but by the run time system instead
    of the programmer.)
  • Array index out of bounds causes a runtime error
  • Java uses the term Exceptions for runtime errors

10
Data Types
  • Primitive Data Types
  • byte short int long float double boolean char
  • stick with int for integers, double for real
    numbers
  • Classes and Objects
  • pre defined or user defined data types consisting
    of constructors, methods, and fields (constants
    and fields (variables) which may be primitives or
    objects.)

int x int y 10 int z, zz double a
12.0 boolean done false, prime true char mi
'D'
11
Java Primitive Data Types
12
Programming advice
  • Be sure that the name of file containing a class
    is exactly the same as the name of the class
    being defined.
  • Always begin every program with comments
    describing the purpose of the program. Use
    comments liberally throughout the program to
    explain how each portion of the code works.

13
Naming Conventions
  • Choose meaningful and descriptive names.
  • Variables and method names
  • Use lowercase. If the name consists of several
    words, concatenate all in one, use lowercase for
    the first word, and capitalize the first letter
    of each subsequent word in the name. For example,
    the variables radius and area, and the method
    computeArea.

14
Naming Conventions, cont.
  • Class names
  • Capitalize the first letter of each word in the
    name. For example, the class name ComputeArea.
  • Constants
  • Capitalize all letters in constants. For
    example, the constant PI.
  • To improve the consistency and understandability
    of your code, assign a name to any important
    constants, and refer to them by that name in the
    program.

15
Indention in Statement Block
  • Usually indent the statements in a block so that
  • Easier to identify the block properly enhance
    the readability
  • In all block like function body
  • Use tab rather space

16
Increment and Decrement Operators
Always keep expressions increment and decrement
operators simple and easy to understand.
17
Programming Errors
  • Syntax Errors
  • Detected by the compiler
  • Runtime Errors
  • Causes the program to abort
  • Logic Errors
  • Produces incorrect result

18
Compilation Errors
  • public class ShowSyntaxErrors
  • public static void main(String args)
  • i 30
  • System.out.println(i4)

19
Runtime Errors
  • public class ShowRuntimeErrors
  • public static void main(String args)
  • int i 1 / 0
  • Integer division often gives unexpected results.

20
Logic Errors
  • public class ShowLogicErrors
  • // Determine if a number is between 1 and 100
    inclusively
  • public static void main(String args)
  • // Prompt the user to enter a number
  • String input JOptionPane.showInputDialog(n
    ull,
  • "Please enter an integer",
    "ShowLogicErrors",
  • JOptionPane.QUESTION_MESSAGE)
  • int number Integer.parseInt(input)
  •  
  • // Display the result
  • System.out.println("The number is between 1
    and 100, "
  • "inclusively? " ((1 lt number)
    (number lt 100)))
  • System.exit(0)

21
Assertions
  • Assertions have the form
  • assert boolean expression what to output if
    assertion is false
  • Example
  • if ( (x lt 0) (y lt 0) )
  • // we know either x or y is lt 0
  • assert x lt 0 y lt 0 x " " y
  • x y
  • else
  • // we know both x and y are not less than zero
  • assert x gt 0 y gt 0 x " " y
  • y x
  • Use assertion liberally in your code
  • part of style guide

22
Assertions Uncover Errors in Your Logic
  • if ( a lt b )
  • // we a is less than b
  • assert a lt b a " " b
  • System.out.println(a " is smaller than " b)
  • else
  • // we know b is less than a
  • assert b lt a a " " b
  • System.out.println(b " is smaller than "
    a)
  • Use assertions in code that other programmers
    are going to use.

23
Control Statements
  • Selection Statements
  • Using if and if...else
  • Using switch Statements
  • Conditional Operator
  • Repetition Statements
  • Looping while, do-while, and for
  • Using break and continue

24
if Statement
25
if Statements -- Caution
  • Adding a semicolon at the end of an if clause is
    a common mistake.
  • if (radius gt 0)
  • area radiusradiusPI
  • System.out.println(
  • "The area for the circle of radius "
  • radius " is " area)
  • This mistake is hard to find, because it is not a
    compilation error or a runtime error, it is a
    logic error.
  • This error often occurs when you use the
    next-line block style.

Wrong
26
Note
  • The else clause matches the most recent if clause
    in the same block. For example, the following
    statement
  • int i 1 int j 2 int k 3
  • if (i gt j)
  • if (i gt k)
  • System.out.println("A")
  • else
  • System.out.println("B")
  • is equivalent to
  • int i 1 int j 2 int k 3
  • if (i gt j)
  • if (i gt k)
  • System.out.println("A")
  • else
  • System.out.println("B")

27
Note, cont.
  • Nothing is printed from the preceding statement.
    To force the else clause to match the first if
    clause, you must add a pair of braces
  • int i 1
  • int j 2
  • int k 3
  • if (i gt j)
  • if (i gt k)
  • System.out.println("A")
  • else
  • System.out.println("B")
  • This statement prints B.

28
switch/case Statement
  • Sometimes, it is necessary to test the content of
    a variable against a list of possible values
  • Can use a number of if..else if..else
  • But coding is tedious
  • Java provides a faster and more readable flow of
    control statement switch/case
  • The switch structure may be used to select among
    mutually exclusive options based on the results
    of a single integer or character expression.

29
switch/case Statement
  • default is optional
  • Recommend to use even just logging
  • Let you know unexpected value
  • break means end of execution for the case
  • If no, the following will be executed
  • Recommend to use

30
switch/case vs if/else
  • switch/case can support expression of type byte,
    short, char or int
  • can check the equality for byte, short, char or
    int
  • only supports equality checking
  • if/else can support boolean type only
  • with proper relational operators, can support all
    primitive type and non-primitive type
  • can check the equality for long, float, double,
    boolean and non-primitive types
  • can use any relational operator.

31
switch/case vs if/else
  • Although switch/case is more restricted,
  • Its structure is more elegant and easier to read
  • Faster
  • Use it whenever possible

32
Looping
do/while structure
while structure
for structure
Javas single-entry/single-exit control
structures.
33
Which Loop to Use?
The three forms of loop statements, while, do,
and for, are expressively equivalent that is,
you can write a loop in any of these three forms.
I recommend that you use the one that is most
intuitive and comfortable for you. In general, a
for loop may be used if the number of repetitions
is known, as, for example, when you need to print
a message 100 times. A while loop may be used if
the number of repetitions is not known, as in the
case of reading the numbers until the input is 0.
A do-while loop can be used to replace a while
loop if the loop body has to be executed before
testing the continuation condition.
34
Caution
  • Adding a semicolon at the end of the for clause
    before the loop body is a common mistake, as
    shown below
  • for (int i0 ilt10 i)
  • System.out.println("i is " i)
  • Always use integer variables as for loop indexes,
    and never modify their values inside the loop.

Wrong
35
Caution, cont.
  • Similarly, the following loop is also wrong
  • int i0
  • while (ilt10)
  • System.out.println("i is " i)
  • i
  • In the case of the do loop, the following
    semicolon is needed to end the loop.
  • int i0
  • do
  • System.out.println("i is " i)
  • i
  • while (ilt10)

Wrong
Correct
36
The break Keyword
37
The continue Keyword
38
Unit 6 Break Vs Continue
  • The break statement, which is used in the switch
    statement, can be used in the loop body.
  • When the break statement is executed, the program
    control jumps to the statement after the loop
    body, i.e. break the loop.
  • The continue statement causes the program control
    jumps to the end of the loop and then go back to
    the condition checking and then continues.

39
Unit 6 Break Vs Continue
  • Example
  • class ContinueAndBreak
  • public static void main (String args)
  • int num
  • for (num1 numlt10 num)
  • if (num5) break
  • System.out.println("num is "num)
  • System.out.println("The break makes the system
    to print the number to
    4")
  • for (num1 numlt10 num)
  • if (num5) continue
  • System.out.println("num is "num)
  • System.out.println("The continue makes the
    system to skip the number 5")

40
Introducing Methods
Method Structure
A method is a collection of statements that are
grouped together to perform an operation.
41
Introducing Methods, cont.
  • parameter profile refers to the type, order, and
    number of the parameters of a method.
  • method signature is the combination of the method
    name and the parameter profiles.
  • The parameters defined in the method header are
    known as formal parameters.
  • When a method is invoked, its formal parameters
    are replaced by variables or data, which are
    referred to as actual parameters.

42
Pass-by-value
  • Java programs communicate with their methods
    using pass-by-value scheme.
  • prevent a method from accidentally modifying its
    calling arguments
  • The pass-by-value scheme also applies to objects
    as well, but the results are different.
  • Passing references to arrays and objects instead
    of copying the objects themselves is
  • much more efficient
  • but weakens the security of the program

43
Ambiguous Invocation
  • Sometimes there may be two or more possible
    matches for an invocation of a method, but the
    compiler cannot determine the most specific
    match. This is referred to as ambiguous
    invocation. Ambiguous invocation is a compilation
    error.

44
Ambiguous Invocation
  • public class AmbiguousOverloading
  • public static void main(String args)
  • System.out.println(max(1, 2))
  •  
  • public static double max(int num1, double num2)
  • if (num1 gt num2)
  • return num1
  • else
  • return num2
  • public static double max(double num1, int num2)
  • if (num1 gt num2)
  • return num1
  • else
  • return num2

45
Class Declaration
  • class Circle
  • private double radius 1.0
  • double findArea()
  • return radius radius 3.14159

46
Declaring Object Reference Variables
  • ClassName objectReference
  • Example
  • Circle myCircle

47
Creating Objects
  • objectReference new ClassName()
  • Example
  • myCircle new Circle()
  • The object reference is assigned to the object
    reference variable.

48
Differences between variables of primitive Data
types and object types
49
Copying Variables of Primitive Data Types and
Object Types
50
Garbage Collection
  • As shown in the previous figure, after the
    assignment statement c1 c2, c1 points to the
    same object referenced by c2. The object
    previously referenced by c1 is no longer useful.
    This object is known as garbage. Garbage is
    automatically collected by JVM.

51
Constructors
  • Circle(double r)
  • radius r
  • Circle()
  • radius 1.0
  • myCircle new Circle(5.0)

Constructors are a special kind of methods that
are invoked to construct objects.
52
Constructors, cont.
A constructor with no parameters is referred to
as a default constructor. Constructors must have
the same name as the class itself. Constructors
do not have a return typenot even void.
Constructors are invoked using the new operator
when an object is created. Constructors play the
role of initializing objects.
53
Visibility Modifiers
  • By default, the class, variable, or data can
    beaccessed by any class in the same package.
  • public
  • The class, data, or method is visible to any
    class in any package.
  • private
  • The data or methods can be accessed only by the
    declaring class.
  • The get and set methods are used to read and
    modify private properties.

54
Visibility Modifiers Cont.
  • The instance variables of a class should normally
    be declared private, and the class methods should
    be used to provide a standard interface to the
    class.
  • Use set methods to check the validity and
    consistency of input data before it is stored in
    an objects instance variable.
  • get methods are used to retrieve information from
    the instance variables and to format it properly
    for presentation to the outside world.

55
Passing Objects to Methods
  • Passing by value (the value is the reference to
    the object)

56
Passing Objects to Methods, cont.
57
Class Variables, Constants, and Methods
Class variables are shared by all the instances
of the class.Class methods are not tied to a
specific object. Class constants are final
variables shared by all the instances of the
class.
58
Class Variables, Constants, and Methods, cont.
To declare class variables, constants, and
methods, use the static modifier.
59
Scope of Variables
  • The scope of instance and class variables is the
    entire class. They can be declared anywhere
    inside a class.
  • The scope of a local variable starts from its
    declaration and continues to the end of the block
    that contains the variable. A local variable must
    be declared before it can be used.

60
Java API and Core Java classeshttp//java.sun.com
/j2se/1.4.2/docs/api/
  • java.lang
  • Contains core Java classes, such as numeric
    classes, strings, and objects. This package is
    implicitly imported to every Java program.
  • java.awt
  • Contains classes for graphics.
  • java.applet
  • Contains classes for supporting applets.

61
Java API and Core Java classes, cont.
  • java.io
  • Contains classes for input and outputstreams and
    files.
  • java.util
  • Contains many utilities, such as date.
  • java.net
  • Contains classes for supportingnetwork
    communications.

62
Java API and Core Java classes, cont.
  • java.awt.image
  • Contains classes for managing bitmap images.
  • java.awt.peer
  • Platform-specific GUI implementation.
  • Others
  • java.sql
  • java.rmi
Write a Comment
User Comments (0)
About PowerShow.com