封装概述
(1)Java中封装的实质就是将类的状态信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
(2)封装反映了事物的相对独立性,有效避免了外部错误对此对象的影响,并且能够对对象使用者由于大意产生的错误起到预防作用。
(3)面向对象编程提倡对象之间实现松耦合关系。
(4)封装的好处在于隐藏类的实现细节,让使用者只能通过程序员规定的方法来访问数据,可以方便地加入存取控制修饰符,来限制不合理操作。
(5)松耦合就是指尽量减少对象之间的关联性,以降低它们之间的复杂性和依赖性。
封装的步骤
1、 修改属性的可见性
将类中的属性由public修改为private即可。
2、 设置setter/getter()方法
可以手动添加setter/getter()方法,也可以使用组合键Ctrl+Shift+S由系统添加。
3、 设置属性的存取限制
在setter()方法中进一步利用条件判断语句进行赋值限制。
提供公共的方法让外部程序可以访问我封装的内容
public String getName() {
return name;
}
将一个数据存储到对象的name属性中
public void setName(String name) {
this.name = name;
}
Math类是java.lang包中的类,虚拟机自动导入lang包的类,不需要我们手动导入
一个类同时引用了两个来自不同包的同名类:使用类的完整路径名
一个Java文件中只能有一个public修饰的类,并且这个类的名称要和Java文件的名称一致
public class demo02{}
一个Java文件中除了public修饰的类,还可以定义n个默认修饰符修饰的类,这些默认修饰符修饰的类不能同名
一般来说,一个Java文件中只定义一个类
公有访问级别:在任何地方都可以被访问
包级私有:被默认修饰符修饰的类只能在其所在的包中使用
访问:
同一个类中,所有修饰符修饰的属性都可以直接访问
被private修饰的属性,外部程序不能直接访问
不同包中的类不能访问另外一个包中使用protected修饰的属性
stu1.gender = '男';
不同包中的类不能访问另外一个包中使用默认修饰符修饰的属性
stu1.weight = 69;
不同包中的类不能访问另外一个包中使用private修饰的属性
stu1.age = 20;
以前声明常量的时候没有使用Static修饰,每创建一个对象就会在内存中开辟一个空间用来存储这个常量值
多个对象就会创建多个常量值,造成空间浪费,可以使用Static修饰这个常量值,让多个对象共享
静态方法: