一、基础概念

对象:类的实例,具有行为和状态

类:一类对象的模版,制定了对应的行为和状态

方法:行为,决定了对象的可以拥有的动作

实例变量:每个对象都有自己的实例变量,实例变量的值决定了对象的状态

接口:可以理解为对象之间相互通信的协议

 

二、访问控制修饰符

修饰符

当前类

同一包内

子孙类(同一包)

子孙类(不同包)

其他包

public

Y

Y

Y

Y

Y

protected

Y

Y

Y

Y/N

N

default

Y

Y

Y

N

N

private

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修饰符修饰。可以通过类直接访问。

成员变量:对象持有,独立与方法之外。

局部变量:类中方法、构造方法、语句块中,执行时创建。

  • 局部变量声明在方法、构造方法或者语句块中;
  • 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;
  • 访问修饰符不能用于局部变量;
  • 局部变量只在声明它的方法、构造方法或者语句块中可见;
  • 局部变量(基本数据类型)是在栈上分配的。
  • 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。