课程作业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”。

 

posted on 2017-10-07 20:14  宛英东  阅读(187)  评论(0编辑  收藏  举报