NotesWeek2.Aug 30-Se..

advertisement
CS 180 Problem Solving and Object Oriented
Programming
Fall 2010
http://www.cs.purdue.edu/homes/apm/courses/CS180Fall2010/
Notes for Week 2:
August 30-September 3, 2010
Aditya Mathur
Department of Computer Science
Purdue University
West Lafayette, IN, USA
Readings and Exercises for Week 2
Readings:
Chapter 1: 1.3, 1.4, 1.5, 1.6, 1.7
Chapter 2: 2.1, 2.2, 5.4, 5.5
Exercises:
2.1, 2.3, 2.4, 2.7, 2.9, 2.12, 2.14
8/30/10
CS 180. Fall 2010. Week 2
2
Feedback for Week 1
8/30/10
CS 180. Fall 2010. Week 2
3
Q1.
The lab exercises were useful
(Use scale of 1-10: 10 most useful, 1 not
useful at all)
(a) 8-10
(b) 4-7
(c) 1-3
(d) Missed Week 1 lab
8/30/10
CS 180. Fall 2010. Week 2
4
Q2.
The recitation exercises were useful
(Use scale of 1-10: 10 most useful, 1 not
useful at all)
(a) 8-10
(b) 4-7
(c) 1-3
(d) Missed week 1 recitation
8/30/10
CS 180. Fall 2010. Week 2
5
Q3.
The recitation instructor was helpful.
(Use scale of 1-10: 10 most helpful, 1 not
helpful at all)
(a) 8-10
(b) 4-7
(c) 1-3
(d) Missed week 1 recitation
8/30/10
CS 180. Fall 2010. Week 2
6
Q4.
I understand the difference between
“sequential solution” and “Concurrent
solution”.
(a) Yes
(b) No
(c) Not sure
(d) Missed week 1 lecture(s)
8/30/10
CS 180. Fall 2010. Week 2
7
Q5.
I understand the difference between “Data
Parallelism” and “Task parallelism”.
(a) Yes
(b) No
(c) Not sure
(d) Missed week 1 lecture(s)
8/30/10
CS 180. Fall 2010. Week 2
8
Q6.
So far I am liking the course (10 liking a lot,
1 not liking at all).
(a) 8-10
(b) 4-7
(c) 1-3
(d) Could not attend classes during week 1
8/30/10
CS 180. Fall 2010. Week 2
9
Dissecting a Java Program:
Preliminaries
8/30/10
CS 180. Fall 2010. Week 2
10
The edit, compile, execute cycle
.java file(s)
Edit a
Java program
.class file(s)
(byte code)
No syntax
Compile your error
Execute your
program
program
Syntax
Error
Correct
program
Run time
Error or
Incorrect Output
In CS 180 we shall use DrJava for editing, compiling and execution. DrJava is an
Integrated Development Environment also known as an IDE. Eclipse, JBuilder, and
IntelliJ IDEA are a few other Java IDEs. For programming the RidgeSoft robot we
shall use RoboJDE.
8/30/10
CS 180. Fall 2010. Week 2
11
Classes and Objects
Set of real or
virtual objects
Represent
Template
in Java
Create
Objects
created
Class Animal
animal
Class Vehicle
truck
Class Student
student
vehicle
student
flower
dog
Class Flower
myDog
Class Dog
marysDog
8/30/10
CS 180. Fall 2010. Week 2
12
Classes and Objects
Class:
Contains properties and operations related to some real or virtual object.
This object could be abstract or concrete [e.g., a Dog or a Golden Retriever].
Object:
Created from a class.
Contains specialized properties and operations related
to a more specific real or virtual object, e.g., object myDog
created from class Dog has breed as a property that might
be different from another object marysDog created from
the same class.
Java program: Structure
Package [Contains one or more classes]
Class [Data and zero or more methods]
Data
Method
Data and
statements
At least one class must have a
method named main().
8/30/10
CS 180. Fall 2010. Week 2
Data represents
properties of a real,
virtual or a Java
object. E.g., breed,
age, color
Methods are
operations that can
be performed on an
object created from a
class.
E.g., run(), sit(),
down(), no(),
goodBoy()
14
Java program: Classes and Objects
class Automobile
Data
make
model
create camry
make
model
maxSpeed
start()
Method
Data and
statements
create mazdaRX7
make
model
maxSpeed
start()
Objects derived from
Class Automobile
8/30/10
CS 180. Fall 2010. Week 2
15
Elements of a Sequential Java Program
Program to be dissected:
Program 1.4 BouncingBall.java in Chapter 1 pages 12-13.
Strategy:
Go through this program line by line and attempt to
understand the meaning of each line. It is likely this
exercise will generate more questions than answers.
8/30/10
CS 180. Fall 2010. Week 2
16
Elements of a Concurrent Java Program
Program to be dissected:
Program 1.7 AreaMeasuringRobot.java in Chapter 1 pages 29-30.
Strategy:
Go through this program line by line and attempt to understand
the meaning of each line. It is likely this exercise will generate
more questions than answers.
8/30/10
CS 180. Fall 2010. Week 2
17
Types
Set of values
Set of Operations
a
x
b
8/30/10
CS 180. Fall 2010. Week 2
c
18
Primitive types: int, long
Set of integers
Set of Operations
2010
+
12
-
-14
180
8/30/10
*
%
1751
Integer.MAX_VALUE: 231 -1
Integer.MIN_VALUE: -231
Long.MAX_VALUE: 263 -1
Integer.MIN_VALUE: -263
CS 180. Fall 2010. Week 2
19
Primitive types: float, double
Set of integers
Set of Operations
(sample)
2010.98135
12.77
+
Infinity
-
3.14
-Infinity
.2010E4
180.0
==
*
>
NaN
-1751.0
Float.MAX_VALUE: 3.40282347e+38f
Float.MIN_VALUE: 1.40239846e-45f
Double.MAX_VALUE: 1.79769313486231570e+308
Double.MIN_VALUE: 4.94065645841246544e-324
8/30/10
CS 180. Fall 2010. Week 2
20
Primitive types: boolean
Set of logical values
==
true
||
false
8/30/10
Set of Operations
(sample)
|
CS 180. Fall 2010. Week 2
&&
!=
21
Primitive types: char
Set of characters
(sample values shown)
Set of Operations
(sample)
==
‘a’
||
‘$’
‘&’
|
&&
!=
‘+’
8/30/10
CS 180. Fall 2010. Week 2
22
Names
Used to denote classes, objects, data
Contain characters; must start with a letter, or a $
sign or an underscore.
Examples: height, area1, Dog, $great
Length unlimited, case sensitive.
Dog and dog are different names.
Convention: All class names begin with an
uppercase letter; all other names begin with
a lower case letter.
8/30/10
CS 180. Fall 2010. Week 2
23
Constants
A constant is something that cannot change during program
execution.
Examples:
Integer constants: 0, 1, -1, +24, 29, 300009998, O14, 0x1B
Floating point constants: 0.0, -2.345e28, -0.000976512
Boolean constants: true, false
Character constants: ‘ ‘, ‘a’, ‘A’, ‘$’
String constants: “”, “ “, “Hi!”, “Alice in Wonderland”
8/30/10
CS 180. Fall 2010. Week 2
24
Named Constants
A constant can be named and the name used instead of the
constant itself.
Examples:
final float pi=3.14159;
final boolean dogsExist=true;
8/30/10
CS 180. Fall 2010. Week 2
25
Variables
A variable is something whose value may change during
program execution.
Every variable has a name and a type.
Every variable must be declared before it is used.
8/30/10
CS 180. Fall 2010. Week 2
26
Strings: basics
A string is any sequence of Unicode characters
You may name a string as in the following:
String myDogsName;
myDogsName is an object of type String.
It can take any string as its value. For example,
“Max”, “Bently”, “Jake” and “Raja” are possible values of
myDogsName.
What is the difference between 29 and “29”?
8/30/10
CS 180. Fall 2010. Week 2
27
Strings: assignment
You may assign a value to a string object. Examples follow.
myDogsName=“Bently”;
String myCarColor=“Black”;
All string objects must be declared before they are used.
Thus it would be incorrect to assign a value to myDogsName before
it has been declared.
8/30/10
CS 180. Fall 2010. Week 2
28
Strings: Other operations
You may apply a variety of operations to strings. Examples follow.
String commend=“Bently,”+ “ good girl!; // String catenation
String myCar=“It’s a Porsche”+ “, and I love it!” +”but
maintenance is expensive.” // String catenation
String firstChar=commend.charAt(0); // Extract character at
position 0
8/30/10
CS 180. Fall 2010. Week 2
29
Strings: Other operations
You may apply a variety of operations to strings. Examples follow.
Statement
Operation used
String commend=“Bently,”+ “ good girl!”;
Catenation
char firstChar=commend.charAt(0);
Character
extraction
movieName.equals(“Fugitive”)
Comparision
String.valueOf(29)
Conversion to
String
8/30/10
CS 180. Fall 2010. Week 2
30
Declarations
int age;
float height, area;
String name
boolean
int x=1, y=0;
String firstName=“Harry”;
8/30/10
CS 180. Fall 2010. Week 2
31
Simple expressions
Expressions are used to compute “something”.
float x, y, z;
x*y+z; // Arithmetic expression, results in float value
x<y; // Boolean expression, results in boolean value
String firstName=“Mary”, lastName= “Jones”;
firstName+” “+lastName; // Results in a string
More in Chapter 2! And yet more to come!
8/30/10
CS 180. Fall 2010. Week 2
32
Assignment statement
An assignment statement allows assigning the value of an expression
to a variable.
float p=x*y+z; // p gets the value of x*y+z
boolean q=x<y; // q gets the value of x<y
String firstName=“Mary”, lastName= “Jones”;
String name= firstName+” “+lastName;
More in Chapter 2! And yet more to come!
8/30/10
CS 180. Fall 2010. Week 2
33
Week 2: August 30-September 3, 2010
Hope you enjoyed this week!
Questions?
Contact your recitation instructor. Make
full use of our office hours.
8/30/10
CS 180. Fall 2010. Week 2
34
Download