Classes, Types and ObjectsClasses, Types and Objects
Data StructuresData Structures
Chapter 1Chapter 1
Prof. Vidya Manian
Dept. of Electrical and Comptuer Engineering
ICOM 4035
Java Programming Basics
ECE, UPRM
Overview
Objects, classes
expressions
Control flow
Arrays
ICOM 4035
ECE, UPRM
2
Objects
Objects –store data and provide methods foraccessing and modifying data
An object is an instance (member) of a class
Class – specifies type of objects, operationsthat it performs
Data of objects are stored as instancevariables (fields) (of types e.g. integers,floating point numbers, Booleans)
ICOM 4035
ECE, UPRM
3
Operations
Methods :constructors, procedures, andfunctions
Example: class declaration
ICOM 4035
ECE, UPRM
4
Counter class is public-other class can createand use a counter object
Instance variable –count
Constructor method initializes it to 0
Accessor method, get Count
Update methods, incrementCount,decrementCount
ICOM 4035
ECE, UPRM
5
Class modifiers
Abstract-empty methods with abstractkeyword
Final – cannot have subclasses
Public – can be instantiated by anything thatimports the class
Base types (primitve types (boolean, char,byte, short, int, long, float, double)
Int x, x=14 or x=195
Float, y=3.1415
ICOM 4035
ECE, UPRM
6
Example of base types
ICOM 4035
ECE, UPRM
7
Comments:    /**    **/   or //
‘new’ creates a new object and returnsreference to that object
ICOM 4035
ECE, UPRM
8
new operator
new object is dynamically allocated inmemory, initialized to default values  ‘null’
Constructor is called
The new operator returns a reference (amemory address)  to the newly created object
ICOM 4035
ECE, UPRM
9
Number classes
Byten.byteValue()
Shortn.shortValue()
Integern.intValue()
Longn.longValue()
Floatn.floatValue()
Doublen.doubleValue()
ICOM 4035
ECE, UPRM
10
String objects
String is a sequence of characters that comesform some alphabet (set of possiblecharacters)
P = “barney the bear”
Length 15
Concatenation
String s = “kilo” + “meters”
ICOM 4035
ECE, UPRM
11
Object reference
Reference variable is a pointer to some object
ICOM 4035
ECE, UPRM
12
Dot operator
Can have many references to the same object
Dot operator”.”-access methods and instancevariables associated with an object
Examples of signatures (methods name withparameters)
oven.cookDinner();
oven.cookDinner(food);
oven.cookDinner(food,seasoning);
Note: Java doesn not allow 2 methods withthe same signature to return different types
ICOM 4035
ECE, UPRM
13
Instance Variables
Instance variables must have a type (int, float,double) or a reference type : class such asString, an array
A referrence variable v, points to object o, wecan access any of the instance variables fo othat the access rules allow
Public instance variables are accessible byeveryone
Dot operator can get and set the value of anyinstance variable (v.i)
ICOM 4035
ECE, UPRM
14
gnome.name =“professor smith”;
gnome.age=35;
gnome –reference to a Gnome object, withpublic instance variables name and age
Variable modifiers
Public: anyone can access
Protected: only methods of the same packageor of its subclasses can access protectedinstance variables
Private: only methods of the same class canaccess it
ICOM 4035
ECE, UPRM
15
Static: variables are used to store “global”information about a class
Final: a final instance variable is one that mustbe assigned an initial value, and can never beassigned a new value after that(MAX_HEIGHT)
ICOM 4035
ECE, UPRM
16
ICOM 4035
ECE, UPRM
17
What are the base types ?
What is variable gnomeBuddy ?
What is variable name ?
Note:  Constant values associated with a classshould be declared to be both static and final
ICOM 4035
ECE, UPRM
18
Enum Types
Take on values from a specified set of names
Modifier enum name {value_name0,value_name1,….};
Modifer – black, public, protected or private
Name – any legal Java identifier
public enum Day{MON,TUE,WERD,THU,FRI,SAT,SUN}
ICOM 4035
ECE, UPRM
19
Output:
Initially d is MON
Then it is WED
I say d and t are the same: true
ICOM 4035
ECE, UPRM
20
Methods
Similar to functions and procedures
Method has 2 parts: body and signature
modifiers type name(type0 parameter0, …typen-1 parametern-1) {
// method body…
}
type is the return type of the method, name –name of the method
When a method of a class is called, it isinvoked on a specific instance of the class andcan change the state of the object
ICOM 4035
ECE, UPRM
21
Similar to instance variables, Methodmodifiers can be public, protected, private orabstract
Note: All parameters are passed by value,changing the internal reference inside amethod will not change the reference thatwas passed in
ICOM 4035
ECE, UPRM
22
Constructors
constructor is a special kind of method thatis used to initialize newly created objects
Note: name of constructor, name, must besame as the name of the class it constructs
Return type not specified for constructor
ICOM 4035
ECE, UPRM
23
Constructor definition and invocation
Return statements are not allowed in aconstructor body
new instance of this class is created and itsconstructor is used to initialize its isntancevariables
Must be called using new operator
Fish myFish = new Fish(y, “Wally”);
Classes that define Stand – alone Javaprogram has the main method
ICOM 4035
ECE, UPRM
24
Java Aquarium   //system looks for compiledversion of Aquarium class and invokes thespecial main method in that class
ICOM 4035
ECE, UPRM
25
Statement blocks and localvariables
Two ways of declaring local variables
type name;
type name = initial_value;
ICOM 4035
ECE, UPRM
26
Expressions
Expressions involve the use of literals,variables and operators
Variables and constants are used expressionsto define new values/modify variables
Literal: is any “constant” value
Null object reference
Boolean: true and false
Integer: type int, (32-bit integer), long iteger: 176Lor -52l (64-bit integer)
Floating point: default for floating point numbersis double, 3.14E2 or .19e10
ICOM 4035
ECE, UPRM
27
Character, ‘a’, ‘?’ are character constants
Special characters
String literal: sequence of characters  “have a niceday”
ICOM 4035
ECE, UPRM
28
Operators
Assignment operator : variable=expression
i = j = 25;
Arithmetic operators: +, -, *, /, %
Increment and decrement operators
int i=8;
int j=i++;
int k=++i;
int m=i--;
int n = 9+i++;
ICOM 4035
ECE, UPRM
29
Logical operators
< , <=, ==, !=, >=, >
Boolean: ! Not
&& conditional and, || conditional or
Bitwise operators: ~ bitwise complement, &bitwise and, | bitwise or, ^ bitwise exclusiveor, <<, >>, >>>
Operational assignment operators: variable op= expression
Variable = variable op expression
ICOM 4035
ECE, UPRM
30
Arrays
ICOM 4035
ECE, UPRM
31
ICOM 4035
ECE, UPRM
32
Declaring arrays
Element_type[] array_name = {init_val_0,init_value_1,.., init_val_N-1}
int[] primes = {2,3,5,7,11}
element_type[] array_name;
new element_type[length]
ICOM 4035
ECE, UPRM
33
Arrays are objects
ICOM 4035
ECE, UPRM
34
Cloning an array
ICOM 4035
ECE, UPRM
35
// Example 1 // --------- // First declare
//reference and then construct it.
 int[] ExampleArray1;
 ExampleArray1 = new int[24];
// Example 2 // --------- // This can be considered
//the short form for declaring and construction.int[] ExampleArray2 = new int[24];
ICOM 4035
ECE, UPRM
36
// Example 3 // --------- // Construct and assign
//an array using a single command.
 String[] ExampleArray3 = { "Sun Solaris" , "HP-UX" , "Linux" , "MS Windows" , "Macintosh" };
 int[] array = null;
int[] arr = new int[] {1,2,3};
int[][] twoDimArray = { {1,2,3}, {4,5,6}, {7,8,9} };
int[][] myArray = new int[5][];
ICOM 4035
ECE, UPRM
37
Testing 2D array
ICOM 4035
ECE, UPRM
38
class TestTwoDimArrays { // initialize # of rows
static int [][] myArray = new int[3][];
public static void main(String[] args) {
myArray[0] = new int[3]; // initialize # of cols
myArray[1] = new int[4]; // in each row
myArray[2] = new int[5];
for(int i=0; i<3; i++)
// fill and print the array
fillArray(i, i+3); System.out.println(); }
// end main()
private static void fillArray(int row, int col) {
for( int i=0; i<col; i++)
myArray[row][i] = i;
for( int i=0; i<col; i++)
System.out.print(myArray[row][i]);
System.out.println();
}
 }
Exercises in group
Suppose that we create an array A ofGameEntry objects, with integer scores field,we cloe A and store the result in an array B.  Ifwe set A[4].score =550, what is the scorevalue of GameEntry object referenced byB[4]?
Write a Java method that takes an array of intvalues and determines if all the numbers aredifferent from each other.
ICOM 4035
ECE, UPRM
39