为什么下面两个程序运行时显示有异常

为什么下面两个程序运行时显示有错误?
编写一个程序,输出各种数据的初始值。
pulbic class OutputData
{
 private int i; 
 private double d;
 private boolean b;
 private char c;
 public static void main(String[] arrs)
 { Sysout.out.println(i);
   ~~~~~(b);
   (c); }}



编写一个程序,使用标识符定义不同类型的数据。
public class Butongleixing
{
public static void main(String args[])
{
    int i1=1;
    char c1='a';
          //正的浮点数
          float i2 = 15.11F;
          boolean b1 = false;
          boolean b2 = true;
          char c1 = 'china';
          char c3 = 56;
              //正的浮点数
          double i2 = 11.11333d;
  System.out.println(i1);
             ......
}
}


------解决思路----------------------
static方法里里面不能引用非static变量
第一个System.out.println(new OutputData().i);
第二个不能在static方法里定义变量(包括static的变量)


------解决思路----------------------
这个很明显,第一个,你要引用OutputData的变量:
1、变量必须不能是private的,如果是private的,那就有一个public或者protected的方法来引用。
2、在main方法中要引用OutputData的变量或者方法,必须要new一个OutputData的引用。

第二个有两个问题。
1、有两个c1变量定义,一个是:char c1='a'; ,另外一个是:char c1 = 'china';需要把第二个改成其它变量。
2、第二个问题,char c1 = 'china';,这个明显不对,c1是char类型的,而'china'是字符串,类型肯定不对。需要定义成String类型。
------解决思路----------------------
第二个还有一个问题:double i2 = 11.11333d;,i2也是重复的变量定义,与前面的float i2 = 15.11F;变量名冲突。
程序改成如下的就可以了:

private int i;
private double d;
private boolean b;
private char c;

public static void main(String[] arrs) {
Test t = new Test();
t.i = 12;
t.d = 2d;
t.b = true;
t.c = 'c';
System.out.println("i:" + t.i);
System.out.println("d:" + t.d);
System.out.println("b:" + t.b);
System.out.println("c:" + t.c);
}

public static void main(String args[])
 {
int i1=1; 
    char c1='a'; 
          //正的浮点数
         float i2 = 15.11F;
          boolean b1 = false;
          boolean b2 = true;
          String c2 = "china";
          char c3 = 56;
              //正的浮点数
         double i3 = 11.11333d;
         }