Download Intro to Objects and Random number generation

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Chapter 3
Using Classes and Objects
Creating Objects
 A variable holds either a primitive type or a
reference to an object
 A class name can be used as a type to declare
an object reference variable
2
Remember…
Primitive Data Types
5
X
int x = 5;
A primitive data type
variable contains the
value itself, but an
object variable
contains the address
of the object
Primitive Data Type
3
References to Objects

An object reference variable holds the address of an object
String s = “Hello”;
//same as: String s = new String(“Hello”);
“Hello”
s
An object
variable
contains the
address of
the object
Memory
location
4
Declaring the Object
 The object itself must be created separately
String s;
s
Memory
location
5
Creating the Object itself
 The object itself must be created separately
s
String s;
s = “Hello”;
“Hello”
Memory
location
6
Is this assignment?
String s;
String t;
s = “hello”;
t = s;
t
“Hello”
s
Memory
location
7
Creating Objects, the formula
 Generally, we use the new operator to create an object
Object
objectReference = new
Class name
Object
Class name
(
0 or more
parameters
);
The identifier
or variable name
Specifications for the
newly created object
8
Creating Objects
 Generally, we use the new operator to create an object
String name = new String (”Blanca J. Polo");
This keyword new calls the String constructor
That is the one that creates/builds the object
Creating an object is called instantiation
An object is an instance of a particular class
9
Invoking Methods
 We've seen that once an object has been instantiated, we can
use the dot operator to invoke its methods
int nameLength = 0;
nameLength = name.length()
 A method may return a value
 The returned value can be used in an assignment or expression
10
The main method is void
A void method
doesn’t return
anything
Return types
can be of any
Primitive Data
Type
Return types can be
of any Object kind,
either pre-made by
JAVA or made by
you
11
Review: The difference
int num
38
Srting name
”Blanca Polo"
12
Primitive Data Type
Assignment Review
 The act of assignment takes a copy of a value and stores it in a
variable
 For primitive types:
Before:
num1
38
num2
96
num2 = num1;
After:
num1
38
num2
38
13
Object Assignment
Review
 For object references, assignment copies the address:
Before:
name1
”Tom Hanks"
name2
”Kurt Russell"
name2 = name1;
name1
After:
”Tom Hanks"
name2
14
Aliases
 Two or more references that refer to the same object are called
aliases of each other
 That creates an interesting situation: one object can be
accessed using multiple reference variables
 Aliases can be useful, but should be managed carefully
 Changing an object through one reference changes it for all of
its aliases, because there is really only one object
15
Garbage Collection
 When an object no longer has any valid references to it, it can
no longer be accessed by the program
 The object is useless, and therefore is called garbage
 Java performs automatic garbage collection periodically,
returning an object's memory to the system for future use
 In other languages, the programmer is responsible for
performing garbage collection
16
Class Libraries
 A class library is a collection of classes that we can use when
developing programs
 The Java standard class library is part of any Java development
environment
 Other class libraries can be obtained through third party
vendors, or you can create them yourself
17
What is in a Package
 A package is a directory of files that contain utilities.
 All classes of the java.lang package are imported
automatically into all programs.
 The String class, and the System.out class are part of this
package.
18
Packages
 The classes of the Java standard class library are organized into
packages
 Some of the packages in the standard class library are:
Package
Purpose
java.lang
java.applet
java.awt
javax.swing
java.net
java.util
javax.xml.parsers
General support
Creating applets for the web
Graphics and graphical user interfaces
Additional graphics capabilities
Network communication
Utilities
XML document processing
19
The import Declaration
 When you want to use a class from a package, you could use its
fully qualified name
java.util.Random
 Or you can import the class, and then use just the class name
import java.util.Random;
 To import all classes in a particular package, you can use the *
wildcard character
import java.util.*;
20
The import Declaration
 Import statements are always at the top of the program.
import java.lang.*;
 Many of the classes that we will use in this class will need to be
imported.
 Different JAVA programming environments have different
libraries
 We will use the standard libraries that can be found in any
programming environment.
21
Counting
22
The Random Class
 The Random class is part of the java.util package
 It provides methods that generate pseudorandom numbers
23
Random Class Methods
 Constructor:
Random( )
Random r = new Random( );
• float nextFloat( )
Returns a random number between
0.0 and 1.0 inclusive
float f;
f = r.nextFloat( );
24
More Random Class Methods
• int nextInt( )
Returns a random number that
ranges over all possible int values
positive and negative
int i;
i = r.nextInt( );
• int nextInt( int num )
Returns a random number between
0 and num-1 (inclusive)
int i;
i = r.nextInt(5 );
// generates a number between 0 and 4
See
25
Java/Numbers/GenOneRandom.java
Java/Numbers/OneRandom.java
Questions
26
Questions?
27