Download Image Processing - Electrical and Computer Engineering @ UPR

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Classes, Types and Objects
Data Structures
Chapter 1
Prof. Vidya Manian
Dept. of Electrical and Comptuer Engineering
ICOM 4035
ECE, UPRM
Java Programming Basics
Overview
•
•
•
•
Objects, classes
expressions
Control flow
Arrays
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 :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
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
Short
Integer
Long
Float
Double
ICOM 4035
n.byteValue()
n.shortValue()
n.intValue()
n.longValue()
n.floatValue()
n.doubleValue()
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)
– 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
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" , "HPUX" , "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
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();
}
}
ICOM 4035
ECE, UPRM
38
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