Java SE _第2章 Java 基础语法
1.1 注释(comment)
就是对代码的解释和说明。
Java中注释种类
/* 2.1 Java的注释 1、什么是注释? 对代码的解释说明的文字,给人看的。 编译器会读取,但是会忽略它里面的含义。 2、Java中的注释有3种: (1)单行注释 // (2)多行注释 */ /* 多行注释,不允许嵌套 */ /** (3)文档注释,Java特有的注释,它是配合javadoc.exe工具使用的, 可以通过javadoc.exe工具把注释的内容,生成API文档。 @author Irene @since 1.8 */ /* 3、生成API文档的工具是javadoc.exe 格式:javadoc 源文件夹名.java 说明:javadoc工具只针对public的类 */ public class Comments{ /** main方法是Java程序的入口 @param args String[] 命令行参数 */ public static void main(String[] args){ //单行注释 //从斜杆开始到行尾都是注释内容 } /** divide:除法,这个方法的作用是求两个整数相除 @param a int 被除数 @param b int 除数 @return int 商,整数和整数相除,结果只保留整数部分 */ public static int divide(int a,int b){ return a/b; } }
1.2 关键字(keyword)
/* 关键字 1、什么是关键字? 在Java程序中有特殊意义的单词。 比如:class,public,static等 class:定义类 public:公共的,权限修饰符的一种 static:静态的 void:表示方法没有返回值 2、Java中有哪些关键字? Java8版本中一共是50个关键字。 所有关键字都是小写的,没有大写字母。 无论在notepad++,还是后面用的IDEA等软件中,关键字会变颜色。 3、其中2个关键字是保留字。 它是从C语言中保留下来的。 因为Java语言是从C语言发展过来的,也是类C语言。 而且Java程序很多时候,也会调用底层的C函数库,所以Java中保留了C语言 的一些数据类型,关键字等,其中有两个没有被Java启用的关键字就是 const(在C语言中表示常量)和goto(在C语言中表示跳转到xx位置)。 4、还有3个特殊值,经常被误认为是关键字。 true:在Java中表示真、条件成立的意思 false:在Java中表示假、条件不成立的意思 null:在Java中表示空值,对象不存在的意思 */ class Keywords{ public static void main(String[] args){ System.out.println(true); System.out.println(false); System.out.println(null); } }
1.3 标识符(identifier)(掌握)
/* 2.3 标识符 1、什么是标识符? 专业的概念:它是用来给变量、方法等命名的一些字符序列。 通俗的讲:凡是代码中需要我们程序员自己命名的部分就是标识符。 例如:我们现在写类(class)时,类名是我们自己命名(取名字)的, 它就是标识符。 2、标识符在命名时,有什么要求呢? (1)标识符的命名规则(5条,必须遵守,否则编译不通过,或者运行有错误) A:只能使用26个英文单词大小写、0-9的数字、下划线_、美元符号$。 B:在一个标识符中间不要包含空格 C:数字不能开头 D:不能直接使用关键字(保留字)、特殊值直接作为标识符名称 E:严格区分大小写 class Hello{} class hello{} 上面的两个类是完全不同的两个类 (2)标识符的命名规范(5条,建议遵守,否则会被鄙视) A:尽量见名知意 B:所有的类名等,都是每一个单词首字母大写,形式:XxxYyyZzz C:所有的变量等,都是从第二个单词开始首字母大写,形式:xxxYyyZzz D:所有的包名,每一个单词都小写,单词之间使用.分割,形式:xxx.yyy.zzz 自己写的包名千万不用以java开头。 E:所有的常量名,每一个单词都大写,单词之间使用_分割,形式:XXX_YYY_ZZZ 例如:age,name,bookName,main */ class Identify{ public static void main(String[] args){ //常量 System.out.println(Math.PI);//Math是类名,是代表数学类,PI是常量,代表圆周率 System.out.println(Integer.MAX_VALUE);//Integer是类名,代表整数,MAX_VALUE代表最大值 java.util.Date today = new java.util.Date(); System.out.println(today); //java.util是包名,Date是类名 //today这里是变量名 //new关键字,是创建对象 } }
1.4 数据类型(data type)(掌握)
Java的数据类型分为两大类:
-
基本数据类型:包括
整数
、浮点数
、字符
、布尔
。 -
引用数据类型:包括
数组
、类
、接口
、枚举
、注解
。
/* 2.4 Java的数据类型 1、Java的数据类型分为两大类 (1)基本数据类型:8种 整数类型: byte,short,int,long 小数类型: float,double 单字符类型: char 布尔类型: boolean(只有true,false两个值) (2)引用数据类型 A:类: 例如:String类,代表字符串(存储和表示多个字符) B:接口 C:枚举 D:注解 E:数组 */ class DataType{ }
1.5 常量值(literal value)
-
常量值:在程序执行的过程中,其值不可以发生改变
-
常量值的分类:
类型 举例 整数常量值 12,-23, 1567844444557L 浮点常量值 12.34F,12.34 字符常量值 ‘a’,'0',‘尚’ 布尔常量值 true,false 字符串常量值 ”HelloWorld“ -
整数常量值,超过int范围的必须加L或l(小写L)
-
小数常量值,无论多少,不加F,就是double类型。要表示float类型,必须加F或f
-
char常量值,必须使用单引号
-
String字符串常量值,必须使用双引号
/* 2.5 常量值(literal value) 也称为字面量值,在程序中固定写死的,直接写“值”。 数字、""的字符串、''的单字符等 总结: 整数,超过int范围的整数常量必须加L,用long类型表示 小数,如果没有加F,默认是double类型,加F就是float类型 字符,如果是单引号是char类型,单引号中有且只能有1个字符 如果是双引号是String类型,双引号中可以是0-n个字符 */ class LiteralValue{ public static void main(String[] args){ System.out.println(18);//18是int类型的整数常量值 System.out.println(18.5);//18.5是double类型的小数常量值 System.out.println('男');//男是char类型的单字符常量值 System.out.println("男");//男是String类型的字符串常量值 System.out.println('男' + '女');//char + char 结果:52906 System.out.println("男" + "女");//String + String 结果:男女 System.out.println(555845624451555L);//555845624451555L是long类型的整数常量值 System.out.println(555.845624451555F);//555.845624451555F是float类型单精度浮点型 System.out.println(555.845624451555D);//555.845624451555D是double类型双精度浮点型 System.out.println(555.845624451555); System.out.println(true); System.out.println(false); System.out.println("18" + "19");//字符串 1819 //System.out.println('18');//错误 System.out.println(18 + 19);//整数 37 } }
例如:
/* Java中的数据表示有两种形式: (1)常量:在整个程序运行期间不会改变的值 (2)变量:在整个程序运行期间,可以改变的值 */ class Data{ public static void main(String[] args){ System.out.println(18);//数字常量,固定的,写死的 int age = 18;//age是变量 System.out.println(age);//age是18 age++; System.out.println(age);//age是19 age = (int)(Math.random()*100); System.out.println(age);//age是? //特殊的常量 final int x = 1;//x也是常量,它是特殊的常量,称为最终变量 //x = 2; } }
1.6 变量(variable)(掌握)
变量的概念
变量:在程序执行的过程中,其值可以发生改变的量
变量的作用:用来存储数据,代表内存的一块存储区域,这块内存中的值是可以改变的。
/* 2.6 变量 1、什么是变量? 变量是一个标识符,它里面存储有数据,这个数据在整个程序运行期间可能发生改变。 2、变量有三个要素? (1)数据类型 Java的数据类型有基本数据类型(8种)和引用数据类型(类等), 它们都可以用来表示变量的数据类型。 如果是基本数据类型,里面存储的是数据值的本身; 如果是引用数据类型,里面存储的是对象的地址值。(后面面向对象部分再讲解) (2)变量名 变量名就是一个标识符,要注意遵守标识符的命名的规则和规范。 变量名从第二个单词开始首字母大写,xxxYyyZzz。见名知意。 例如:用来存储姓名,变量名name 用来存储年龄,变量名age 用来存储苹果的价格,变量名applePrice (3)变量值 变量值可以是一个字面常量值,也可以是一个表达式的计算结果等。 int age = 18; int x = 1; int y = 2; int z = x + y; 无论是常量值还是表达式给变量赋值,都要注意类型的一致或兼容的问题。 int age = 18.5;//错误 double num = 18; //可以 小数可以兼容整数 3、变量的使用应该遵循这样的原则 (1)变量必须先声明后使用 如何声明? 数据类型 变量名; (2)变量必须初始化 ,否则会报未初始化的错误 如何初始化? 变量名 = 值; 很多时候,会把声明和初始化合成一个语句 数据类型 变量名 = 值; (3)变量有作用域 (4)变量在同一个作用域不能重复声明 */ class Variable{ public static void main(String[] args){ //System.out.println(age); /* Variable.java:38: 错误: 找不到符号 System.out.println(age); age没有声明 ^ 符号: 变量 age 位置: 类 Variable 1 个错误 */ //int age; //System.out.println(age); /* Variable.java:50: 错误: 可能尚未初始化变量age System.out.println(age); ^ 1 个错误 */ //int age;//声明 //age = 18;//赋值,第一次赋值称为初始化 int age = 18;//声明并且同时初始化 System.out.println(age); //int age = 19;//左边有int age就是声明 /* Variable.java:71: 错误: 已在方法 main(String[])中定义了变量 age int age = 19; ^ 1 个错误 */ age = 19;//age重新赋值,但是没有重新声明 System.out.println(age); } public static void test(){ //System.out.println(age); /* Variable.java:73: 错误: 找不到符号 System.out.println(age); ^ 符号: 变量 age 位置: 类 Variable 1 个错误*/ } }
1.7 最终变量/常量(final)
/* 2.7 最终变量 1、什么是最终变量? 它是一种特殊的变量,这种变量的值在整个程序中不允许改变。 它的声明和变量的声明一样。 2、为什么要用最终变量? 希望能够在整个程序中,用一个统一的标识符代表一个常量值。 这个标识符代表的值不允许其他程序员修改。 如果需要有变化,只要修改一个地方就可以了,方便程序的维护。 3、如何声明最终变量? final 数据类型 变量名 = 值; */ class FinalVariable{ public static void main(String[] args){ //如果要计算圆的面积 double r1 = 2.5;//第一个圆的半径 double r2 = 2.6;//第二个圆的半径 /* double area1 = 3.14 * r1 * r1; //*这里表示乘法 double area2 = 3.14 * r2 * r2; System.out.println("第一个圆的面积:" + area1); System.out.println("第二个圆的面积:" + area2); //上面这个代码,如果客户有新的要求,圆周率用3.1415926表示 //需要修改两个地方,把3.14修改为3.1415926 */ final double PI = 3.14; double area1 = PI * r1 * r1; //*这里表示乘法 //PI = 3.25; double area2 = PI * r2 * r2; System.out.println("第一个圆的面积:" + area1); System.out.println("第二个圆的面积:" + area2); //上面这个代码,如果客户有新的要求,圆周率用3.1415926表示 //需要修改1个地方,把PI的值修改为3.1415926 } }