Java封装(个人笔记十)

Java封装

一、官方概念

作为Java开发人员,必须熟知面向对象的开发方法之一封装。封装(Encapsulation)是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。

封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。

封装是一种信息隐藏技术,在Java中通过关键字private,protected和public实现封装。

封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。

适当的封装可以让程序码更容易理解和维护,也加强了程序码的安全性。

二、Java中封装的应用

封装 有两个层面的封装

1) 就把类的属性私有化,不能外界直接访问 

2) 把复杂的操作或业务逻辑封装成方法,对外公布,这样,外界只知道这些公布出来的方法,但对它们的实现细节,不用了解

例子-private封装类的私有属性

//计算器
public class Calc {
private int wdith=20;
private int height=30;
private String color="灰色"; 
//加
int jia(int a,int b){
return a+b;
}
//减
int jian(int a ,int b ){
return a-b;
}

//展示
void show(){
System.out.println("这是一个超级计算,宽"+wdith +"长" +height+"颜色"+color);
System.out.println("它能计算加法,和减法");
}

扫描二维码关注公众号,回复: 140127 查看本文章

例子-用private封装类的私有属性以及生成的get  和  set方法

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方法

三、封装的作用

1、对象的数据封装特性彻底消除了传统结构方法中数据与操作分离所带来的种种问题,提高了程序的可复用性和可维护性,降低了程序员保持

数据与操作内容的负担。

2、对象的数据封装特性还可以把对象的私有数据和公开数据分离开,保护了私有数据,减少了可能的模块干扰,达到降低程序复杂性、提高可

控性的目的。


猜你喜欢

转载自blog.csdn.net/weixin_41205479/article/details/79963703
今日推荐