面向对象三大特征之封装与static——(Java学习笔记四)
面向对象
编程本质:以类的方式组织代码,以对象的方式组织(封装)数据
对象:具体的事物,某个类的对象(实例)类:是对对象的抽象,用于描述同一类型的对象的一个抽象概念
对象和类的关系:特殊到一般,具体到抽象
三大特征:
封装
继承
多态
构造器:又叫构造方法(constructor),用于构造类的实例
格式:修饰符 类名(形参列表){
//语句
}
构造器的方法名与类名一致
通过new关键字调用
当没有定义构造方法时,系统会自定义一个无参构造函数
构造方法可以重载
作用:构造该类的对象,初始化对象的属性
ps:一旦显示的写了一个构造方法,则默认的构造方法就不在存在
static关键字:
特点:
随着类的加载而加载
优先于对象存在
被所有对象所共享
可以直接被类名调用
静态(static)方法不能直接使用外面定义的非静态方法和非静态属性,可以new一个对象实例来访问非静态方法(属性),但非静态方法可以直接访问静态成员,静态方法不可以使用this,super关键字
没有使用static修饰的方法或字段,属于对象,可称为实例成员
使用static修饰的方法或字段,属于类,可称为类成员
调用:
若是实例成员:只能通过对象来调用
若是用static修饰的字段或方法,即类成员,可以使用类名来调用,也可以使用对象来调用。由于在底层,对象调用类成员,也会转成类名调用,所以使用类名调用比较好
在JVM中有一块区域专门用来存储static修饰的成员叫静态存储区域
static比较耗性能,因为每次加载类成员的时候都要开辟空间而实例成员只有在创建的时候需要开辟空间
匿名对象:
特点:
对方法或字段只进行一次调用
可作为实际参数作为传递
只在堆内存中开辟空间,而没有在栈内存的引用
三大特性之一封装:
1》把对象的状态和行为看成一个统一整体,将二者存放在一个独立 的模块中(类)
2》“信息隐藏”,把不需要让外界知道的信息隐藏起来,尽可能隐藏对象功能实现细节、字段
封装机制在程序中体现:把描述对象的状态用字段表示,描述对象行为用方法表示,把字段和方法定义在一个类中,并保证外界不能任意改变其内部值,也不允许任意调动其内部的功能方法。
程序中的一种体现:通过类中成员变量私有化(private);通过对外提供getter、setter方法,可对私有化成员变量进行访问。
getter方法,用于获取私有化变量的值。
格式:
【非私有修饰符】 字段类型 get字段名(){
return 字段名;
}
setter方法,用于设置私有化成员变量的值
格式:
【非私有修饰符】 void set字段名(字段类型 变量){
字段 = 变量;
}