ee 422c day 2 java, eclipse. copyright pearson education, 2010 based on slides bu marty stepp and...
TRANSCRIPT
![Page 1: EE 422C Day 2 Java, Eclipse. Copyright Pearson Education, 2010 Based on slides bu Marty Stepp and Stuart Reges from](https://reader035.vdocument.in/reader035/viewer/2022062805/5697bfbb1a28abf838ca1054/html5/thumbnails/1.jpg)
EE 422C
Day 2Java, Eclipse
![Page 2: EE 422C Day 2 Java, Eclipse. Copyright Pearson Education, 2010 Based on slides bu Marty Stepp and Stuart Reges from](https://reader035.vdocument.in/reader035/viewer/2022062805/5697bfbb1a28abf838ca1054/html5/thumbnails/2.jpg)
Copyright Pearson Education, 2010Based on slides bu Marty Stepp and Stuart Reges from http://www.buildingjavaprograms.com/
"Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. "
- Stan Kelly-Bootle
![Page 3: EE 422C Day 2 Java, Eclipse. Copyright Pearson Education, 2010 Based on slides bu Marty Stepp and Stuart Reges from](https://reader035.vdocument.in/reader035/viewer/2022062805/5697bfbb1a28abf838ca1054/html5/thumbnails/3.jpg)
Announcements
• Homework 1 online
![Page 4: EE 422C Day 2 Java, Eclipse. Copyright Pearson Education, 2010 Based on slides bu Marty Stepp and Stuart Reges from](https://reader035.vdocument.in/reader035/viewer/2022062805/5697bfbb1a28abf838ca1054/html5/thumbnails/4.jpg)
Today
• Start off Eclipse• Write programs with if/else, for and while
loops, methods, object input and return.• Static methods in Math and Arrays classes.
![Page 5: EE 422C Day 2 Java, Eclipse. Copyright Pearson Education, 2010 Based on slides bu Marty Stepp and Stuart Reges from](https://reader035.vdocument.in/reader035/viewer/2022062805/5697bfbb1a28abf838ca1054/html5/thumbnails/5.jpg)
Some self-help resources
• Cave of Programming on YouTube.– Java basics taught using Eclipse.
• Eclipse and Java – Using the Debugger, Alex Taylor , 7 videos on YouTube
• Using the Eclipse Workbench, Alex Taylor, 6 videos on Youtube
![Page 6: EE 422C Day 2 Java, Eclipse. Copyright Pearson Education, 2010 Based on slides bu Marty Stepp and Stuart Reges from](https://reader035.vdocument.in/reader035/viewer/2022062805/5697bfbb1a28abf838ca1054/html5/thumbnails/6.jpg)
![Page 7: EE 422C Day 2 Java, Eclipse. Copyright Pearson Education, 2010 Based on slides bu Marty Stepp and Stuart Reges from](https://reader035.vdocument.in/reader035/viewer/2022062805/5697bfbb1a28abf838ca1054/html5/thumbnails/7.jpg)
JVM
• JVM (Java Virtual Machine) is an abstract machine. • It is a specification that provides runtime
environment in which java bytecode can be executed.
• Java is platform independent. • The JVM performs following main tasks:
– Loads code– Verifies code– Executes code
![Page 8: EE 422C Day 2 Java, Eclipse. Copyright Pearson Education, 2010 Based on slides bu Marty Stepp and Stuart Reges from](https://reader035.vdocument.in/reader035/viewer/2022062805/5697bfbb1a28abf838ca1054/html5/thumbnails/8.jpg)
8
![Page 9: EE 422C Day 2 Java, Eclipse. Copyright Pearson Education, 2010 Based on slides bu Marty Stepp and Stuart Reges from](https://reader035.vdocument.in/reader035/viewer/2022062805/5697bfbb1a28abf838ca1054/html5/thumbnails/9.jpg)
JRE (Java Runtime Environment)
• Used to provide runtime environment.• Physical implementation of JVM.• Contains set of libraries + other files that JVM
uses at runtime.
![Page 10: EE 422C Day 2 Java, Eclipse. Copyright Pearson Education, 2010 Based on slides bu Marty Stepp and Stuart Reges from](https://reader035.vdocument.in/reader035/viewer/2022062805/5697bfbb1a28abf838ca1054/html5/thumbnails/10.jpg)
Array declaration<type>[] <name> = new <type>[<length>];
– Example:
int[] numbers = new int[10];
index
0 1 2 3 4 5 6 7 8 9
value
0 0 0 0 0 0 0 0 0 0
![Page 11: EE 422C Day 2 Java, Eclipse. Copyright Pearson Education, 2010 Based on slides bu Marty Stepp and Stuart Reges from](https://reader035.vdocument.in/reader035/viewer/2022062805/5697bfbb1a28abf838ca1054/html5/thumbnails/11.jpg)
Array declaration, cont.• The length can be any non-negative integer
expression.
int x = 2 * 3 + 1;int[] data = new int[x % 5 + 2];
• Each element initially gets a "zero-equivalent" value.
Type Default value
int 0
double 0.0
boolean false
Stringor other object
null(means, "no object")
![Page 12: EE 422C Day 2 Java, Eclipse. Copyright Pearson Education, 2010 Based on slides bu Marty Stepp and Stuart Reges from](https://reader035.vdocument.in/reader035/viewer/2022062805/5697bfbb1a28abf838ca1054/html5/thumbnails/12.jpg)
Accessing elements<name>[<index>] // access<name>[<index>] = <value>; // modify
– Example:
numbers[0] = 27;numbers[3] = -6;
System.out.println(numbers[0]);if (numbers[3] < 0) { System.out.println("Element 3 is negative.");}
index
0 1 2 3 4 5 6 7 8 9
value
0 0 0 0 0 0 0 0 0 0
index
0 1 2 3 4 5 6 7 8 9
value
27 0 0 -6 0 0 0 0 0 0
![Page 13: EE 422C Day 2 Java, Eclipse. Copyright Pearson Education, 2010 Based on slides bu Marty Stepp and Stuart Reges from](https://reader035.vdocument.in/reader035/viewer/2022062805/5697bfbb1a28abf838ca1054/html5/thumbnails/13.jpg)
clicker Question8 What is output by the following code?String[] names = new String[5];names[1] = "Olivia";names[3] = "Isabelle";System.out.print(names[0].length());A. no output due to null pointer exceptionB. no output due to array index out of bounds exceptionC. no output due to a compile errorD. 0E. 6
![Page 14: EE 422C Day 2 Java, Eclipse. Copyright Pearson Education, 2010 Based on slides bu Marty Stepp and Stuart Reges from](https://reader035.vdocument.in/reader035/viewer/2022062805/5697bfbb1a28abf838ca1054/html5/thumbnails/14.jpg)
Limitations of arrays
• You cannot resize an existing array:int[] a = new int[4];a.length = 10; // error
• You cannot compare arrays with == or equals:int[] a1 = {42, -7, 1, 15};int[] a2 = {42, -7, 1, 15};if (a1 == a2) { ... } // false!if (a1.equals(a2)) { ... } // false!
• An array does not know how to print itself:int[] a1 = {42, -7, 1, 15};System.out.println(a1); // [I@98f8c4]
![Page 15: EE 422C Day 2 Java, Eclipse. Copyright Pearson Education, 2010 Based on slides bu Marty Stepp and Stuart Reges from](https://reader035.vdocument.in/reader035/viewer/2022062805/5697bfbb1a28abf838ca1054/html5/thumbnails/15.jpg)
The Arrays class• Class Arrays in package java.util has
useful static methods for manipulating arrays:
• Syntax:Arrays.<methodName>(<parameters>)
Method name DescriptionbinarySearch(<array>, <value>) returns the index of the given value in a
sorted array (or < 0 if not found)
copyOf(<array>, <length>) returns a new copy of an array
equals(<array1>, <array2>) returns true if the two arrays contain same elements in the same order
fill(<array>, <value>) sets every element to the given value
sort(<array>) arranges the elements into sorted order
toString(<array>) returns a string representing the array, such as "[10, 30, -25, 17]"
![Page 16: EE 422C Day 2 Java, Eclipse. Copyright Pearson Education, 2010 Based on slides bu Marty Stepp and Stuart Reges from](https://reader035.vdocument.in/reader035/viewer/2022062805/5697bfbb1a28abf838ca1054/html5/thumbnails/16.jpg)
Arrays.toString• Arrays.toString accepts an array as a
parameter and returns a String representation of its elements.
int[] e = {0, 2, 4, 6, 8};e[1] = e[3] + e[4]; System.out.println("e is " + Arrays.toString(e));
Output:
e is [0, 14, 4, 6, 8]
– Must import java.util.Arrays;
![Page 17: EE 422C Day 2 Java, Eclipse. Copyright Pearson Education, 2010 Based on slides bu Marty Stepp and Stuart Reges from](https://reader035.vdocument.in/reader035/viewer/2022062805/5697bfbb1a28abf838ca1054/html5/thumbnails/17.jpg)
Reference semantics
17
![Page 18: EE 422C Day 2 Java, Eclipse. Copyright Pearson Education, 2010 Based on slides bu Marty Stepp and Stuart Reges from](https://reader035.vdocument.in/reader035/viewer/2022062805/5697bfbb1a28abf838ca1054/html5/thumbnails/18.jpg)
Value semantics• value semantics: Behavior where values are
copied when assigned, passed as parameters, or returned.
– All primitive types in Java use value semantics.– When one variable is assigned to another, its value is
copied.– Modifying the value of one variable does not affect
others.int x = 5;int y = x; // x = 5, y = 5y = 17; // x = 5, y = 17x = 8; // x = 8, y = 17
![Page 19: EE 422C Day 2 Java, Eclipse. Copyright Pearson Education, 2010 Based on slides bu Marty Stepp and Stuart Reges from](https://reader035.vdocument.in/reader035/viewer/2022062805/5697bfbb1a28abf838ca1054/html5/thumbnails/19.jpg)
Reference semantics (objects)• reference semantics: Behavior where variables
actually store the address of an object in memory.
– When one variable is assigned to another, the object isnot copied; both variables refer to the same object.
– Modifying the value of one variable will affect others.int[] a1 = {4, 15, 8};int[] a2 = a1; // refer to same array as a1a2[0] = 7;System.out.println(Arrays.toString(a1)); // [7, 15, 8]
index
0 1 2
value
4 15 8
index
0 1 2
value
7 15 8a1 a2
![Page 20: EE 422C Day 2 Java, Eclipse. Copyright Pearson Education, 2010 Based on slides bu Marty Stepp and Stuart Reges from](https://reader035.vdocument.in/reader035/viewer/2022062805/5697bfbb1a28abf838ca1054/html5/thumbnails/20.jpg)
References and objects• Arrays and objects use reference semantics.
Why?– efficiency. Copying large objects slows down a
program.– sharing. It's useful to share an object's data among
methods.
DrawingPanel panel1 = new DrawingPanel(80, 50);
DrawingPanel panel2 = panel1; // same windowpanel2.setBackground(Color.CYAN);
panel1
panel2
![Page 21: EE 422C Day 2 Java, Eclipse. Copyright Pearson Education, 2010 Based on slides bu Marty Stepp and Stuart Reges from](https://reader035.vdocument.in/reader035/viewer/2022062805/5697bfbb1a28abf838ca1054/html5/thumbnails/21.jpg)
Objects as parameters
• When an object is passed as a parameter, the object is not copied. The parameter refers to the same object.– If the parameter is modified, it will affect the original object.
public static void main(String[] args) { DrawingPanel window = new DrawingPanel(80, 50);
window.setBackground(Color.YELLOW); example(window);}
public static void example(DrawingPanel panel) { panel.setBackground(Color.CYAN); ...}
panel
window
![Page 22: EE 422C Day 2 Java, Eclipse. Copyright Pearson Education, 2010 Based on slides bu Marty Stepp and Stuart Reges from](https://reader035.vdocument.in/reader035/viewer/2022062805/5697bfbb1a28abf838ca1054/html5/thumbnails/22.jpg)
Copy of a reference
index 0 1 2
value 126 167 95
index 0 1 2
value 252 334 190
iq
a
• Array variables are references• A parameter is a copy of the same reference the argument stores.• Changes made in the method to the elements are also seen by the
caller.
public static void main(String[] args) { int[] iq = {126, 167, 95}; increase(iq); System.out.println(Arrays.toString(iq));}public static void increase(int[] a) { for (int i = 0; i < a.length; i++) { a[i] = a[i] * 2; }}
– Output:[252, 334, 190]
![Page 23: EE 422C Day 2 Java, Eclipse. Copyright Pearson Education, 2010 Based on slides bu Marty Stepp and Stuart Reges from](https://reader035.vdocument.in/reader035/viewer/2022062805/5697bfbb1a28abf838ca1054/html5/thumbnails/23.jpg)
Using new• Array variables are references• A parameter is a copy of the same reference the argument stores.• Changes made in the method to the elements are also seen by the
caller.public static void main(String[] args) { int[] iq = {1, 2, 3};
int [] iq2 = increase(iq); System.out.println(Arrays.toString(iq), Arrays.toString(iq2));
}public static int[] increase(int[] a) {
for (int i = 0; i < a.length; i++) { a[i] = a[i] * 2; } a = new int [3]; // <- Create new array
a[2] = a[2]*2;return a;
}
– Output: [2, 4, 6][0, 0, 0]