//main method
int number  = 1;
int num = 3;
details[] Darray = new details[number][num];

String name = JOptionPane.showInputDialog(null,
                "Enter the name",
                "Enter details",
String DOB = JOptionPane.showInputDialog(null,
                "Enter the DOB",
                "Enter details",

class details
// i have default construtors aswell
String getName(){
    return name;

heres the problem - i was told that you are only ment to input data in the main method. I need a 2d array to store many people info.

I tried Darray[0] = name; but this came up

C:\Documents and Settings\java:34: incompatible types
found   : java.lang.String
required: details

since classes are ment to store information (possibley privately) I was wondering the easiest way to store it in a array and pass it. I also want to use the array in the main method after the have finished storing it.
any ideas?

thanks for looking

Darray is a multidimential array of class details so you neede to use Darray[0][0] something like that in order to access details object in Darray.
Darray[0][0] = name won't work because java compiler can't convert string to details.
i am not sure but you might need to initilize every object in the array before you are going to use them. May be java compiler does this for you by calling default constructer for each element in array...

Java will initialise all elements of an array to null when you create the array itself.

Your Details (ALWAYS, ALWAYS, ALWAYS capitalise classnames) class should have a public setName(String name) method.
You should indeed also initialise the array elements yourself.

primitive type like int, char it is not assigned to null but zero or space, when creating arrays of these types. so,
int[] x = new int[5]; //all elements are equals to zero....

but like jwenting said when you make an array of objects they are all set to null, you need to construct each of them.