引言:通过上篇博客的学习,我们学到类的构造和初始化,今天我们将继续类与对象的深度学习。
五、封装
1、作用:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互 。
2、访问修饰限定符:public、private、protected,default
(1)用private进行修饰:该成员变量或成员方法,只能在当前类中使用,不能在当前类外使用。
用default进行修饰:只能被本包中类访问。(包中同类与不同类)
(2)如何让private修饰的变量在其它类被调用:在当前类设置一个set和一个get方法,通过方法调用。
(3)什么是包:包本质上是一个文件夹。通常使用import导入包。
a、常见的包
1. java.lang:
系统常用基础类
(String
、
Object),
此包从
JDK1.1
后自动导入。
2. java.lang.reflect:java
反射编程包
;
3. java.net:
进行网络编程开发包。
4. java.sql:
进行数据库开发的支持包。
5. java.util:
是
java
提供的工具程序包。
(
集合类等
)
非常重要
6. java.io:I/O编程开发包。
b、自定义包:
在文件的最上方加上一个 package 语句指定该代码在哪个包中.
包名需要尽量指定成唯一的名字, 通常会用公司的域名的颠倒形式(例如 com.bit.demo1).
包名要和代码路径相匹配. 例如创建 com.bit.demo1 的包, 那么会存在一个对应的路径 com/bit/demo1 来存储 代码.
如果一个类没有
package
语句
,
则该类被放到一个默认包中
六、static对象
1、被static修饰的成员不属于对象,静态的成员只有一份,且存在在方法区当中。
2、访问形式:可以通过对象的引用访问,也可以通过
类名访问(一般建议:通过类名访问)
(静态的不依赖于对象。意味着不需要对象的引用来访问。)
三者虽然写的形式不同,但实际上都是对同一个静态变量作用。
3、在静态方法中不能直接调用非静态方法,要通过对象的引用。
非静态方法中可以直接调用静态方法。
4、静态方法中不能使用this关键词。
5、静态成员变量的初始化:就地初始化、通过get set 方法初始化、构造方法初始化。
七、代码块
1、静态代码块:在类加载的时候被执行。如果出现多个静态代码块,和定义顺序有关。
一般用来初始化静态成员变量。
//定义在类当中,方法的外边。
static{
System.out.println("静态代码块1”);
}
static{
System.out.println("静态代码块2”);
}
2、实例代码块:
{
System.out.println("实例代码块");
}
3、先执行静态代码块,然后执行实例代码块,最后执行构造函数。
4、静态的只会执行一次,这个类只会加载一次。