整理课程中所有的动手动脑问题以及课后实验性问题
Posted 附耳
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了整理课程中所有的动手动脑问题以及课后实验性问题相关的知识,希望对你有一定的参考价值。
1、一个java类文件中真的只能有一个公有类吗?
请使用Eclipse或javac检测一下以下代码,有错吗?
public class Test{
public static void main(String[] args){
}
public class InnerClass{
}
}
在MyEclipse中检测显示此代码有错误。一个Java类文件中只能有一个公有类。
通过查询可知:java程序是从一个public类的main函数开始执行的,(其实是main线程),就像C程序是从main()函数开始执行一样。 只能有一个public类是为了给类装载器提供方便。 一个public 类只能定义在以它的类名为文件名的文件中。每个编译单元(文件)都只有一个public 类。因为每个编译单元都只能有一个公共接口,用public类来表现。该接口可以按照要求包含众多的支持包访问权限的类。如果有一个以上的public 类,编译器就会报错。 并且public类的名称必须与文件名相同(严格区分大小写)。 当然一个编译单元内也可以没有public类。 在一个源文件.JAVA文件中可以有很多类,只有一个public类其他的都不能是.
2、把main()方法的返回值由 void 改为 int ,程序能编译通过吗?能运行吗?
由截图可知如果将void改为int将出现编译错误,因为main函数一般没有返回值,如果改为int就必须有一个返回int类型数值的语句。
3、为什么java规定作为程序入口点的main() 方法静态的?
非静态成员函数在执行前必须先构造并实例化该函数所在的类。如果允许非静态的main,那么main函数所在的类必须先进行实例化,那么就需要再写个函数去实例化main所在的类,再调用main函数,在一个java程序中是没有这个函数的,因此java语言就规定了main必须是静态的。
4.Java变量遵循“同名变量的屏蔽原则”,请课后阅读相关资料弄清楚相关知识,然后自己编写一些测试代码,就象本示例一样,有意识地在不同地方定义一些同名变量,看看输出的到底是哪个值。
在使用变量时需要遵循的原则为:就近原则。首先在局部范围找,有就使用;接着在成员位置找。然后在主函数里面创建对象并输出。
示例:
public class test {
public static int testdata=1;
void showdata()
{
int testdata=3;
System.out.println(testdata);
}
public static void main(String[] args) {
int testdata=2;
System.out.println(testdata);
test data=new test();
data.showdata();
}
}
执行结果:
5.为什么double类型的数值进行运算得不到“数学上精确”的结果?
简单来说就是我们给出的数值,在大多数情况下需要比64bit更多的位数才能准确表示出来(甚至是需要无穷多位),而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果。
6.以下代码的输出结果是什么?
int X=100;
int Y=200;
System.out.println("X+Y="+X+Y);
System.out.println(X+Y+"=X+Y");
为什么会有这样的输出结果?
输出结果截图:
原因:因为+的默认含义不同,第一个由于在“”之后默认为进行数据的链接。而第二则是在前面默认为加法运算。
以上是关于整理课程中所有的动手动脑问题以及课后实验性问题的主要内容,如果未能解决你的问题,请参考以下文章
课程作业02 将课程中的所有动手动脑的问题以及课后实验性的问题,整理成一篇文档。
将课程中的所有动手动脑的问题以及课后实验性的问题,整理成一篇文档
课程作业2:将课程中的所有动手动脑的问题以及课后实验性的问题,整理成一篇文档
课后作业02-2-课程中的所有动手动脑的问题以及课后实验性的问题,整理成一篇文档。