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 { }
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.
Devi said:
6 years ago
Dog is a class and why the object has been created like that?
Shr said:
7 years ago
But Dog is a class. And if we want to create an array fo object we need only one subcript.
Raj said:
8 years ago
Why array didn't initialized automatically?
Sid said:
8 years ago
Why not compilation fails?
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]);
}
}
{
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]);
}
}
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].
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].
Piyali said:
1 decade ago
Dog[][] the Dogs = new Dog[3][];
Should be replaced by int Dog[][] the Dogs = new Dog[3][any no.];
Should be replaced by int Dog[][] the Dogs = new Dog[3][any no.];
Lucky said:
1 decade ago
Can anyone explain that what's the solution of this problem.
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.
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.
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)
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers