java课程作业02

---恢复内容开始---

1、一个Java类文件中只能有一个公有类吗

一个Java源文件中最多只能有一个public类,当有一个public类时,源文件名必须与之一致,否则无法编译,如果源文件中没有一个public类,则文件名与类中没有一致性要求。

至于main()不是必须要放在public类中才能运行程序。

2、把main()方法的返回值由 void 改为 int ,程序能编译通过吗?能运行吗?
不能 必须返回int类型的结果

3、为什么java规定作为程序入口点的main() 方法静态的?

非静态成员函数在执行前必须先构造并实例化该函数所在的类。如果允许非静态的main,那么main函数所在的类必须先进行实例化,

那么就需要再写个函数去实例化main所在的类,再调用main,这个实例化代码需要去再实现。如果它也是非静态的,有需要写一个实例化,一直重复不能实现。
因此,JAVA语言就规定了main必须是静态的。

4、变量的作用域

在Java中,变量的作用域分为四个级别:类级、对象实例级、方法级、块级。

类级变量又称全局级变量或静态变量,需要使用static关键字修饰。类级变量在类定义后就已经存在,占用内存空间,可以通过类名来访问,不需要实例化。 对象实例级变量就是成员变量,实例化后才会分配内存空间,才能访问。 方法级变量就是在方法内部定义的变量,就是局部变量。

说明:

方法内部除了能访问方法级的变量,还可以访问类级和实例级的变量。

块内部能够访问类级、实例级变量,如果块被包含在方法内部,它还可以访问方法级的变量。

方法级和块级的变量必须被显示地初始化,否则不能访问。

5、关于double类型数值运算的精确性问题及其解决办法

 定义两个double 类型变量number1=0.01;number2=0.05;

 number1+number2=0.06000000000000005;

很明显结果是不精确的.

解决办法:定义String 类型number1,number2等等,用BigDecimal类的对象接受number,

在调用BigDecimal中加减乘除函数.

6、以下代码输出什么?

以下代码的输出结果是什么?

int X=100;

int Y=200;

System.out.println("X+Y="+X+Y);

System.out.println(X+Y+"=X+Y");

输出结果:X+Y=100200 300=X+Y

为什么会有这样的输出?

System.out.println()中的+号,在连接数值类型时是运算符,在连接字符串时是连接符

原文地址:https://www.cnblogs.com/bangandwolf/p/7636494.html