Transcript Image Processing - Electrical and Computer Engineering @ UPR
ICOM 4035
Classes, Types and Objects
Data Structures Chapter 1
Prof. Vidya Manian Dept. of Electrical and Comptuer Engineering ECE, UPRM Java Programming Basics
• • • • Objects, classes expressions Control flow Arrays
Overview
ICOM 4035 ECE, UPRM 2
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 functions :constructors, procedures, and 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
Example of base types
ICOM 4035 ECE, UPRM 7
• • 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() Short n.shortValue() Integer n.intValue() Long Float n.longValue() 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
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 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
ICOM 4035 ECE, UPRM 17
• • • • 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 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 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) ICOM 4035 – Floating point: default for floating point numbers is double, 3.14E2 or .19e10
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
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
ICOM 4035
Testing 2D array
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
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