java封装原则_Java面向对象的封装原则

Java面向对象的封装原则

封装:

通俗理解:在不想让外人看见自己所定义的内容,但是你可以使用(调用),怎么调用呢?通过先设置(set)下属性或者方法内容,然后你必须获取(get)下才可以调用。

在面向对象编程思想中,不仅把汁液多、糖分多、含有挥发性芳香物质、可以生食等的共同特征放到水果类里,同时也把水果的开花、落果、膨大、成熟等共同行为放到水果类里,这样水果类既包含了水果所具备的共同特征,也包含了开花、落果、膨大、成熟等共同行为。

当外部需要访问水果类时,调用水果类对外提供的访问方法来访问其共同特征和行为。例如:水果类提供了get方法来访问其属性(特征),提供了开花、落果、膨大、成熟等方法来访问其行为。同时通过Java关键字public、protected、private(在Java类一节会有详细介绍)设置水果类的访问权限。

由上面的内容可以看出,Java封装就是把现实世界同类事物的共同特征和行为抽取出来,放到一个新建的类中,并设置类属性(特征)和行为的访问权限,同时提供外部访问类属性和行为的方法。

把事物的属性和行为封装在一起,可以对外隐藏内部数据,控制用户对内部数据的修改和访问,封装也消除了面向过程编程中数据与操作分离所带来的种种问题,提高了程序的可复用性和可维护性。

下面以水果类为案例,具体说明封装的过程和优点。

启动eclipse,建立Fruits项目。在Fruits项目src目录下新建包com.milihua.fruits,如下图所示:

2d4b9f65f89aa9bbbf327a10527b7508.png

图 11-4 新建水果类项目

在com.milihua.fruits包下新建FruitManager类,FruitManager类为水果管理类,负责水果品种的增加、删除,以及水果的展示等功能。在新建类时要注意勾选public static void main(String[] args)选项,如下图所示:

在com.milihua.fruits包下新建类Fruits类,Fruits类为水果类,负责水果的创建和展示。水果类封装代码如下:

22924cc47000ba4ac4d38801e36b1f1a.png

Fruits类的属性声明为私有的(private),方法声明为公共的(public)。这样,对象能够直接调用类中定义的所有方法,当对象要修改或得到自己属性的时候,就必须要调用已定义好的专用的方法才能实现。起到了隐藏内部数据,控制用户对内部数据修改和访问的作用。类的可复用性和可扩展性会在继承或多态一节讲到。

对于面向对象编程而言,需要掌握如下几点:

(1)抽象是把同类事物的共同特征抽取出来归纳为类,类的具体实例为对象。

(2)封装就是把抽取的事物属性和行为打包到一个类中,并隐藏内部数据和方法的实现过程。

(3)编程时要遵循对象调用方法,方法修改属性。

封装性的体现:

将类的属性私有化(private),同时提供公共(public)的方法来获取(get xxx)和设置(set xxx)此属性的值,且调用时不可以直接使用“对象。属性”。

public class PersonTest {

public staTIc void main(String[] args) {

Person b = new Person();//类的实例化

b.setAge(99);//调用对象的方法

b.setName(“Jack”);

System.out.println(“姓名为:” +b.getName() +“,年龄为:” +b.getAge());

}

}

public class Person {

private int age;//定义属性为私有的

private String name;

public int getAge() {//提供public方法获取属性

return age;

}

public void setAge(int i) {//提供public方法设置属性

if (i 《 0 || i 》 130) {

System.out.println(“年龄不符合规范!”);

}

age = i;

}

public String getName(){//提供public方法获取属性

return name;

}

public void setName(String n){//提供public方法设置属性

name = n;

}

}

关于权限修饰符的使用范围

2ed8ee72b37f9840f7930a6670b972a0.png

Java提供的4种权限修饰符,用来修饰类(只能使用缺省、public)及类的内部结构:属性、方法、内部类、构造器

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值