• 课程实验代码及动手动脑测试


    枚举类型测试代码:

    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
    };

    结论:枚举类型是引用类型!枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象,相同的值则引用一个对象。可以使用“==”和equals()方法直接比对枚举变量的值,换句话说,对于枚举

    变量,用“==”和equals()方法执行的结果是等价的。枚举类型中values()方法的作用是获取枚举类中的所有变量,并作为数组返回。

    使用两个输入框输入数据和一个输出框输出输入两个数据的和

    //An addition program 
    
    import javax.swing.JOptionPane;                                // import class JOptionPane
    
    public class Addition {
        public static void main(String args[]) {
            String firstNumber,                                   // first string entered by user
                    secondNumber;                                 // second string entered by user
            int number1,                                          // first number to add
                    number2,                                      // second number to add
                    sum;                                          // sum of number1 and number2
    
            // read in first number from user as a string
            
            firstNumber = JOptionPane.showInputDialog("Enter first integer");
    
            // read in second number from user as a string
            
            secondNumber = JOptionPane.showInputDialog("Enter second integer");
    
            // convert numbers from type String to type int
            
            number1 = Integer.parseInt(firstNumber);
            number2 = Integer.parseInt(secondNumber);
    
            // add the numbers
            
            sum = number1 + number2;
    
            // display the results
            
            JOptionPane.showMessageDialog(null, "The sum is " + sum, "Results", JOptionPane.PLAIN_MESSAGE);
    
            System.exit(0);                                     // terminate the program
        }
    }

    调用了Java中swing类进行窗口的建立,并利用将字符串转化为数字进行数字的相加。

    public class test {
        private static int value = 1;
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            int value = 2;
            System.out.println(value);
        }
    
    }

    Java中变量遵循“同名变量屏蔽原则”(个人理解:就近原则)

    TestDouble代码测试

    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));
        }
    }

    输出结果:

     结论:使用double类型的数据进行计算时,其结果是不精确的(与浮点数在计算机内部的表示方法有关)。

    使用BigDecimal类进行测试

    import java.math.BigDecimal;
    
    public class TestBigDecimal
    {
        public static void main(String[] args) 
        {
            BigDecimal f1 = new BigDecimal("0.05");
            BigDecimal f2 = BigDecimal.valueOf(0.01);
            BigDecimal f3 = new BigDecimal(0.05);
            System.out.println("下面使用String作为BigDecimal构造器参数的计算结果:");
            System.out.println("0.05 + 0.01 = " + f1.add(f2));
            System.out.println("0.05 - 0.01 = " + f1.subtract(f2));
            System.out.println("0.05 * 0.01 = " + f1.multiply(f2));
            System.out.println("0.05 / 0.01 = " + f1.divide(f2));
            System.out.println("下面使用double作为BigDecimal构造器参数的计算结果:");
            System.out.println("0.05 + 0.01 = " + f3.add(f2));
            System.out.println("0.05 - 0.01 = " + f3.subtract(f2));
            System.out.println("0.05 * 0.01 = " + f3.multiply(f2));
            System.out.println("0.05 / 0.01 = " + f3.divide(f2));
            
        }
    }

    结论:在构建BigDecima对象时应使用字符串而不是double类型,否则仍有可能引发计算精度问题。

     对Java中+连接字符串的问题的思考

    int x=100;
            int y=200;
            System.out.println("x+y="+x+y);
            System.out.println("x+y="+(x+y));

    结论:从第一个字符串以后都默认为字符串(如果第二个变量为整型依旧看作字符串处理,除非采用括号优先运算)。

  • 相关阅读:
    MyBatis学习篇
    常见两大类(个人和企业)登记主体小程序的区别
    Redis学习篇
    Spring注解之参数校验@Validated和@Valid
    Spring学习篇
    Windows安装OnlyOfiice教程
    Java序列化和反序列化
    数据库种类大全
    C# Web请求URL编码转换 URL转码 UrlDecode UrlEncode
    使用DockerCertBot获取SSL证书
  • 原文地址:https://www.cnblogs.com/weixiao1717/p/11567726.html
Copyright © 2020-2023  润新知