Working With The Java Class Library
Working With The Java Class Library
Class Library
Introduction to Programming 1 1
Objectives
At the end of the lesson, the student should be able to:
Introduction to Programming 1 3
Introduction to OOP
● Example of objects
Introduction to Programming 1 4
Encapsulation
● Encapsulation
– the method of hiding certain elements of the implementation of a
certain class.
– By placing a boundary around the properties and methods of our
objects, we can prevent our programs from having side effects
wherein programs have their variables changed in unexpected ways.
Introduction to Programming 1 5
Classes and Objects
● Class
– can be thought of as a template, a prototype or a blueprint of an object
– is the fundamental structure in object-oriented programming
Introduction to Programming 1 6
Classes and Objects
● Object
– is composed of a set of data (properties) which are variables describing
the essential characteristics of the object, and consists of a set of
methods (behavior) that describes how an object behaves.
– An object is an instance of a class.
Introduction to Programming 1 7
Classes and Objects
● To differentiate between classes and objects, let us discuss
an example:
Introduction to Programming 1 8
Classes and Objects
● Classes provide the benefit of reusability.
Introduction to Programming 1 9
Class Variables
● Classes consist of
– Instance variables
– Instance methods
– Class Variables (static member variables)
● variables that belong to the whole class.
● This means that they have the same value for all the objects in the same class.
Introduction to Programming 1 10
Class Variables
● For example,
Introduction to Programming 1 11
Class Instantiation
● To create an object or an instance of a class, we use the
new operator.
● For example, if you want to create an instance of the class
String, we write the following code,
String str2 = new String(“Hello world!”);
or also equivalent to,
String str2 = "Hello";
Introduction to Programming 1 12
Class Instantiation
● The new operator
– allocates a memory for that object and returns a reference of that
memory location to you.
– When you create an object, you actually invoke the class'
constructor.
● The constructor
– is a method where you place all the initializations, it has the same
name as the class.
Introduction to Programming 1 13
Methods
● Method
– is a separate piece of code that can be called by a main program or
any other method to perform some specific function.
Introduction to Programming 1 14
Why Use Methods?
● The heart of effective problem solving is in problem
decomposition.
Introduction to Programming 1 15
Calling Instance Variables
● To illustrate how to call methods, let's use the String class
as an example.
● You can use the Java API documentation to see all the
available methods in the String class.
● Later on, we will create our own methods, but for now, let us
use what is available.
nameOfObject.nameOfMethod( parameters );
Introduction to Programming 1 16
Calling Instance Variables
● Let's take two sample methods found in the class String,
Introduction to Programming 1 17
Calling Instance Variables
● Using the methods,
Introduction to Programming 1 18
Parameter Passing
● Pass-by-Value
– when a pass-by-value occurs, the method makes a copy of the value
of the variable passed to the method. The method cannot
accidentally modify the original argument even if it modifies the
parameters during calculations.
– all primitive data types when passed to a method are pass-by-value.
Introduction to Programming 1 19
Pass-by-Value
Introduction to Programming 1 20
Parameter Passing
● Pass-by-Reference
– When a pass-by-reference occurs, the reference to an object is
passed to the calling method. This means that, the method makes a
copy of the reference of the variable passed to the method.
– However, unlike in pass-by-value, the method can modify the actual
object that the reference is pointing to, since, although different
references are used in the methods, the location of the data they are
pointing to is the same.
Introduction to Programming 1 21
Pass-by-Reference
Introduction to Programming 1 22
Pass-by-Reference
Introduction to Programming 1 23
Calling Static Methods
● Static methods
– methods that can be invoked without instantiating a class (means
without invoking the new keyword).
– Static methods belong to the class as a whole and not to a certain
instance (or object) of a class.
– Static methods are distinguished from instance methods in a class
definition by the keyword static.
Classname.staticMethodName(params);
Introduction to Programming 1 24
Calling Static Methods
● Examples of static methods, we've used so far in our
examples are,
//prints data to screen
System.out.println(“Hello world”);
Introduction to Programming 1 25
Scope of a Variable
● The scope
– determines where in the program the variable is accessible.
– determines the lifetime of a variable or how long the variable can
exist in memory.
– The scope is determined by where the variable declaration is placed
in the program.
Introduction to Programming 1 26
Scope of a Variable
● A variable's scope is
– inside the block where it is declared, starting from the point where it
is declared, and in the inner blocks.
Introduction to Programming 1 27
Example 1
Introduction to Programming 1 28
Example 1
● The code we have here represents five scopes indicated by
the lines and the letters representing the scope.
● Given the variables i,j,k,m and n, and the five scopes
A,B,C,D and E, we have the following scopes for each
variable:
– The scope of variable i is A.
– The scope of variable j is B.
– The scope of variable k is C.
– The scope of variable m is D.
– The scope of variable n is E.
Introduction to Programming 1 29
Example 2
Introduction to Programming 1 30
Example 2
● In the main method, the scopes of the variables are,
– ages[] - scope A
– i in B - scope B
– i in C – scope C
Introduction to Programming 1 31
Scope of a Variable
● When declaring variables, only one variable with a given
identifier or name can be declared in a scope.
● That means that if you have the following declaration,
{
int test = 10;
int test = 20;
}
Introduction to Programming 1 32
Scope of a Variable
● However, you can have two variables of the same name, if
they are not declared in the same block. For example,
int test = 0;
System.out.print( test );
//..some code here
{
int test = 20;
System.out.print( test );
}
Introduction to Programming 1 33
Coding Guidelines
● Avoid having variables of the same name declared inside
one method to avoid confusion.
Introduction to Programming 1 34
Type Casting
● Type Casting
– Converting data type of one data to another data type
● To be discussed
– Casting data with primitive types
– Casting objects
Introduction to Programming 1 35
Type Casting
● Type Casting
– Converting data type of one data to another data type
● To be discussed
– Casting data with primitive types
– Casting objects
Introduction to Programming 1 36
Casting Primitive Types
● Casting between primitive types enables you to convert the
value of one data from one type to another primitive type.
● Types of Casting:
– Implicit Casting
– Explicit Casting
Introduction to Programming 1 37
Implicit Casting
To illustrate implicit casting, let us give an example:
Introduction to Programming 1 38
Implicit Casting
● Another example:
int numInt1 = 1;
int numInt2 = 2;
Introduction to Programming 1 39
Explicit Casting
● When we convert a data that has a large type to a smaller
type, we must use an explicit cast.
(dataType)value
where,
dataType - is the name of the data type you're converting to
value -is an expression that results in the value of the source type
Introduction to Programming 1 40
Explicit Casting Examples
● We want to typecast an int to a char value or vice versa.
A character can be used as an int because each character
has a corresponding numeric code that represents its
position in the character set.
– The character 'A' == 65
Introduction to Programming 1 41
Explicit Casting Examples
double valDouble = 10.12;
int valInt = (int)valDouble;
Introduction to Programming 1 42
Casting Objects
● Instances of classes also can be cast into instances of other
classes, with one restriction: The source and destination
classes must be related by inheritance; one class must be a
subclass of the other.
Introduction to Programming 1 43
Casting Objects
● To cast,
(classname)object
where,
classname, is the name of the destination class
object, is a reference to the source object
Introduction to Programming 1 44
Casting Objects Example
● The following example casts an instance of the class
VicePresident to an instance of the class Employee;
VicePresident is a subclass of Employee with more
information, which here defines that the VicePresident has
executive washroom privileges.
Employee emp = new Employee();
VicePresident veep = new VicePresident();
Introduction to Programming 1 45
Converting Primitive types to
Objects and vice versa
● One thing you can't do under any circumstance is cast from
an object to a primitive data type, or vice versa.
Introduction to Programming 1 46
Converting Primitive types to
Objects and vice versa
● Wrapper classes
– Most of these classes have the same names as the data types,
except that the class names begin with a capital letter (Short instead
of short, Double instead of double, and the like)
– two classes have names that differ from the corresponding data
type: Character is used for char variables and Integer for int
variables.
– Using the classes that correspond to each primitive type, you can
create an object that holds the same value.
Introduction to Programming 1 47
Converting Primitive types to
Objects and vice versa
● Examples:
– The following statement creates an instance of the Integer class with the
integer value 7801 (primitive -> Object)
Integer dataCount = new Integer(7801);
– The following statement converts an Integer object to its primitive data type
int. The result is an int with value 7801
int newCount = dataCount.intValue();
– A common translation you need in programs is converting a String to a
numeric type, such as an int (Object->primitive)
String pennsylvania = "65000";
int penn = Integer.parseInt(pennsylvania);
Introduction to Programming 1 48
Comparing Objects
● In our previous discussions, we learned about operators for
comparing values—equal, not equal, less than, and so on.
Most of these operators work only on primitive types, not on
objects.
● The exceptions to this rule are the operators for equality: ==
(equal) and != (not equal). When applied to objects, these
operators don't do what you might first expect. Instead of
checking whether one object has the same value as the
other object, they determine whether both sides of the
operator refer to the same object.
Introduction to Programming 1 49
Comparing Objects
● Example:
1 class EqualsTest
2 {
3 public static void main(String[] arguments) {
4 String str1, str2;
5 str1 = "Free the bound periodicals.";
6 str2 = str1;
7 System.out.println("String1: " + str1);
8 System.out.println("String2: " + str2);
9 System.out.println("Same object? " + (str1 == str2));
10 str2 = new String(str1);
11 System.out.println("String1: " + str1);
12 System.out.println("String2: " + str2);
13 System.out.println("Same object? " + (str1 == str2));
14 System.out.println("Same value? " + str1.equals(str2));
15 }
16 }
Introduction to Programming 1 50
Comparing Objects
● This program's output is as follows:
String1: Free the bound periodicals.
String2: Free the bound periodicals.
Same object? true
String1: Free the bound periodicals.
String2: Free the bound periodicals.
Same object? false
Same value? True
Introduction to Programming 1 51
Comparing Objects
● NOTE on Strings:
– Given the code:
Introduction to Programming 1 52
Determining the class of an
object
● Want to find out what an object's class is? Here's the way to
do it.
Now, we'll discuss two ways to know the type of the object
pointed to by the reference key.
Introduction to Programming 1 53
getClass() method
● The getClass() method returns a Class object (where Class
is itself a class) that has a method called getName().
● For Example,
Introduction to Programming 1 54
instanceOf operator
● The instanceOf has two operands: a reference to an object
on the left and a class name on the right.
● For Example,
boolean ex1 = "Texas" instanceof String; // true
Object pt = new Point(10, 10);
boolean ex2 = pt instanceof String; // false
Introduction to Programming 1 55
Summary
● Classes and Objects
– Instance variables
– Class Variables
● Class Instantiation
● Methods
– Instance methods
– Passing Variables in Methods (Pass-by-value, Pass-by-reference)
– Static methods
● Scope of a variable
● Casting (object, primitive types)
● Converting Primitive Types to Objects and Vice Versa
● Comparing Objects
● Determining the Class of an Object
Introduction to Programming 1 56