02-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");//给u赋值
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。

1、s和t引用的不是同一个对象,返回的为fasle。

2、原始数据类型有8种,byte(字节) short(短整型) int(整形) long(长整型) float(浮点型) double(双精度) 64 char(字符串) boolean(布尔型)所s.getClass().isPrimitive()会返回fasle;因为这个是enum type,s和u的值都为SMALL,所以返回true。

3、enum Size{SMALL,MEDIUM,LARGE}是使用一个名为Size的enum类,其中元素有SMALL,MEDIUM,LARGE可看成其中类的对象。

结论:

1、枚举类型是引用类型

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

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

枚举的基本用法:

1、for(Size value:Size.values()){
            System.out.println(value);

}对枚举进行遍历,并且找出最大的。

2、Size s=Size.SMALL 从字串转换为枚举

3、System.out.println(s==u)判断s与u是否相同

4、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());//返回本类的申明处

【动手实验】

请运行以下代码(TestDouble.java)

你看到了什么样的输出,意外吗?为什么double类型的数值进行运算得不到“数学上精确”的结果?

请通过互联网查找资料,或者是阅读相关计算机教材,解决这个问题。 提示: 这个问题,与浮点数在计算机内部的表示方法有关系。可以使用这个知识在搜索引擎中查找相关资料

答:输出结果为

0.05 + 0.01 = 0.060000000000000005
1.0 - 0.42 = 0.5800000000000001
4.015 * 100 = 401.49999999999994
123.3 / 100 = 1.2329999999999999

使用double类型的数值进行运算,是不准确的。原因涉及到二进制与十进制的转换问题。N进制可以理解为:数值×基数的幂,例如我们熟悉的十进制数123.4=1×10²+2×10+3×(10的0次幂)+4×(10的-1次幂);其它进制的也是同理,例如二进制数11.01=1×2+1×(2的0次幂)+0+1×(2的-2次幂)=十进制的3.25。double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差(除非实际数据恰好是2的n次方)。

【动手动脑】

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

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

原因:如果string字符串后面是+和变量,会自动把变量转换成string类型,则加号起连接作用,然后把两个字符串连接成一个新的字符串输出;如果先有变量的加减运算再有字符串,那么会从左到右先计算变量的加减,然后再与后面的string结合成一个新的字符串。第一个是拼接,而第二个是加法。

时间: 2024-10-12 10:06:00

02-JAVA语法基础的相关文章

Java语法基础

Java语法基础 1.  关键字 某些单词对编译器有着特殊的含义,并且不能作为标示符使用,全部是小写字母 Java语言关键字 abstract boolean break byte case catch char class try do default continue double else extends assert final finally float for If implement import instanceof int interface long native new g

java语法基础一

Java语法基础一 Java代码基本格式 Java中所有程序代码都必须存在于一个类中,用class关键字定义类,在class之前可以有一些修饰符.格式如下: 修饰符 class 类名 { 程序代码 } 注:1.Java是严格区分大小写的. 2.Java程序中一句连续的字符串不能分开在两行中写. Java程序的注释 Java里的注释有三种类型: 1.单行注释 在注释内容前面加“//”,格式为: 代码; //注释内容 2.多行注释 以斜杠加星号开头,以星号加斜杠结尾. 3.文档注释 以斜杠加两个星号

02 java语言基础

常量:字面值常量(字符串,字符,整数,小数,布尔,null),自定义常量,''这个不是字符常量,""这个是字符串常量 进制: 02.01_Java语言基础(常量的概述和使用)(掌握) A:什么是常量 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的分类 字符串常量 用双引号括起来的内容 整数常量 所有整数 小数常量 所有小数 字符常量 用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号 布尔常量 较为特

JAVA语法基础(课堂ppt问题总结)

一:运行源代码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()); //从字符串中转换

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());    //从字符串中转换   Si

Java语法基础练习2

---恢复内容开始--- 1.仔细阅读示例:EnumTest.java分析结果 代码: 运行结果: 分析:枚举类型就是一个类,枚举中的常量就是枚举类型中的实例,可把字符串转化为枚举:而且他本身是一个类,所以不是原始数据类型,同时也不能被继承.同时由于s与t引用的不是同一个数据对象,所以不相等.也不是原始数据类型. 2.   原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值.故他的取值范围是[-127, 127].原码是人脑最容易理解和计算的表示方法. 反码:正数的反码是他本身,负

JAVA语法基础之标识符和关键字

一.标识符 JAVA中的变量名.方法名.类名和对象名都是标识符,程序在编写程序的过程中要标识和引用都需要标识符來唯一确定.在Java中标识符的命名规则如下: 可由任意顺序的大小写字母.数字.下划线和美元符号组成. 不能以数字开头. 不能是Java中的保留关键字. 没有长度限制,但是大小写敏感,如Hello和hello是不同的标识符. 二.关键字 和其他语言一样,Java中也有许多保留关键字(即在Java中有特殊意义),如public.break等,这些保留关键字不能当作标识符使用.我们不需要死记

java语法基础(总结)

1,关键字:其实就是某种语言赋予了特殊含义的单词. 保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词. 2,标示符:其实就是在程序中自定义的名词.比如类名,变量名,函数名.包含 0-9.a-z.$._ : 注意: 1),数字不可以开头. 2),不可以使用关键字. 3,常量:是在程序中的不会变化的数据. 4,变量:其实就是内存中的一个存储空间,用于存储常量数据. 作用:方便于运算.因为有些数据不确定.所以确定该数据的名词和存储空间. 特点:变量空间可以重复使用. 什么时候定义变量?只

黑马程序员——Java语法基础

一.关键字 1.定义和特点 定义:被Java语言赋予了特殊含义的单词. 特点:关键字中所有的字母都为小写. 2.分类 (1)用于定义数据类型的关键字:byte.short.int.long.float.double.char.boolean.class.interface.void (2)用于定义数据类型值的关键字:true.false.null (3)用于定义流程控制的关键字:if.else.switch.case.default.for.while.do.continue.break.ret

Java语法基础常见疑惑解答

1. 类是java的最小单位,java的程序必须在类中才能运行 2. java函数加不加static有何不同 java中声明为static的方法称为静态方法或类方法.静态方法可以直接调用静态方法,访问静态变量,但是不能直接访问实例变量和实例方法.静态方法中不能使用this关键字,因为静态方法不属于任何一个实例.静态方法不能被子类的静态方法覆盖.static 表示是静态的,用static修饰的方法在本类可以直接写方法名调用!在其他类里可以用类名.方法名调用!而不用实例化.如果不加static,则一