Java Programming - Language Fundamentals - Discussion

Discussion Forum : Language Fundamentals - Finding the output (Q.No. 4)
4.
What will be the output of the program?

public class TestDogs 
{
    public static void main(String [] args) 
    {
        Dog [][] theDogs = new Dog[3][];
        System.out.println(theDogs[2][0].toString());
    }
}
class Dog { }
null
theDogs
Compilation fails
An exception is thrown at runtime
Answer: Option
Explanation:

The second dimension of the array referenced by theDogs has not been initialized. Attempting to access an uninitialized object element (System.out.println(theDogs[2][0].toString());) raises a NullPointerException.

Discussion:
14 comments Page 1 of 2.

Purnima said:   1 decade ago
Any one can expalin this?

Ashwini Surya said:   1 decade ago
Please explain it briefly.

Manoj said:   1 decade ago
Hi I am Manoj,

The above problem ,

nullpointerException means,
EX:
prblm:

Date d;//d holds null value
d.getyear();//this raises java.lang.NullpointerException

solv:

Date d=new Date();
d.getyear();
//this will not raises java.lang.NullpointerException
(1)

Rohit said:   1 decade ago
@Manoj.

But they had.

Dog [][] theDogs = new Dog[3][]

As in your example Date d= new Date()

Vinix said:   1 decade ago
Though we have

Dog [][] theDogs = new Dog[3][];

This comment is an uninitialized array of "Objects"

If you recall that an uninitialized object contain null pointer which actually points to nothing.

Hence the Exception.
(1)

Sri said:   1 decade ago
In the above program we have initialized just first column not second one. So we are getting null pointer exception.

Lucky said:   1 decade ago
Can anyone explain that what's the solution of this problem.

Piyali said:   1 decade ago
Dog[][] the Dogs = new Dog[3][];

Should be replaced by int Dog[][] the Dogs = new Dog[3][any no.];

Arjun said:   10 years ago
Dog [][] the Dogs = new Dog[3][];

The Dogs[2] = new Dog[7]; // Initialize the 3rd row of the Dogs 2D array.

The Dogs[2][0] = new Dog (); // Initialize the Dog instance at the 1st column of the 3rd row.

System.out.println (the Dogs[2][0].toString ()); // Now you can execute methods of the Dogs[2][0].

Queen said:   10 years ago
public class Test
{
public static void main(String [] args)
{
int [][] theDogs = new int[2][];
System.out.println(theDogs[1][0]);
}
}

The above program will give throw the same Exception NullPointer because we have only declared an array and not initialized it.

Now check the below program i.e. after initializing the array.

public class Test . This code will print the value 3
{
public static void main(String [] args)
{
int [][] theDogs = new int[][] {{1,2},{3,4}};
System.out.println(theDogs[1][0]);
}
}


Post your comments here:

Your comments will be displayed after verification.