课程作业02:将课程中的所有动手动脑的问题以及课后实验性的问题,整理成一篇文档。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了课程作业02:将课程中的所有动手动脑的问题以及课后实验性的问题,整理成一篇文档。相关的知识,希望对你有一定的参考价值。

问题一:一个Java类文件中真的只能有一个公有类吗?

    请使用Eclipse或javac检测一下以下代码,有错吗?

技术分享

以上代码编译不通过!

一个Java源文件中最多只能有一个public类,当有一个public类时,源文件名必

须与之一致,否则无法编译,如果源文件中没有一个public类,则文件名与类中没有一致性要求。
至于main()不是必须要放在public类中才能运行程序。

 

java程序是从一个public类的main函数开始执行的,就像C程序是从main()函数开始执行一样。public类只能定义在以它的类名为文件名的文件中。每个编译单元(文件)都只有一个public类。因为每个编译单元都只能有一个公共接口,用public类来表现。该接口可以按照要求包含众多的支持包访问权限的类。如果有一个以上的public类,编译器就会报错。并且public类的名称必须与文件名相同(严格区分大小写)。当然一个编译单元内也可以没有public类。在一个源文件.java文件中可以有很多类,只有一个public类其他的都不能是在public类。如果有很多public类,那程序怎么运行?

 

把main()方法的返回值由 void 改为 int ,程序能编译通过吗?能运行吗?

不能运行,因为没有返回值。

 

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

非静态成员函数在执行前必须先构造并实例化该函数所在的类。如果允许非静态的main,那么main函数所在的类必须先进行实例化,那么就需要再写个函数去实例化main所在的类,再调用main,如果这个实例化代码也是非静态的,又要写个函数去实例化它所在的类。因此,java语言就规定了main必须是静态的。

 

问题二:动手实验运行一下代码

技术分享

技术分享

结果表明: 使用double类型的数值进行计算, 其结果是不精确的。

原因分析:数据在计算机中以二进制的形式进行存储,double类型的数值占用64bit,即64个二进制数,而我们给出的数值,在大多数情况下需要比64bit更多的位数才能准确表示出来(甚至是需要无穷多位),而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果。

 

动手动脑:以下代码的运行结果是什么

 1 public class demo 
 2 {
 3     public static void main(String[] args)
 4     {
 5         int X=100;
 6         int Y=200;
 7         System.out.println("X+Y="+X+Y);
 8         System.out.println(X+Y+"=X+Y");
 9     }
10 }

技术分享

因为+的默认含义不同,第一个由于在“”之后默认为进行数据的链接。而第二则是在前面默认为加法运算。

正确用法:System.out.println("X+Y="+(X+Y));

 


以上是关于课程作业02:将课程中的所有动手动脑的问题以及课后实验性的问题,整理成一篇文档。的主要内容,如果未能解决你的问题,请参考以下文章

课程作业02:将课程中的所有动手动脑的问题以及课后实验性的问题,整理成一篇文档。

课程作业02:将课程中的所有动手动脑的问题以及课后实验性的问题,整理成一篇文档。

课程作业02:将课程中的所有动手动脑的问题以及课后实验性的问题,整理成一篇文档。

课程作业02将所有动手动脑的问题以及课后实验问题

课后作业02-2-课程中的所有动手动脑的问题以及课后实验性的问题,整理成一篇文档。

课程作业02-2所有动手动脑问题以及课后实验课堂实验总结