Classes, Types and Objects Data Structures Chapter 1 Prof. Vidya Manian Dept. of Electrical and...
-
Upload
juliana-peters -
Category
Documents
-
view
215 -
download
0
Transcript of Classes, Types and Objects Data Structures Chapter 1 Prof. Vidya Manian Dept. of Electrical and...
Classes, Types and ObjectsClasses, Types and Objects
Data StructuresData StructuresChapter 1Chapter 1
Prof. Vidya ManianDept. of Electrical and Comptuer Engineering
ICOM 4035 Java Programming BasicsECE, UPRM
Objects
• Objects –store data and provide methods for accessing and modifying data
• An object is an instance (member) of a class• Class – specifies type of objects, operations
that it performs• Data of objects are stored as instance
variables (fields) (of types e.g. integers, floating point numbers, Booleans)
ICOM 4035 ECE, UPRM 3
Operations
• Methods :constructors, procedures, and functions
• Example: class declaration
ICOM 4035 ECE, UPRM 4
• Counter class is public-other class can create and 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 abstract keyword• Final – cannot have subclasses• Public – can be instantiated by anything that
imports 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
• Comments: /** **/ or //• ‘new’ creates a new object and returns
reference to that object
ICOM 4035 ECE, UPRM 8
new operator
• A new object is dynamically allocated in memory, initialized to default values ‘null’
• Constructor is called• The new operator returns a reference (a
memory address) to the newly created object
ICOM 4035 ECE, UPRM 9
Number classes
• Byte n.byteValue()• Shortn.shortValue()• Integer n.intValue()• Long n.longValue()• Float n.floatValue()• Double n.doubleValue()
ICOM 4035 ECE, UPRM 10
String objects
• String is a sequence of characters that comes form some alphabet (set of possible characters)
• P = “barney the bear”• Length 15• Concatenation• String s = “kilo” + “meters”
ICOM 4035 ECE, UPRM 11
Dot operator• Can have many references to the same object• Dot operator”.”-access methods and instance variables
associated with an object• Examples of signatures (methods name with
parameters)• oven.cookDinner();• oven.cookDinner(food);• oven.cookDinner(food,seasoning);• Note: Java doesn not allow 2 methods with the 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 as String, an array
• A referrence variable v, points to object o, we can access any of the instance variables fo o that the access rules allow
• Public instance variables are accessible by everyone• Dot operator can get and set the value of any
instance variable (v.i)
ICOM 4035 ECE, UPRM 14
• gnome.name =“professor smith”;• gnome.age=35;• gnome –reference to a Gnome object, with public
instance variables name and age• Variable modifiers• Public: anyone can access• Protected: only methods of the same package or of
its subclasses can access protected instance variables• Private: only methods of the same class can access 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 must be assigned an initial value, and can never be assigned a new value after that (MAX_HEIGHT)
ICOM 4035 ECE, UPRM 16
• What are the base types ?• What is variable gnomeBuddy ?• What is variable name ?• Note: Constant values associated with a class
should 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 signaturemodifiers 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 is invoked on a specific instance of the class and can change the state of the object
ICOM 4035 ECE, UPRM 21
• Similar to instance variables, Method modifiers can be public, protected, private or abstract
• Note: All parameters are passed by value, changing the internal reference inside a method will not change the reference that was passed in
ICOM 4035 ECE, UPRM 22
Constructors• A constructor is a special kind of method that
is used to initialize newly created objects• Note: name of constructor, name, must be
same 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 a constructor
body• A new instance of this class is created and its
constructor is used to initialize its isntance variables• Must be called using new operator• Fish myFish = new Fish(y, “Wally”);• Classes that define Stand – alone Java program has
the main method
ICOM 4035 ECE, UPRM 24
• Java Aquarium //system looks for compiled version of Aquarium class and invokes the special main method in that class
ICOM 4035 ECE, UPRM 25
Statement blocks and local variables
• 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 expressions to 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: 176L or -52l (64-
bit integer)– Floating point: default for floating point numbers is double,
3.14E2 or .19e10
ICOM 4035 ECE, UPRM 27
– Character, ‘a’, ‘?’ are character constants– Special characters
– String literal: sequence of characters “have a nice day”
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 exclusive or, <<, >>, >>>
• Operational assignment operators: variable op = expression
• Variable = variable op expression
ICOM 4035 ECE, UPRM 30
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
// 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 of GameEntry objects, with integer scores field, we cloe A and store the result in an array B. If we set A[4].score =550, what is the score value of GameEntry object referenced by B[4]?
• Write a Java method that takes an array of int values and determines if all the numbers are different from each other.
ICOM 4035 ECE, UPRM 39