这一节看一下java基本数据类型和变量类型
1. 基本数据类型
这里和其他语言的基本数据类型是一致的(多了一个byte)。只强调一下自动类型转换和强制类型转换
自动类型转换:
这里需要注意的是,这个自动类型装换是有一个隐含的顺序:
强制类型转换:
2. 变量类型
在java 里面支持的变量类型有:
- 类变量(静态变量):独立于方法之外的变量,用 static 修饰
- 实例变量:独立于方法之外,没有 static
- 局部变量:类的方法里面的变量
类变量(静态变量):
这里其实有点像C语言里面的静态变量
数值类型的类变量默认值为0,布尔型是false,引用类型默认是null。声明了之后要引用,不然会warning,这个有点像头文件也需要引用。
重要的一点是,static修饰的类变量存放在静态区,几乎不会被回收,直到程序结束。
如果其他的类需要访问这个类的类变量,可以LeiBianLiang.DEPARTMENT
3. Java 修饰符
java的修饰符包括访问控制修饰符、非访问控制修饰符。
访问控制修饰符:(这里有一点类似与c++里面的)
- default
- private
- public
- protected
这里有很多规则。可以在日后的使用中具体了解。这里先挖一个很大的坑
非访问修饰符:
- static:修饰静态变量、静态方法
- final:修饰类、方法、变量。类和方法不能被继承类重新定义;变量不能被修改。(final 最后的,不能被修改的)
- abstract:抽象类、方法。
- synchronized / volatile:主要用于线程编程
static修饰符:
- 静态变量:
static 用来声明独立于对象的静态变量,也叫做类变量。局部变量不能声明为 static 变量。
- 静态方法:
static 用来声明独立于对象的静态方法,也叫作类方法。静态方法不能使用类的非静态变量。静态方法从参数列表得到数据然后计算这些数据。
对二者访问直接用 classname.variablename / cn.methodname. 这里看一个例子:
运行结果:
上面这个例子就是给你说一下怎么声明、访问类变量 / 类方法。没有什么特殊的地方。
final 修饰符:
final 变量:不能被更改的变量,一般和 static 一起来使用,创建常量
final 方法:可以被继承,不可以被修改。
final 类:不能被继承。
abstract 修饰符:
抽象类:抽象类不能用来实例化对象,声明抽象类是为了以后对该类进行扩充。所以来说,abstract 不会和 final 同时修饰类。
抽象方法:没有任何实现的方法,具体实现由子类提供。
抽象方法不能被声明成 final 和 static
抽象方法的声明以 分号 结尾。如 public abstract sample();
这个例子说明了抽象类中的抽象方法的声明和使用情况。(含有抽象方法的类一定是抽象类)。
剩下两个修饰符这里先不看了。因为并不常用。