课程作业2
1.质疑:一个java类文件真的只能有一个公有类吗?请检验以下代码,是否正确。
public class Test {
public static void main( String args[] )
{
}
public class InnerClass{
}
}
运行没有错误,一个java文件可以写多个类,但其中只能有一个类是公有的,并且与源文件名一致。
2.main方法:把main的类型改为int,编译能通过吗?能运行吗?
public static void main( String args[] ){}
不能编译,不能运行
3.为什么java规定作为程序入口点的main() 方法静态的?
非静态成员函数在执行前必须先构造并实例化该函数所在的类。如果允许非静态的main,那么main函数所在的类必须先进行实例化,那么就需要再写个函数去实例化main所在的类,再调用main,如果这个实例化代码也是非静态的,又要写个函数去实例化它所在的类。因此,java语言就规定了main必须是静态的。
4.变量的作用域
程序截图
5.看着这个图,再查查Java中每个数据类型所占的位数,和表示数值的范围,你能得出什么结论?
nt占4个字节32位,取值范围-2147483648---2147483647。
byte占1个字节8位,取值范围:-128--127。
short占2个字节16位,取值范围-32768---32767。
char占两个字节16位,取值范围:0---65535。
long占8个字节64位,取值范围:-9223372036854775808到9223372036854775807。
float占4个字节32位,取值范围-3.4e+38到3.4e+38。
double占8个字节64位,取值范围:-1.7E308到1.7E308
结论:java进行初始化定义的时候,要注意赋值的范围,否则的话会超出赋值的范围,产生错误。
6.请运行以下代码
public class TestDouble {
public static void main(String args[]) {
System.out.println("0.05 + 0.01 = " + (0.05 + 0.01));
System.out.println("1.0 - 0.42 = " + (1.0 - 0.42));
System.out.println("4.015 * 100 = " + (4.015 * 100));
System.out.println("123.3 / 100 = " + (123.3 / 100));
}
}
不意外,使用double类型的数值进行计算,其结果是不精确的。
7.以下代码的输出结果是什么?
int X=100;
int Y=200;
System.out.println("X+Y="+X+Y);
System.out.println(X+Y+"=X+Y");
原因:第一行是先输出X再输出Y,没有进行运算;
第二行是先输出X+Y的结果再输出“=X+Y”。