Short Summary - PowerPoint PPT Presentation

About This Presentation
Title:

Short Summary

Description:

An index used in an array reference must specify a valid element ... For example, if the array codes can hold 100 values, it can only be indexed ... – PowerPoint PPT presentation

Number of Views:15
Avg rating:3.0/5.0
Slides: 31
Provided by: csHu
Category:

less

Transcript and Presenter's Notes

Title: Short Summary


1
Short Summary
Java Types
float, double long, int, short byte char boolean
Objects
Objects are created by Declaring a
reference and calling a constructor. Basic types
are created by Declaring a variable.
2
Tirgul no. 5
  • Topics covered
  • Memory sharing, aliasing
  • Complex class example
  • Arrays in java
  • Command line arguments in java

3
Summary (cont.)
A java program
Object0 has a main method
Basic Type1
Object1
Basic TypeN
ObjectN
  • A java program is a set of objects, where at
    least
  • one of the objects has a method called main.
  • Running a program means executing the
  • commands which appear in the main method.
  • The main method is usually comprised of
  • calls to constructors, creating a set of
    objects
  • and then sending them messages.

4
Keyword Summary (cont.)
  • public -
  • method any method/object has access to this
  • method.
  • field DO NOT CREATE FIELDS WITH PUBLIC
  • ACCESS , the only place where this
    is acceptable
  • is if the field is final .
  • private -
  • method only other methods inside this
    class may use this
  • method .
  • field this is the common access specifier
    for fields and
  • is most likely to be acomponied with
    public
  • methods that allow supervised access
    to it.

5
Keyword Summary (cont.)
  • final -
  • method ---
  • field, local variable this specifier means
    that once this
  • field/variable is
    given a value there
  • is no way to
    change it (this is why
  • fields that have
    this specifier may
  • sometimes be
    declared as public).
  • return -
  • method if the keyword return is followed by
    a
  • variable/value this value is
    returned as a result .
  • Return without any following
    variable means to
  • exit the method.

6
Memory (to share or not to share)
Date d1,d2 d1 new Date(1,1,1999) d2 new
Date(1,1,1999)
Date d1,d2 d1 new Date(1,1,1999) d2 d1
d1
d1
1,1,1999
1,1,1999
d2
d2
1,1,1999
7
Memory (cont.)
Date d1,d2 d1 new Date(1,1,1999) d2
d1 if(d1 d2) System.out.println(same
date)
Date d1,d2 d1 new Date(1,1,1999) d2 new
Date(1,1,1999) if(d1 d2) System.out.println(
same date)
Which program prints same date ? Why? Is this
what we really want?
8
Class Complex Example
  • public class Complex
  • private double real
  • private double imaginary
  • public Complex(double real,double imaginary)
  • this.real real
  • this.imaginary imaginary
  • public Complex(Complex other)
  • this.real other.real
  • this.imaginary other.imaginary
  • public double getReal()
  • return real
  • public double getImaginary()

9
Class Complex (contd.)
  • public Complex add(Complex right)
  • double r,i
  • r real right.getReal()
  • i imaginary right.getImaginary()
  • return (new Complex(r,i))
  • public Complex add(double val)
  • double r
  • r real val
  • return (new Complex(r,imaginary))

10
Class Complex (contd.)
  • public Complex multiply(Complex right)
  • double r,i
  • r (real right.getReal()) -
  • (imaginary right.getImaginary())
  • i (imaginary right.getReal())
  • (real right.getImaginary())
  • return(new Complex(r,i))
  • public Complex multiply(double scale)
  • double r,i
  • r real scale
  • i imaginary scale
  • return(new Complex(r,i))

11
Class ComplexPair
  • public class ComplexPair
  • private Complex first
  • private Complex second
  • public ComplexPair(Complex first,
  • Complex
    second)
  • if(first ! null)
  • this.first new Complex(first)
  • if(second ! null)
  • this.second new Complex(second)
  • public Complex getFirst()
  • if(first ! null)
  • return (new Complex(first))
  • return (null)
  • public Complex getSecond()

