Java语言基本问题整理

一、课堂动手实验一:

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

验证结果:

二、动手动脑:

仔细阅读示例: EnumTest.java,运行它,分析运行结果?

你能得到什么结论?你掌握了枚举类型的基本用法了吗?

源代码:

public class EnumTest {

 

public static void main(String[] args) {

Size s=Size.SMALL;

Size t=Size.LARGE;

//s和t引用同一个对象? 

System.out.println(s==t);  

//是原始数据类型吗?  不是

System.out.println(s.getClass().isPrimitive());

//从字符串中转换

Size u=Size.valueOf("SMALL");

System.out.println(s==u);  //true

//列出它的所有值

for(Size value:Size.values()){

System.out.println(value);

}

}

 

}

  enum Size{SMALL,MEDIUM,LARGE};

结果:

false

false

true

SMALL

MEDIUM

LARGE

枚举类型仅适用于JDK 5.0及更新的版本.

枚举可用于switch语句中。

枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象。

可以使用“==”和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,“==”和equals()方法执行的结果是等价的。

三、动手动脑实验:

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

请通过互联网查找资料,或者是阅读相关计算机教材,解决这个问题。

提示:

这个问题,与浮点数在计算机内部的表示方法有关系。可以使用这个知识在搜索引擎中查找相关资料

java中double类型数据是用64位来表示的,精度肯定是有限的,在需要更高精度的运算过程中,有两种方法可供参考:

1. 自己用超过64位来表示一个double类型,比如用100个byte[]来表示一个double(800bytes);这样的话,double的加减乘除就需要自己实现一遍了。很多IT公司有这样的面试题。

2. 用java自带的BigDecimal类可以方便做高精度的运算。(c++中是没有BigDecimal这种方面的类的,所以只能用第一种方法)

四、动手动脑:

例:package com;

 

class Test {

private static int value=1;

public static void main(String[] args){

int value=2;

System.out.println(value);

}

}

输出结果:2

五、以下代码输出什么?

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

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

为什么会有这样的输出?

在语句一中,“+”是连接量;在语句二中,“+”是运算符,进行求和运算。

六、课后作业

1、编写一个程序,用户输入两个数,求出其加减乘除,并用消息框显示计算结果。

源代码:


import java.util.Scanner;

import javax.swing.JOptionPane;// import class JOptionPane

public class Operation {

 public static void main( String args[] ){

        Scanner input=new Scanner(System.in);

        System.out.println("请输入两个整数:");

        double a,b;

        a=input.nextDouble();      //输入第一个数

        b=input.nextDouble();      //输入第二个数

 

        double sum,difference,product,quotient;

        sum=a+b;                   

       difference=a-b;

       product=a*b;

       quotient=a/b;

        //输出对话框显示结果

      JOptionPane.showMessageDialog(

         null, "The sum is " + sum +" "+

               "The difference is "+ difference +" "+

            "The product is "+product+" "+

               "The quotient is "+quotient,"Results",

      JOptionPane.PLAIN_MESSAGE );

 System.exit( 0 );

 

 }    

}

运行结果:

 

 

 

 

原文地址:https://www.cnblogs.com/cn123456/p/4860221.html