数据类型与运算符 - 注释、标识符、关键字

返回目录

注释

注释的作用:为了方便阅读,也为了防止隔天就忘了自己写的代码是什么意思,用来说明的的文字就叫做注释,注释不会被编译,Java编译器会自动略过注释语句。

    • 单行注释:使用 // 开头,// 所在行后面的所有语句均为注释。

      //这是单行注释

       

    • 多行注释:使用 /* 开头以 */ 结尾,/*  */ 中间的内容都是注释,可以多行。
      /*这是多行注释
      这是多行注释
      这是多行注释*/
    • 文档注释:使用 /** 开头以 */ 结尾,/** */ 中间的内容都是注释,注释中包含一些说明性的文字及一些JavaDoc标签(后期写项目时,可以直接生成项目的API)
      /**这是文档注释
       * 这是文档注释
       * 这是文档注释*/

标识符

    • 标识符的作用:标识符是用来给变量、常量、类、方法以及包进行命名。
    • 标识符规则
      • 标识符必须以“Unicode字母”、“下划线_”或“美元符号$”开头。
      • 标识符其他部分可以是“Unicode字母”、“下划线_”、“美元符号$”和“数字”的组合。
      • Java对标识符大小写敏感,长度无限制。
      • 标识符不可是Java关键字,如“class”、“package”、“new”等。
    • 标识符的使用规范
      • 表示类名单词首字母大写,如“Man”、“AaronHzy”。
      • 表示方法和变量的标识符,采用“驼峰原则”:首单词小写,第二个单词开始首字母大写,如“eatFood()”、"takeYourHeart()"、“int zheShiBianLiang”。
      • 表示常量,大写字母和下划线组合,如“MAX_VALUE”、"TEST_CONSTANT"。
        Java采用的是Unicode字符集,只要是Unicode支持的字符都可以作为标识符,也就是说不仅仅支持英文,中文也是支持的。
    • 标识符演示
      //合法的标识符
      int Test = 233;
      int _123 = 233;
      int $12a = 233;
      int 变量1 = 233;
      
      //不合法的标识符
      int 1a = 233; //不能使用数字开头
      int a# = 233; //不能包含#这样的特殊符号
      int int = 233; //不能使用Java关键字

Java关键字(保留字)

关键字 含义
abstract 表明类或者成员方法具有抽象属性
assert 断言,用来进行程序调试
boolean 基本数据类型之一,布尔类型
break 提前跳出一个块
byte 基本数据类型之一,字节类型
case 用在switch语句之中,表示其中的一个分支
catch 用在异常处理中,用来捕捉异常
char 基本数据类型之一,字符类型
class 声明一个类
continue 回到一个块的开始处
default 默认,例如,用在switch语句中,表明一个默认的分支
do 用在do-while循环结构中
double 基本数据类型之一,双精度浮点数类型
else 用在条件语句中,表明当条件不成立时的分支
enum 枚举
extends 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口
final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量
finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
float 基本数据类型之一,单精度浮点数类型
for 一种循环结构的引导词
if 条件语句的引导词
implements 表明一个类实现了给定的接口
import 表明要访问指定的类或包
instanceof 用来测试一个对象是否是指定类型的实例对象
int 基本数据类型之一,整数类型
interface 接口
long 基本数据类型之一,长整数类型
native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
new 用来创建新实例对象
package
private 一种访问控制方式:私用模式
protected 一种访问控制方式:保护模式
public 一种访问控制方式:共用模式
return 从成员方法中返回数据
short 基本数据类型之一,短整数类型
static 表明具有静态属性
strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范 [1] 
super 表明当前对象的父类型的引用或者父类型的构造方法
switch 分支语句结构的引导词
synchronized 表明一段代码需要同步执行
this 指向当前实例对象的引用
throw 抛出一个异常
throws 声明在当前定义的成员方法中所有需要抛出的异常
transient 声明不用序列化的成员域
try 尝试一个可能抛出异常的程序块
void 声明当前成员方法没有返回值
volatile 表明两个或者多个变量必须同步地发生变化
while 用在循环结构中
goto 保留关键字,在C/C++中可以实现程序的跳转,但会降低可读性,所以Java将其禁用
const 保留关键字,与goto类似
    • this关键字:本质代表“创建好的对象的地址”,由于在构造方法调用前对象已创建,因此在构造方法中可以使用this代表“当前对象的地址”,this常用的用法:
      • 在程序中产生二义性之处,应使用this来指明当前对象;普通方法中,this总是指向调用该方法的对象。构造方法中,this总是指向正要初始化的对象
      • 使用this关键字调用重载的构造方法,可避免相同的初始化代码,但只能在构造方法中用,并且必须位于构造方法的第一句
      • this不能用于static方法中
        public class Test{
          int a, b, c;
          
          test(int a, int b){
            // 当变量发生二义性,可使用this来区分局部变量和成员变量
            this.a = a; //当前构造方法的a=成员变量a
            this.b = b;
          }
          
          test(int a, int b, int c){
            // 构造函数调用必须是构造函数中的第一个语句
            this(a,b); //直接调用,在构造器中调用另一个构造器,需要使用this
            this.c = c;
          }
          
          void sing(){
            System.out.println("我是sing方法,我被调用啦!");
          }
          
          void eat() {
            this.sing(); //调用本类中的sing();方法
            System.out.println("你妈喊你回家吃饭!");
          }
          public static void main(String[] args) {
            test hi = new test(2, 3);
            hi.eat();
          }
        }
    • static关键字:在类中,用static声明的成员变量为静态成员变量,也称为类变量。 类变量的生命周期和类相同,在整个应用程序执行期间都有效。它有如下特点:
      • 为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显式初始化
      • 对于该类的所有对象来说,static成员变量只有一份。被该类的所有对象共享
      • 一般用“类名.类属性/方法”来调用(也可以通过对象引用或类名(不需要实例化)访问静态成员)
      • 在static方法中不可直接访问非static的成员
        static修饰的成员变量和方法,从属于类;普通变量和方法从属于对象的。

        public class Test{
          int id;
          String name,pwd;
          static String company = "测试,我被调用啦"; //赋值静态成员变量company
          
          public static void main(String[] args) {
            test t = new test(001, "黄泽雨"); //创建对象并赋值
            test.printCompany(); //调用printCompany();方法
            
            test.company = "测试信息2"; //修改变量company
            test.printCompany(); //重新打印
            System.out.println(t);
          }
          
          // 构造方法
          public test(int id, String name) {
            this.id = id; //当前构造方法的id=成员变量id
            this.name = name;
          }
          
          public void login() {
            System.out.println("登录账号:"+name);
          }
          
          public static void printCompany() {
            System.out.println(company); //输出静态成员变量company
          }
        }
    • static静态初始化块:构造方法用于对象的初始化;静态初始化块,用于类的初始化;在静态初始化块中不能直接访问非static成员,注意事项:
      • 上溯到Object类,先执行Object的静态初始化块,再向下执行子类的静态初始化块,直到我们的类的静态初始化块为止
      • 构造方法执行顺序和上述顺序一样
        public class Test{
          int id;
          String name, pwd;
          static String company;
          
          public static void main(String[] args) {
            test  t = new test();
          }
          
          // 用static修饰的静态块,类初始化时执行
          static {
            System.out.println("执行类的初始化工作");
            company = "测试内容"; //给静态变量company赋值
            printCompany(); //执行printCompany方法
          }
          
          public static void printCompany(){
            System.out.println(company);
          }
        }