12
public class QuadSolution private int
numberOfSolutions private Complex solution1
private Complex solution2 public
QuadSolution(int solNum,Complex solution1,Complex
solution2) numberOfSolutions solNum
this.solution1 solution1 this.solution2
solution2 public int numSolutions()
return numberOfSolutions public String
toString() String result new
String(solution1.toString())
if(numberOfSolutions 2) result
result.concat("\n" solution2.toString()
"\n") return result
13
public Complex getSolution(int solution)
switch(solution) case 1 return
solution1 case 2 if(numberOfSolutions
1) System.err.println("QuadSolution Error
trying to access non" "existant
solution") return null else
return solution2 default
System.err.println("QuadSolution Error trying
to access illegal" "solution number (legal
values are 1,2).") return null
A problem here? (Aliasing)
14
public class MyMath
//Assumption only one coefficient a or b may
be zero . public QuadSolution
solveQuadratic(double a,double b,double c)
int solNum Complex solution1null
Complex solution2null double disc
if(a0) solNum1 solution1 new
Complex(-c/b,0.0) else disc
bb - 4ac if(disc0) solNum1 solut
ion1 new Complex(-b/(2a),0) else
if(disclt0) disc Math.sqrt(-disc) solution1
new Complex(-b/(2a),disc/(2a)) solution2
new Complex(-b/(2a),-disc/(2a)) solNum2
else disc Math.sqrt(disc) solution1
new Complex((-bdisc)/(2a),0) solution2 new
Complex((-b-disc)/(2a),0) solNum2
return new QuadSolution(solNum,solution1,so
lution2)
15
Arrays
  • An array is an ordered list of values

0 1 2 3 4 5 6 7 8
9
An array of size N is indexed from zero to N-1
This array holds 10 values that are indexed from
0 to 9
16
Arrays
  • A particular value in an array is referenced
    using the array name followed by the index in
    brackets
  • For example, the expression
  • scores2
  • refers to the value 94 (which is the 3rd value
    in the array)
  • That expression represents a place to store a
    single integer, and can be used wherever an
    integer variable can
  • For example, it can be assigned a value, printed,
    or used in a calculation

17
Arrays
  • An array stores multiple values of the same type
  • That type can be primitive types or objects
  • Therefore, we can create an array of integers, or
    an array of characters, or an array of String
    objects, etc.
  • In Java, the array itself is an object
  • Therefore the name of the array is a object
    reference variable, and the array itself is
    instantiated separately

18
Declaring Arrays
  • The scores array could be declared as follows
  • int scores new int10
  • Note that the type of the array does not specify
    its size, but each object of that type has a
    specific size
  • The type of the variable scores is int (an
    array of integers)
  • It is set to a new array object that can hold 10
    integers

19
Declaring Arrays
  • Some examples of array declarations
  • float prices new float500
  • boolean flags
  • flags new boolean20
  • char codes new char1750

20
Bounds Checking
  • Once an array is created, it has a fixed size
  • An index used in an array reference must specify
    a valid element
  • That is, the index value must be in bounds (0 to
    N-1)
  • The Java interpreter will throw an exception if
    an array index is out of bounds
  • This is called automatic bounds checking

21
Bounds Checking
  • For example, if the array codes can hold 100
    values, it can only be indexed using the numbers
    0 to 99
  • If count has the value 100, then the following
    reference will cause an ArrayIndexOutOfBoundsExcep
    tion
  • System.out.println (codescount)
  • Its common to introduce off-by-one errors when
    using arrays

for (int index0 index lt 100
index) codesindex index50 epsilon
22
Bounds Checking
  • Each array object has a public constant called
    length that stores the size of the array
  • It is referenced using the array name (just like
    any other object)
  • scores.length
  • Note that length holds the number of elements,
    not the largest index

23
First example
public class ReverseNumbers public static
void main (String args) double
numbers new double10
System.out.println ("The size of the array "
numbers.length) for (int index 0 index
lt numbers.length index)
System.out.print ("Enter number " (index1)
" ") numbersindex
EasyInput.readDouble()
System.out.println ("The numbers in reverse")
for (int index numbers.length-1 index gt
0 index--) System.out.print
(numbersindex " ")
System.out.println ()
24
Second example
public class LetterCount public
static void main (String args) final
int NUMCHARS 26 int upper new
intNUMCHARS int lower new intNUMCHARS
char current // the current character being
processed int other 0 // counter for
non-alphabetics System.out.println ("Enter a
sentence") String line EasyInput.readString(
) // Count the number of each letter occurance
for (int ch 0 ch lt line.length() ch)
current line.charAt(ch) if
(current gt 'A' current lt 'Z')
uppercurrent-'A' else if
(current gt 'a' current lt 'z')
lowercurrent-'a' else
other
25
Second example (continued)
// Print the results
System.out.println () for (int letter0
letter lt upper.length letter)
System.out.print ( (char) (letter 'A') )
System.out.print (" " upperletter)
System.out.print ("\t\t" (char) (letter
'a') ) System.out.println (" "
lowerletter) System.out.println
() System.out.println ("Non-alphabetic
characters " other)
26
Array Declarations Revisited
  • The brackets of the array type can be associated
    with the element type or with the name of the
    array
  • Therefore the following declarations are
    equivalent
  • float prices
  • float prices
  • The first format is generally more readable

27
Initializer Lists
  • An initializer list can be used to instantiate
    and initialize an array in one step
  • The values are delimited by braces and separated
    by commas
  • Examples
  • int units 147, 323, 89, 933, 540,
  • 269, 97, 114, 298, 476
  • char letterGrades 'A', 'B', 'C', 'D',
    'F'

28
Initializer Lists
  • Note that when an initializer list is used
  • the new operator is not used
  • no size value is specified
  • The size of the array is determined by the number
    of items in the initializer list
  • An initializer list can only be used in the
    declaration of an array

29
Arrays of Objects
  • The elements of an array can be object references
  • The following declaration reserves space to store
    25 references to String objects
  • String words new String25
  • It does NOT create the String objects themselves
  • Each object stored in an array must be
    instantiated separately

30
Two-Dimensional Arrays
  • A one-dimensional array stores a simple list of
    values
  • A two-dimensional array can be thought of as a
    table of values, with rows and columns
  • A two-dimensional array element is referenced
    using two index values
  • To be precise, a two-dimensional array in Java is
    an array of arrays

31
Multiplication table
int table new int 1010 for (int i0
ilt10 i) for (int j0 jlt10
j) tableij i j   System.out.println(ta
ble43) System.out.println(table21)
32
Multidimensional Arrays
  • An array can have as many dimensions as needed,
    creating a multidimensional array
  • Each dimension subdivides the previous one into
    the specified number of elements
  • Each array dimension has its own length constant
  • Because each dimension is an array of array
    references, the arrays within one dimension could
    be of different lengths

33
Command-Line Arguments
  • The signature of the main method indicates that
    it takes an array of String objects as a
    parameter
  • These values come from command-line arguments
    that are provided when the interpreter is invoked
  • For example, the following invocation of the
    interpreter passes an array of three String
    objects into main
  • gt java DoIt pennsylvania texas california
  • These strings are stored at indexes 0-2 of the
    parameter
Write a Comment
User Comments (0)
About PowerShow.com