动手动脑
作者:互联网
动手动脑
一、EnumTest.java
package day02; 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 };
相关问题:
1)类 class isPrimitive()方法
- 用于检查此class 对象是否表示原始类型。(boolean\char\byte\short\int\long\float\double\void)
- 此方法是一种非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。
2)System.out.println(s.getClass().isPrimitive());
- 调用enum中的方法。
3)Size u=Size.valueOf("SMALL");
- 对u进行赋值,与1相似,使用不同的赋值语句。
4)or(Size value:Size.values())
{
System.out.println(value);
}
- 对枚举进行遍历,并且找最大的。
5)enum Size{SMALL,MEDIUM,LARGE};
- 表明使用类ENUM,名字叫Size,其中有元素SMALL,MEDIUM,LARGE,这几个元素可以看做类中的对象。
6)System.out.println()
- System.out.println(s); //运行结果:SMALL(枚举直接提供了toString的方法)
- System.out.println(s.name());//运行结果:SMALL(打印名字)
- System.out.println(s.ordinal());///得到枚举在序列中的位置
- System.out.println(s.getClass());//得到枚举类
- System.out.println(s.getDeclaringClass());//返回本类的申明处
(摘自: https://blog.csdn.net/weixin_30251587/article/details/96731005 )
结论:
枚举类型的使用是借助 ENUM 这样一个类,这个类是 JAVA 枚举类型的公共基本类。枚举目的就是要让某个变量的取值只能为若干固定值中的一个。
枚举类型是引用类型。(除了八种基本类型外其他都是引用类型)
枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象,相同的值则引用同一个对象。
可以使用“==”和equals() 方法直接比对枚举变量的值。
二、数值的二进制表示:弄清楚反码、补码和原码这几个概念,然后编写示例程序,对正数、负数进行各种位操作,观察输出结果,与手工计算的结果进行比对,看看Java中的数是采用上述哪种码表示的
反码:正数的反码还是等于原码;负数的反码就是他的原码除符号位外,按位取反。
补码:正数的补码等于他的原码,负数的补码等于反码+1。
原码:是最简单的机器数表示法。用最高位表示符号位,‘1’表示负号,‘0’表示正号。其他位存放该数的二进制的绝对值。
首先先猜想是由原码表示,程序验证
1 int a=1; 2 int b=-1; 3 int sum=a+b; 4 System.out.println(sum);
可知程序的结果为0,而在二进制中00000001+10000001=10000010,换算成十进制为-2。显然出错,故java中数值并非是由原码储存
同理,在使用反码表示时,也会出现同样的问题: (00000001) 反+ (11111110)反 = (11111111)反 = ( -0 )
而在补码中这没有这个问题:(00000001)补 + (11111111)补 = (00000000)补 = ( 0 )
结论:在java中,数值是由补码表示的
(摘自: https://www.cnblogs.com/heiyang/p/9748054.html )
三、Addition.java (两数相加)
package day02; import javax.swing.JOptionPane; public class Addition { public static void main(String[] args) { String firstNumber;// first string entered gy user String secondNumber;// second string entered by user int number1; // first number to add int number2;// second number to add int 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"); // convent 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 } };
相关问题:
1)关于integer
http://m.biancheng.net/view/890.html
2)java消息提示框JOptionPane的使用方法
https://blog.csdn.net/c1481118216/article/details/51921521?utm_source=app
四、Java变量遵循“同名变量的屏蔽原则”,请自己编写一些测试代码,有意识地在不同地方定义一些同名变量,看看输出的到底是哪个值。
标签:动脑,System,动手,枚举,println,Size,原码,out 来源: https://www.cnblogs.com/ltw222/p/13757254.html