封装的概念:
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。(把尽可能多的东西藏起来,对外提供便捷的接口)
使用原则:把所有的属性藏起来。
如何实现封装:
1.修改属性的可见值 //设为private,防止错误的修改
2.创建共有的getter、setter方法 // 属性的读写
3在getter、setter方法中加入属性控制语句// 对属性值的合法性进行判断
封装的优点:
1.便于使用者正确使用系统,防止错误修改属性
2.有助于系统之间的松耦合,提高系统独立性
3.提高软件的可重用性
4.降低了构建大型系统的风险
包的导入:
为了使用不在同一包中的类,需要在Java程序中使用import关键字导入这个类
import 包名. 类名;
import java.util.*; //导入java.util包中所有类
import cn.jtest.classandobject.School; //导入指定包中指定类
注意事项:
一个类同时引用了两个来自不同包的同名类 必须通过完整类名来区分
每个包都是独立的,顶层包不会包含子包的类 package和import的顺序是固定的
package必须位于第一行(忽略注释行),只允许有一个package语句, 其次是import 接着是类的声明。
类的访问修饰:
修饰符:1.public修饰符:共有访问级别 2.默认修饰符:包级私有访问级别
类成员的访问修饰
作用域 修饰符 | 同一个类中 | 同一个包中 | 子类中 | 任何地方 |
private | 可以 | 不可以 | 不可以 | 不可以 |
默认修饰符 | 可以 | 可以 | 不可以 | 不可以 |
protected | 可以 | 可以 | 可以 | 不可以 |
public | 可以 | 可以 | 可以 | 可以 |
static修饰符
static可以用来修饰
成员变量 :静态变量,可以直接通过类名访问
成员方法: 静态方法,可以直接通过类名访问
代码块 :静态代码块,当Java虚拟机加载类时,就会执行该代码块
static变量
类的成员变量包括
类变量(静态变量)
被static修饰的变量
在内存中只有一个拷贝
类内部,可在任何方法内直接访问静态变量
其他类中,可以直接通过类名访问
实例变量
没有被static修饰的变量
每创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响。
ststic方法
静态方法:可直接通过类名访问
静态方法中不能使用this和super
不能直接访问所属类的实例变量和实例方法
可直接访问类的静态变量和静态方法
实例方法:通过实例访问
可直接访问所属类的静态变量、静态方法、实例变量和实例方法
静态方法必须被实现