为什么下面两个程序运行时显示有异常
为什么下面两个程序运行时显示有错误?
编写一个程序,输出各种数据的初始值。
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;变量名冲突。
程序改成如下的就可以了:
编写一个程序,输出各种数据的初始值。
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;
}