REVIEW and PRACTICE: Concept Review
Please make a practice class like this:
public class PracticeQuestions {
public static void main(String[] args) {
// We'll call methods here
}
// We'll add methods here
}
For the following examples, do it in your head first!, then add the method to the PracticeQuestions class and call it in the main.
Unary operators
1: What gets printed?
public static void testUnary() {
int x = 5, y = 4, z =3;
x = y++;
y += z--;
z += (x++) - (x--);
System.out.println("x: "+ x + "\ty: " + y + "\tz: " + z);
}
Note:
++var increments the value of var and then returns var (each time it happens)
var++ returns the value of var and then increments (each time it happens)
2: What gets printed?
public static void testUnary2() {
double x = 3.2, y;
y = ++x/2;
System.out.println(y);
}
References
3: Which of these initializations is valid?
//A
int [][] w = new int [][];
//B
int x = new int[5][4];
//C
int [][] y = new int {{1,2,3,4},{5,6,7,8}};
//D
int [][] z = new int[2][];
for(int i = 0; i<2; i++){
z[i] = new int[4];
}
4: Given the methods "modify1" and "modify2", What gets printed when references2() is called?
public static void references2(){
int [] myArray;
myArray = new int[4];
for(int i = 0; i < myArray.length; i++){
myArray[i] = i+1;
}
modify1(myArray);
for(int i = 0; i < myArray.length; i++){
modify2(myArray[i]);
}
for(int i = 0; i < myArray.length; i++){
System.out.print(myArray[i] + " ");
}
}
public static void modify1(int [] array){
for(int i = 0; i < array.length; i++){
array[i] = array[i]+1;
}
}
public static void modify2(int x){
x++;
}
Object-Oriented Programming
5: Given the class "Node", What gets printed when ooTest() is called?
public class Node {
static int IDCount = 0;
private double nodeID = 0;
private Node next;
private int value = 0;
Node()
{
nodeID = IDCount++;
System.out.println("created: "+nodeID);
}
public double getID()
{
return nodeID;
}
public void setID(double id)
{
nodeID = id;
}
public Node getNext()
{
return next;
}
public int getValue()
{
return value;
}
public void setValue(int val)
{
value = val;
}
public void setNext(Node n)
{
this.next = n;
}
public static void ooTest(){
Node[] nodes = new Node[4];
for (int i = 0; i < nodes.length; i++){
nodes[i] = new Node();
nodes[i].setValue( (i+1)*2 );
}
nodes[0].setNext(nodes[2]);
nodes[2].setNext(nodes[1]);
nodes[1].setNext(nodes[3]);
nodes[3].setNext(nodes[0]);
System.out.println ( nodes[3].getNext().getNext().getValue() );
}
}