动手动脑问题(下雨堵在路上没有及时发表)

1 . 一个Java类文件中真的只能有一个公有类吗?

在Java语言基础的ppt的例子中(如图)是允许的,编译没有错误,是因为InnerClass类是Test类的内部类。

 

 

百度:

(1)内部类仍然是一个独立的类,在编译后内部类会被编译成独立的.class 文件,但是前面以外部类类名+$符号。
(2)内部类不能用普通的方式访问。内部类是外部类的一个成员,可以自由地访问类的成员变量,无论是否private的。
(3)内部类声明成静态的,就不能随便访问外部类的成员变量,仍然只能访问外部类的静态成员变量。

所以,内部类的定义是没有问题的,但是如果将InnerClass类拿到外面,就会提示错误:公用类型 InnerClass 必须在它自己的文件中定义。

因此,Java源文件中直接定义的public类只能有一个,且该类名必须与源文件名一致。内部类可以理解为外部类的一个成员,成员可以用public修饰。

 


2 .把main()方法的返回值由 void 改为 int

Java规定main方法必须严格按如下形式进行声明:public static void main( String args[] )

截图

 

 

 

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

百度:

正因为main方法是静态的,JVM调用这个方法就不需要创建任何包含这个main方法的实例。如果main方法不声明为静态的,JVM就必须创建main类的实例,因为构造器可以被重载,JVM就没法确定调用哪个main方法。静态方法和静态数据加载到内存就可以直接调用而不需要像实例方法一样创建实例后才能调用,如果main方法是静态的,那么它就会被加载到JVM上下文中成为可执行的方法。

 

4.变量作用域:

运行下图的程序,结果截图:

 

public class Test{

  private static int value=1;

  public static void main(String[] args){

    int value=2;

    Sydtem.out.println(value);

}

}

 

类的变量作用域是整个类,函数的变量作用域是整个函数,如果在类中定义了一个变量,这个类的函数定义一个,默认使用函数中的变量。

 

5.查查Java中每个数据类型所占的位数,和表示数值的范围,你能得出什么结论?

int           32      4           -2,147,483,648 ~ 2,147,483,647
short       16      2           -32768 ~ 32678
long        64      8           -9,223,372,036,854,775,808~+9,223,372,036,854,775,807
float        32      4           -3,40292347E+38 ~ +3,40292347E+38
double    64      8           -1.79769313486231576E+308 ~ 1.79769313486231576E+308
char        16      2           -128~127
boolean   1      0.125     true/false
byte         8       1           -128 ~ 127

位数小的转化为位数大的,无精度的损失,位数大的转化为位数小的,有精度的损失,所以进行数据类型转化时,注意精度的变化。

 

6.为什么double类型的数值进行运算得不到“数学上精确”的结果?

double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果.

 

 

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

    int X=100;

    int Y=200;

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

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

结果截图:

 

 

 

 

posted @ 2017-10-08 16:06  天赐ct  阅读(119)  评论(0)    收藏  举报