Image Processing - Electrical and Computer Engineering @ UPR

Download Report

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