作业day2
2017-10-08 00:45 Robortxin 阅读(89) 评论(0) 编辑 收藏 举报问题一:
Java类中只能有一个公有类吗?用Eclipse检测以下程序是否正确。是否在接口中同样适用。
因为公共类名必须和这个java源程序文件名相同,所以只能有一个公共类,相应的,main方法作为程序的入口只能写在公共类中。一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为。
问题二:
把main()方法的返回值由 void 改为 int ,程序能编译通过吗?能运行吗?
不能通过,也不能运行,若为int,main函数里面应该雨返回值,返回值类型为int型。
问题三:
为什么java规定作为程序入口点的main() 方法静态的?
假设不使用static,那么main()方法在调用时必须先对其实例化,而main()做为程序的主入口显然不可能先对其实例化,所以使用static修饰,可以更方便的直接用类.main()对其调用。
问题四:
Java变量遵循“同名变量的屏蔽原则”,请课后阅读相关资料弄清楚相关知识,然后自己编写一些测试代码,就象本示例一样,有意识地在不同地方定义一些同名变量,看看输出的到底是哪个值?
package aa;
public class aaa {
int point=0;
public static void main(String[] args)
{
int point=1;
System.out.println(point);
}
}
问题五:
看着这个图,再查查Java中每个数据类型所占的位数,和表示数值的范围,你能得出什么结论?(虚线表示有精度损失,实线表示没精度损失)
精度是指的各种数据类型的位宽byte8 位,short16 位,int32 位,long64位,float32 位,double 64 位,char 16 位。
2.数据降级都会损失精度的,体现在各种数据类型能表示的范围不一样,相比之下当然位数愈多精度愈高了,其他整数类型的精度就简单了,首位表示正负,所有的都表示数值,位数越高当然精度越高。低精度向高精度转化不丢失精度,反之,从高精度传向低精度则会损失。
问题六:
运行以下程序:
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));
}
}
你看到了什么样的输出,意外吗?
答:程序结果
原因:事实上浮点运算很少是精确的,只要是超过精度能表示的范围就会产生误差。往往产生误差不是因为数的大小,而是因为数的精度。
问题七
以下代码的输出结果是什么?
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("X+Y="+X+Y)中的“+”为连接运算符,System.out.println(X+Y+"=X+Y")中的“+”为加法运算符,所以不同。