一、基础概念
对象:类的实例,具有行为和状态
类:一类对象的模版,制定了对应的行为和状态
方法:行为,决定了对象的可以拥有的动作
实例变量:每个对象都有自己的实例变量,实例变量的值决定了对象的状态
接口:可以理解为对象之间相互通信的协议
二、访问控制修饰符
修饰符 | 当前类 | 同一包内 | 子孙类(同一包) | 子孙类(不同包) | 其他包 |
| Y | Y | Y | Y | Y |
| Y | Y | Y | Y/N | N |
| Y | Y | Y | N | N |
| Y | N | N | N | N |
protected:如果子类和基类不在同一个包中,那么子类只能通过继承的方式访问,不能直接访问基类的改方法。
说白了:protected和default具有相同的访问权限,不同的继承权限
说明:
public:可以修饰类、方法、构造函数、成员变量。可以被子类继承,继承后必须是public
protected:可以修饰成员变量、构造函数、方法。不可以修饰类(内部类除外)。可以被继承,必须是protected或者public
default:可以修饰类、方法、构造函数、成员变量,不用写这个修饰符,不能被继承
private:可以修饰成员变量、构造函数、方法。不可以修饰类(内部类除外)。不能被继承
三、非访问修饰符
static:用来修饰类方法和类变量。
final:用来修饰类、方法和变量。修饰类,则类不可以被继承。修饰方法,则继承的类不可以重写。修饰变量,表示常量,不可以被修改。
abstract:修饰类和方法。用来创建抽象类和抽象方法。
synchronized,volatile:用于线程编程。synchronized可以用于同步方法和同步代码块中。volatile可以修饰变量,保障变量的可见性。
四、基本数据类型
Java有8中基本数据类型:byte、short、int、long、float、double、char、boolean。4个数值类型、2个浮点类型、1个字符类型、一个布尔类型
byte:1个字节(8位)。有符号,范围:-128(-2^7)-127(2^7-1)。默认0
short:2个字节(16位)。有符号,范围-32768(-2^15)-32767(2^15)。默认0
int:4个字节(32位)。有符号,范围-2147483648(-2^31)-2147483647(2^31 - 1)。默认0
long:16个字节(64位)。有符号,范围-9223372036854775808(-2^63)-9223372036854775807(2^63 -1)。默认0l
float:单精度16位浮点类型。默认值0.0f
double:双精度64位浮点类型。默认值0.0d
boolean:只存储true和false。默认false
char:是一个单一的 16 位 Unicode 字符,最小值(默认值): \u0000(即为0)。最大值:\uffff(即为65,535)。char 数据类型可以储存任何字符
五、引用类型
java中除了基本类型外都是引用类型。
- 对象、数组都是引用数据类型。
- 所有引用类型的默认值都是null。
- 一个引用变量可以用来引用任何与之兼容的类型。
五、变量类型
申明格式:
typeidentifier[value][, identifier[= value]] ;
例子:int a, b, c;
int a = 0, b, c=3;
变量类型有:静态变量、成员变量、局部变量
静态变量:static修饰符修饰。可以通过类直接访问。
成员变量:对象持有,独立与方法之外。
局部变量:类中方法、构造方法、语句块中,执行时创建。
- 局部变量声明在方法、构造方法或者语句块中;
- 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;
- 访问修饰符不能用于局部变量;
- 局部变量只在声明它的方法、构造方法或者语句块中可见;
- 局部变量(基本数据类型)是在栈上分配的。
- 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。