一个简单的Java范例 定义一个简单类: public class TestJava { //(有没有发现着两行还是一样的?) public static void main(String args[]){ //Java的一个简单范例,输出和//乘方 int num = 10; //定义整形变量 num = 30; //修改变量内容 System.out.println(“num的内容是:”+num); //输出内容 (这都是什么啊) System.out.println(“num * num = ”+num*num); //输出乘方 } } 程序运行结果: num的内容是:30 num*num=900 “//”后面的内容没有输出?(原来这个叫注释,不会被编译) public class 是Java中的关键字,表示的是定义一个类,在Java中所有操作都是由类组成的。TestJava是程序中类的名称。(原来如此)因为主方法(是什么?)写在此类之中,所以称主类。
Java的基本组成是类,使用public class 和 class 都可以声明一个类,但是前者类名称必须与文件名一致,后者文件名称可以与类名称不一致,但是执行时必须执行生成后的*.class文件。 总结: 定义一个类: public class 是关键字、名称是 TestJava、下面是主方法还要有大括号、“//”是注释 public class aa{ //发现生成的是aa.java了 public static void main(String[] args){ int num = 10; //定义一个整型变量 int表示变量类型为//整型(是什么?) num = 30; //变量的可以改变,它又等于30了? System.out.println(); //输出 有换行 System.out.print(); //输出 没有换行 } } Java程序的注释 注释的作用是让别的用户可以方便的阅读每段程序,提高程序的可读性。(读程序干嘛?)还可以屏蔽掉一些暂时不用的词。 //单行注释 /* 多行注释 */ /** *这个是文档注释 是这个样子的 */ Java中的标识符 Java中的包、类、方法、参数和变量名的命名: 只能由字母、数字、下划线(_)、美元符($)组成,不能以数字开头、不能有空格、不能是Java中的关键字
变量是利用声明的方式将内存中的某个内存块保留下来以供程序使用。可以声明的数据类型为整型、字符型、浮点型或是其他的数据类型,作为变量的保存使用。变量可以用来存放数据,而使用变量之前必须先声明它的数据类型。 举例说明,在程序中声明一个可以存放整数的变量: int num; //int 是整数类型 声明多个: int num,num1,num2; Java的变量类型: 整型(int)、长整型(long)、短整型(short)、浮点型(float)、双精度浮点型(double)、字符型(char)和布尔型(boolean)。 习题答案 public class aa{ public static void main(String[] args){ System.out.println(3*3); } }
整数类型 在Java中,整数数据类型可以分为long、int、short、byte、四种,long为64位,也就是8个字节(bytes),可表示范围为-9223372036854775808~9223372036854775807;int为32位,也就是4个字节,表示范围为-2147483648~2147483647;若数据值的范围为-32768~32767时,可以声明为short(短整数)类型;若数据值更小,在-128~127之间时,可以使用byte类型,以节省内存空间。例如,声明一个短整型变量sum时: short sum; /* int sum; 整型? long sum; 长整型?貌似是 */ 经过声明后,Java即会在可使用的内存空间中寻找一个占有两个字节的块供sum变量使用,同时,这个变量的范围只能在-32768~32767之间。 在Java中对于一个整型常量,其默认的是int类型,所以在声明时不要超过int数据类型的范围。代码验证: public class DataDemo1{ public void main(String[] args){ int num = 9999999999; //错误的 } } 错误提示为:The literal 9999999999 of type int is out of range 我改为long num = 999999999;为什么也不行呢?提示同样的错误。 改为short提示也是同样的错误。(哦,默认的是int类型) 数据的溢出 public class DataDemo02{ public static void main(String[] args){ int max = Integer.MAX_VALUE; System.out.println(“整型的最大值:”+max); System.out.println(“整型的最大值+1:”+(max+1)); System.out.println(“整型的最大值+2:”+(max+2)); } } 运行结果: 整型的最大值:2147483647 整型的最大值+1:-2147483648 整型的最大值+2:-2147483647 最大值+1会变为范围中最小的那个值;+2会变为次小的那个值,这就是数据类型的溢出。想要避免这种情况的发生,需要把数据类型转换为更大的表示范围的数据类型,如长整型。 public class DataDemo03{ public static void main(String[] args){ int max = Integer.MAX_VALUE; //这是什么? System.out.println(“整型的最大值:”+max); System.out.println(“整型的最大值+1:”+(max+1)); System.out.println(“整型的最大值+2:”+(max+2L)); System.out.println(“整型的最大值+2:”+((long)max+2)); } } 运行结果: 整型的最大值:2147483647 整型的最大值+1:-2147483648 整型的最大值+2:2147483649 整型的最大值+2:2147483649 那如果long溢出了怎么办呢? long溢出只能加上变量值的界限检查,在运行时才不会出错。(虽然不知道是什么) 字符类型 字符类型在内从中占有两个字节,可以用了来保存英文字母。计算机处理字符类型时,是把这些字符当成不同的整数来看待,因此,字符类型也是整数类型的一种。 Java所使用的Unicode字符码系统,为每个字符制订了一个唯一的数值,因此,在任何语言、平台、程序中都可以安心地使用。Unciode中的小写a是以97来表示的: public class DateDemo04{ public static void main(String[] args){ char ch1 = ‘a’; char ch2 = 97; System.out.println(“ch1= ” +ch1); System.out.println(“ch2 = ”+ch2); } } 程序运行结果: ch1 = a ch2 = a 给字符变量赋值可以使用数值和字符,它们都可以使程序正确地运行。字符要用一对单引号’’括起。 转义字符:
使用浮点型数值时,默认的类型是double,在数值后可加上D或是d,作为double类型的标识。在Java中,D或是d是可有可无的。在数据后面加上F或f,则作为float类型的识别。若没有加上,Java就会将该数据视为double类型,而在编译时就会提示:可能会失去精度的错误。 public class DataDemo06{ public static void main(String[] args){ float num = 3.0f; System.out.println(“l两个小数相乘:”+num*num); } } 程序运行结果: 两个小数相乘:9.0 布尔类型 布尔(boolean)类型变量只有true和false两种。也就是说,当将一个变量定义成布尔类型时,它的值只能是true或false,除此之外,没有其他的值可以赋值给这个变量。 boolean flag = true; //声明布尔类型变量flag,并赋值为true
public class DataDemo07{ public static void main(){ boolean flag = true; System.out.println(“flag = ”+flag); } } 运行结果: flag = true 布尔值通常用来控制程序的流程。
数据类型的转换 自动类型转换、强制类型转换 数据类型的自动转换 自动转换数据类型需注意: (1)转换前的数据类型与转换后的数据类型兼容 (2)转换后的数据类型的表示范围比转换前的类型大 (3)类型的转换只限该行语句,并不会影响原先定义的变量类型,通过类型的自动转换可以保证数据的精确度。这种转换方式也称为扩大转换。 public class DataDemo08{ public static void mian(String[] args){ int x = 30; float y = 22.19f; System.out.println(“x/y = ”+(x/y)); System.out.println(“10/3.5 = ”+(10/3.5)); System.out.println(“10/3 = ”+(10/3)); } } 运行结果: x/y = 1.3519603 10/3.5 = 2.857142857142857 10/3 = 3 从结果可以发现,in类型与float类型进行计算之后,输出的结果会变成float类型,一个整型常量和一个浮点型常量进行计算之后,结果也会变为一个浮点数据,而如果是两个int类型的常量进行计算,最终结果还是int类型,而其小数部分将会被忽略。 也就是说,假设有一个整数和双精度浮点数作运算时,Java会把整数转换成双精度浮点数后再作运算,运算结果也会变成双精度浮点数。 String可以像普通变量那样直接通过赋值的方式进行声明。字符串是使用“””括起来的。两个字符串之间可以使用“+”进行连接。 任何数据类型碰到String类型的变量或常量之后都向String类型转换。(String 是什么) publci class DataDemo09{ public static void main(String[] args){ String str = “test”; int x = 30; str = str + x; System.out.println(“str = ” + str); } } 程序运行结果: str = test 30
public class DataDemo10 { public static void main(){ int i = 1; int j = 2; System.out.println(“1+2 = ” + i + j); } } 运行结果: 1+2=12 从以上的输出结果中可以发现,程序的主要目的是要计算i+j的值,但是由于碰到了字符串常量,所以所使用的数据类型都会变为字符串常量,也就是说此时的“+”实际上表示的是字符串连接的含义,对于以上的程序,如果要得到正确的结果,则必须修改为: System.out.println(“1+1 = ” + (i+j)); //加上括号之后,就表示输出时先计算两个数字相加的结果。