面向对象方法的一个重要原则是封装,它将对象的属性和操作(或服务)组合成一个独立的整体,并尽可能隐藏对象的内部实现细节。
封装封装过程和数据,数据只能通过定义的接口访问。面向对象计算始于这样一个基本概念:现实世界可以被表示为一系列完全自主的、封装的对象,这些对象通过一个受保护的接口访问其他对象。封装是用Java实现的一种信息隐藏技术,其关键字为private、protected和public。封装是什么?封装将对象的所有组件组合在一起,定义程序如何引用对象的数据,并实际使用方法来隐藏类的数据并控制用户如何修改类和访问数据。正确的封装可以使代码更容易理解和维护,还可以增强代码的安全性。
public class Man{
//对属性的封装,一个人的姓名,年龄,妻子都是这个对象(人)的私有属性
private String name;
private int age;
private Woman wife;
//对该人对外界提供方法的封装,可以设定妻子,姓名,年龄也可以获得男人的姓名和年龄
// 方法封装
public void setWife(Woman wife) {
this.wife = wife;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class Woman {
// 属性封装
private String name;
private int age;
private Man husband;
// 方法封装
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Man getHusband() {
return husband;
}
public void setHusband(Man husband) {
this.husband = husband;
}
}
仔细看就会发现,Man类没有提供getWife的方法,这是因为男人不想让自己的妻子被外界访问,
* 接下来呢,就是封装可以把一个对象的属性私有,而提供一些可以被外界访问的属性的方法,
* 比如说,name属性,Man和Woman类都有相应的get和set方法,外界都可以通过这些方法访问和修改
* 同时对一些对象不想让外界访问的属性,就不提供其方法,比如说Man的wife属性,就没有get方法
* 外界是不能得到Man类的wife属性的
public class Show{
public static void show(String str){
System.out.println(str);
}
}
上面就是对 System.out.println();的封装。
调用的时候 :
public class Use{
public static void main(String[] args){
Show.show("封装");
}
}
封装的作用
①对象的数据封装特性彻底消除了传统结构方法中数据与操作分离所带来的问题,提高了程序的可重用性和可维护性,减轻了程序员保存数据和操作内容的负担。
②对象的数据封装特性还可以将对象的私有数据和公共数据分离,保护私有数据,减少模块之间可能的干扰,达到降低程序复杂度和提高可控性的目的。
想要系统学习JAVA推荐JAVA300集
Java300集零基础适合初学者视频教程



