Finally a taste of Java - PowerPoint PPT Presentation

1 / 45
About This Presentation
Title:

Finally a taste of Java

Description:

a taste of Java! History. 1991 - James Gosling, Sun Microsystems, Inc. ... later (1994) used for World Wide Web applications (since byte code can be ... – PowerPoint PPT presentation

Number of Views:19
Avg rating:3.0/5.0
Slides: 46
Provided by: alanwi8
Category:
Tags: finally | gosling | java | taste

less

Transcript and Presenter's Notes

Title: Finally a taste of Java


1
Finally! a taste of Java!
  • History
  • 1991 - James Gosling, Sun Microsystems, Inc.
  • originally a language for programming home
    appliances
  • later (1994) used for World Wide Web applications
    (since byte code can be downloaded and run
    without compiling it)
  • Eventually used as a general-purpose programming
    language (for the same reason as above plus it is
    object-oriented)

2
Three Elements of Java
  • The Java Runtime Environment (JRE)
  • Needed to run Java programs
  • Most internet browsers now include the JRE.
  • If you are going to use Java programs (as opposed
    to creating them), this is all you need.
  • The Java programming language
  • The language used to create programs.
  • The Java Application Programmers Interface (API)
  • A (large) collection of pre-written programs in
    the software development kit (SDK) that can be
    used by your Java programs.
  • The interface describes how to connect your
    programs with the ones in the SDK.

3
Translation of Java to machine code
  • A two step process
  • Step 1 Compile source code to Java byte code.
  • Byte code is a standard intermediate-level
    language.
  • Input Java code in one or more files ending in
    .java
  • Output Byte code in one or more files ending in
    .class
  • Step 2 Interpret Java byte code on a particular
    machine
  • The interpreter converts each byte code statement
    to the specific type of machine code and then
    runs that machine code.

4
Why 2 steps?
  • Byte code is standard, so you can compile Java
    programs on any machine, and run them on any
    other machine that has a Java interpreter.
  • This means that .class files can be downloaded
    from the Internet and run locally.
  • Only the original program developer needs a
    compiler and the software development kit.
  • Avoids having to re-compile the program for every
    combination of hardware and operating system.
  • The Java interpreter is called a Virtual
    Machine and is part of the Java Runtime
    Environment.
  • Java virtual machines are specific to one type of
    computer and operating system.
  • Most internet browsers now include a Java virtual
    machine.

5
Compile
Java Source Code (.java)
Java Byte Code (.class)
Java Compiler
Download (optional)
.class
.class
Java Virtual Machine A
Run
Java Virtual Machine B
(Machine Code A)
(Machine Code B)
6
Our First Java Program
  • Lets write a Java program to print
  • Hello, world!
  • on the screen

7
Our First Java Program
  • Code to begin and end your program
  • (to be explained later)
  • public class Hello
  • public static void main( String args )
  • System.out.println( "Hello, world!" )

8
Java Program Structure
  • All Java code must be part of a class, and a
    Java program is structured as a set of classes.
  • Every class has a name
  • public class Hello
  • Braces and are used to mark the start and end
    of the class.
  • Other class information may also appear with the
    name
  • A public class is one that can be referred to
    by other classes.

9
Comments
  • Programmers use comments in their code to provide
    information to the reader on what the code is
    doing.
  • When a program is compiled, the compiler skips
    all comments.
  • It is common (and good) practice to use a comment
    at the top of the code containing general
    information about the file (known as a header).

10
Code Comments
  • Single line comment
  • Everything from // to the end of the line is the
    comment
  • some code // This is a comment
  • more code
  • General comment
  • Everything from / to the next occurrence of /
    is a comment
  • Can be part of a line code / comment / more
    code
  • Can be several lines
  • code / start of comment
  • more comment
  • end of comment / more code

11
Sample Program Header
  • /
  • Hello.java
  • Author Brigitte Helen Boudreau
  • Student ID 123456
  • This program is a simple program that displays
  • Hello, world!
  • Modifications
  • 08/09/2003 BHB first created
  • 25/08/2004 AWW modified slightly
  • /

12
Components of Classes
  • Inside a class, there can be
  • attributes they store some information
  • methods they do some work.
  • In our first program, we have zero attributes and
    one method.
  • Each method has 2 parts a header, and a body.
  • The header contains the name and other
    information about the method.
  • A user of the method needs to know this
    information.
  • The body describes what the method should do.
  • Braces and are used to mark the start and end
    of the method body.

13
Methods
  • In our first program, we have one method.
  • public static void main(String args) //
    header
  • System.out.println( "Hello, world!" )
  • The name of the method is main
  • main is a special name it means when you run
    the program, start here.
  • Other information in the method header will be
    explained later for now, every main method
    should have this exact header.
  • A method body consists of a set of statements.
  • Each statement is terminated by a semi-colon
  • Our main method has only one statement.

14
Statements
  • Our first Java program has one statement
  • System.out.println( "Hello, world!" )
  • Whatever is between the double quotes will appear
    on the screen, and then the output will move to
    the next line of the screen.
  • System is the name of a special class that comes
    with Java
  • The . operator asks to go inside a class to an
    attribute or method.
  • The above asks to start the println method
    contained in the out attribute of the System
    class.
  • The information between quotes is passed to the
    println method.
  • On any computer with a Java virtual machine, the
    System class keeps track of machine-specific
    information (such as how to get information onto
    the screen).

15
Data in Java
  • Java is a typed language
  • Every data value must have a type
  • The type gives rules for what values are allowed,
    and what operations can be done with the values.
  • For the computer, values of a certain type
    usually take a known amount of storage space in
    memory.

16
Java Primitive data types
  • A data item has a PRIMITIVE type if it represents
    a single value, which cannot be decomposed.
  • Java has a number of pre-defined primitive data
    types. In this course, we will use the following
    types
  • int represents integers (e.g. 3)
  • long represents large integers
  • double represents real numbers (e.g. 3.0)
  • char represents single characters
  • boolean represents Boolean (logical) values

17
Variables
  • To store a value, we use a variable a name
    referring to the location in which the value is
    stored.
  • Variables must be declared before they can be
    used.
  • A variable declaration has three parts
  • The type of the variable
  • The name of the variable
  • (Optional) Assign an initial value to the
    variable.
  • Example int x 3

18
Assigning Values
  • The equals sign is used to represent assigning
    a value to a variable.
  • General form ltvariable namegt ltexpressiongt
  • In an assignment statement
  • The expression to the right of is evaluated.
  • The value is put in the memory location
    represented by the variable name.
  • Whatever value was previously associated with the
    variable is replaced (lost).
  • Example (assume x and y are declared previously)
  • x 3 y

19
The Boolean Type
  • A Boolean variable is one which can have only 2
    possible values true or false. (These are not
    numbers.)
  • Boolean variables are used when you need to do
    logical tests
  • Example Is X greater than 3? x gt 3
  • Boolean operators
  • and (represented by in Java)
  • or (represented by in Java)
  • not (represented by ! in Java)

20
Truth Tables
  • A TRUTH TABLE for a compound Boolean expression
    shows the results for all possible combinations
    of the simple expressions

21
Type int
  • A variable of type int may take values
    from2147483648 to 2147483647.
  • Exceeding the range of legal values results in
    OVERFLOW, a run-time error.
  • The following operators are available for type
    int
  • (addition)
  • (subtraction, negation)
  • (multiplication)
  • / (integer division, where fraction is lost
    result is an int)
  • Example 7 / 3 2
  • (remainder from division)
  • Example 7 3 1
  • ! gt lt gt lt (comparisons these take two
    values of type int and return a
    boolean value)

22
Type long
  • A variable of type long may take values
    from9223372036854775808L to 9223372036854775807L
    .
  • To indicate the difference between an int
    constant and a long constant, the character L is
    appended
  • Example
  • 1 is of type int
  • 1L is of type long
  • Values of type long take up twice as much memory
    as values of type int.

23
Type double (Literals)
  • Type double represents real numbers
    approximately from-1.7 ? 10308 to 1.7 ? 10308
    with 15 accurate significant digits.
  • While there are a lot of double values, the set
    of legal double values is still finite, and so
    they are only an approximation to real numbers.
  • After a computation, the computer has to choose
    the closest double value to a real result this
    can introduce round-off errors.
  • Format of large or small values
  • 12345600000000000.0 0.123456 ? 1017 is
    0.123456e17
  • 0.00000123456 0.123456 ? 10-5 is 0.123456e-5
  • If the value of e is more negative than about
    -308, the result is UNDERFLOW, and the value will
    be replaced by zero. This happens quietly, and
    is not a run-time error.

24
Type double (Operators)
  • The following operators are available for type
    double
  • (addition)
  • (subtraction, negation)
  • (multiplication)
  • / (division in real numbers, result is a
    double)
  • gt lt (comparisons these take two values of
    type double and return a boolean value)
  • WARNING Using (or ! gt lt) to compare two
    values of type double is legal, but NOT
    recommended, because of the potential for
    round-off errors.
  • Later on, we will see a safe way to do this.

25
Type char
  • Characters are individual symbols, enclosed in
    single quotes
  • Examples
  • letters of the alphabet (upper and lower case are
    distinct) 'A', 'a'
  • punctuation symbol (e.g. comma, period, question
    mark)
  • single blank space
  • parentheses '(',')' brackets '','' braces
    '',''
  • single digit ('0', '1', '9')
  • special characters such as '_at_', '', '', and so
    on.

26
Special characters
  • Some characters are treated specially because
    they cannot be typed easily, or have other
    interpretations in Java.
  • new-line character '\n'
  • tab character '\t'
  • single quote character '\''
  • double quote character '\"'
  • backslash character '\\'
  • All of the above are single characters, even
    though they appear as two characters between the
    quotes.
  • The backslash is used as an escape character it
    signifies that the next character is not to have
    its usual meaning.

27
Strings (1)
  • A STRING is a collection of characters.
  • There is NO primitive data type in Java for a
    string.
  • We will see later how to deal with strings in
    general.
  • String literals (constants) can be used to help
    make your program output more readable.
  • String literals are enclosed in double quotes
  • "This is a string
  • Watch out for
  • "a" (a string) versus 'a' (a character)
  • " " (a string literal with a blank that has
    length 1) versus"" (an empty string a string
    literal of length 0)
  • "257" (a string) versus 257 (an integer)

28
String Concatenation
  • Strings can be CONCATENATED (joined) using the
    operator
  • "My name is" "Alan" gives"My name isAlan"
  • String values can also be concatenated to values
    of other types with the operator.
  • "The speed is " 15.5 gives "The speed is 15.5"
  • Because one of the values for the operator is a
    string , the double is temporarily converted to a
    string value "15.5" before doing the
    concatenation.

29
Precedence of Operators
  • Operators are evaluated left-to-right, with the
    following precedence (all operators on the same
    line are treated equally)
  • () (expression) (array subscript) . (object
    member)
  • (to indicate positive or negative values) !
    (not)
  • /
  • - (for addition or subtraction of two values,
    concatenation)
  • lt gt gt lt
  • !
  • (assignment to variable)

30
Operator Precedence
  • What is the order of evaluation in the following
    expressions?

a b c d e
a b c - d / e
a / (b c) - d e
a / (b (c (d - e)))
31
The Math class
  • The Java class Math provides constants and
    methods for common mathematical functions (see
    text page 43)
  • Math.PI the value of ?
  • Math.E the value of e
  • Math.abs(x) absolute value
  • Math.sin(x) sine x in radians (also cos, tan)
  • Math.asin(x) arcsine (also acos, atan)
  • Math.log(x) natural logarithm, x gt 0
  • Math.exp(x) ex
  • Math.pow(x,y) xy
  • Math.sqrt(x) square root
  • Math.floor(x) next lower integer
  • Math.ceil(x) next higher integer
  • Math.round(x) closest integer

32
Random Numbers
  • Random numbers are often needed for
  • simulations
  • games
  • The method Math.random() returns a random number
    x of type double such that 0 x lt 1.
  • Repeated calls will produce a uniform
    distribution
  • that is, the probability that any particular
    number will be returned is exactly the same as
    any other number.
  • To adjust the range of random numbers
  • y Math.floor(Math.random() 5) 1
  • y will be an integer such that 1 y 5

33
Console Input and Output
  • We have already seen how to print a value on the
    screen
  • System.out.println( aValue )
  • Reading information from the keyboard is not
    straightforward in Java
  • What you type is treated as a collection of
    characters, even if you want to enter a number.
  • We have to read an entire line at once, and then
    convert the characters to whatever data type is
    needed.

34
Java Output methods
  • There are two useful Java methods from the class
    System
  • System.out.println( aValue )
  • System.out.print( aValue )
  • Method println() will append a new-line character
    to the output, while print() does not.
  • These methods are unusual in that the type of
    aValue does not matter.
  • Method println() with no parameters can be used
    to print a blank line.

35
Java Input
  • If one were to use Javas input methods directly
    (see text, section 2.8), the following is needed
  • At the start of the program, create a buffered
    reader
  • Whenever you want to read some input
  • Read a line of characters from the keyboard
  • PARSE the input
  • For example, if you are expecting the user to
    enter a value for type double, parsing checks
    that the characters that have been entered form a
    valid double.

36
Simplified Keyboard Input
  • To simplify your code, a class called Keyboard is
    provided. You can download it from the course
    website.
  • In your assignments and labs, include this file,
    called Keyboard.java, in the same directory as
    your program. Then you may call the methods in
    this class to read a value (or values) from the
    keyboard.

37
Methods in class Keyboard
  • Here are some of the methods available in the
    class Keyboard.
  • Keyboard.readInt()
  • Reads a single integer value of type int
  • Keyboard.readLong()
  • Keyboard.readDouble()
  • Keyboard.readChar()
  • Read a single character from the keyboard.
  • Keyboard.readString()
  • Read all characters typed before the user hits
    enter
  • Keyboard.readBoolean()
  • Type the word true or false (no quotes) on the
    keyboard and the appropriate boolean value will
    be created.

38
Examples of using Keyboard
  • int x Keyboard.readInt( )
  • If you type 123 and press ENTER, x will have the
    value 123 .
  • Method readDouble works the same way.
  • boolean b Keyboard.readBoolean( )
  • If you type false and press ENTER, b will have
    the value false.
  • long x Keyboard.readInt( )
  • If you type 123 and press ENTER, x will have the
    value of a long integer 123L.

39
What happens if the usertypes the wrong value?
  • If you use Keyboard.readInt(), you are expecting
    the user to type a set of characters that form a
    legal integer in the proper range for an int
    variable.
  • If the user types something else
  • A default value will be returned that will
    match the type of the variable
  • false for a boolean
  • the lowest possible integer
  • a special not a number floating point value
  • Later on, we will see how to check user input in
    our programs.

40
Input and Output Prompts
  • When the user is being asked to enter something
    from the keyboard, your program should always
    print a message first to tell the user what to
    enter.
  • Example
  • int x
  • System.out.println(Enter an integer from 0 to
    3)
  • x Keyboard.readInt()
  • Likewise, when your program prints a value, there
    should be a prompt to explain what the value is
  • Example
  • System.out.println(You typed x )

41
Problem Solving
  • We now have enough tools to start solving some
    problems.
  • For any problem, BEFORE you start writing a
    program, determine
  • What are the input values that are needed from
    the user?
  • What results (outputs) do we need to determine?
  • What other values are needed?
  • math constants ?, e, etc.
  • physical constants
  • What temporary values might need to be
    calculated?
  • How do we calculate the results?

42
Example 1
  • Calculate the area of a circle from its radius
  • what input values do we need?
  • what other values do we need?
  • what is our output?
  • how do we calculate the result?

43
Example 2
  • Calculate the distance travelled by an object
    under constant acceleration, given a specified
    time.
  • What input values do we need?
  • What other values do we need?
  • What is the result?
  • How do we calculate the result?

44
Example 3
  • Carbon-14 dating
  • General radioactive decay equation
  • Q0 initial quantity of radioactive substance
  • Q(t) quantity of radioactive substance at time
    t (in years)
  • ? radioactive decay constant for a specific
    element
  • Q(t) Q0e?t is the rate of decay equation
  • Carbon-14 is continuously taken in by a living
    organism, and the amount of material at death is
    assumed to be known.
  • Once the intake stops, the carbon-14 decays at
    the above rate, where ? 0.00012097 / year
  • Measure the percentage of carbon-14 remaining

45
Example 3 continued
  • Solve for t to determine the age
  • Another useful thing to know if half of the
    Carbon-14 remains, the sample is about 5730 years
    old.
  • Create a Java program to determine the age
  • what are the inputs?
  • what are the outputs?
  • what other values do we need?
  • how do we calculate the formula?
Write a Comment
User Comments (0)
About PowerShow.com