08封装

封装

访问修饰符
每一个成员都有一个访问修饰符(变量、方法、构造器),来判断谁可以访问该成员
-公开访问级别:public 可以被任何对象访问
-受保护级别:protected 受保护的对象在同一包内可以被访问,也可以被-不同包的子类访问
-默认访问修饰:可以被同一包内的其他类访问
-私有访问:private 只有该类可以访问

注意:同一个文件类一般只有两种修饰符:默认和public
封装
在java编程中,封装非常重要,贯穿整个java学习的一个概念,类就是一种封装
概念:将类的某些信息隐藏在类的内部,不允许外部直接访问,而是通过类提供对外的接口来访问当前的数据
解析:
1.封装其实就是包装的意思,隐藏的意思。利用抽象数据类型和基于数据封装在一起,使其构成一个不可分割的整体。
2.数据被保存在抽象数据的内部,尽可能隐藏内部的细节,只保留一些对外的接口,外部可以通过接口和内部数据发生联系。
3.用户在访问当前对象数据的时候不需要关心对象内部的细节。
特点:
1.类的构造器必须是公共的(创建对象才能没有约束)
2.属性必须私有化(使用private来修饰)
3.提供get访问器和set修改器类操作内部数据
4.当前类是可序列化的
public class Husband Serializable{

	}
javabean:是java设计中重要的组件,满足前三条的所有对象称为javabean对象,当前类遵从Javabean的规范

封装的优点:
1.良好的封装能够减少类与类之间的耦合
2.类内部的结构可以自由修改
3.可以对属性(成员变量)进行控制
4.隐藏细节,实现细节

static
static变量
java中并没有全局的概念,但可以通过static实现一个伪全局的概念。static在java中表示全局或者静态

用static修饰属性或者方法,当前属性和方法属于类级别的。
对象级别:成员变量,成员方法属于对象级别的内容
类级别:静态的内容都属于类级别的内容

在类加载的时候,类的静态变量就已经在内存里创建了空间,静态变量默认是方法区。通过类创建对象的时候,每个对象都可以共享静态变量。

静态变量和成员变量区别:
1.静态变量随着类加载初始化,在内存中有且仅有一个,jvm只会给当前的静态变量分配一次内存,同时的静态变量是所有对象共享的。并且还可以通过 类名.静态变量 来访问。
2.实例变量(成员变量),伴随着对象的产生而创建,每个对象都有对应的实例变量。所有的实例变量都是和对象同生共死。
3.哪些地方使用静态变量:开发一个工具,所有类都用的(共享)。为了某些类方便访问

static方法
与static变量是一样的概念,属于类的方法。静态方法,类方法。main方法属于静态方法

成员方法和静态方法调用成员变量或静态变量的区别:
1.静态方法可以直接调用类中的静态成员
2.静态方法不能调用非静态成员变量(成员变量还没有创建)
3.普通成员方法可以调用静态变量,也可以调用普通变量
4.静态方法可以调用静态方法,但是不能调用成员方法
5.成员方法可以调用成员方法,可以调用静态方法
静态方法(还没有new对象之前)不能调用成员方法和成员变量,因为在内存中不存在

静态块
普通快:在类下面用{ }来写的代码就称为普通块,作用每次对象在产生的时候都会执行,可以使用他来做对象数据初始化。但是每次创建对象都要执行,效率比较低。
静态块:在普通块前面加static表示静态块。类加载的时候就在内存中创造空间,并且有且仅有一个,不管创建多少个对象都是共享这个快

执行顺序:
静态块---普通快---构造器

猜你喜欢

转载自blog.csdn.net/Yang_Jin_/article/details/88955341