Java面向对象之封装

川长思鸟来 2022-08-21 04:15 455阅读 0赞

尊重原创 http://blog.csdn.net/erlian1992/article/details/50596564?ref=myread

一封装概述

  1. (1)封装的概念
  2. 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过类提供的方法来实现对隐藏信息的操作问。

在面向对象程式设计方法中,封装是指,一种将抽象性函式接口的实作细节部份包装、隐藏起来的方法。

  1. (2)封装的好处:
  2. A要访问该类的代码和数据,必须通过严格的接口控制,只能通过规定的方法访问数据。
  3. B隐藏类的实例细节,方便修改和实现,封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义

的代码随机访问。

  1. C封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
  2. D适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。
  3. (3)封装的实现步骤

Center

  1. A修改属性的可见性,设为private
  2. B创建getter方法和setter方法,用于属性的读写
  3. Cgetter方法和setter方法中加入属性控制语句,对属性值的合法性进行判断。

二封装实例

  1. (1)最常见的封装过程实例
  2. Test.java源代码文件代码:

[java] view plain copy

print ? 在CODE上查看代码片 派生到我的代码片

  1. public class Test{
  2. private String id;
  3. private String name;
  4. private int age;
  5. public String getId(){
  6. return id;
  7. }
  8. public String getName(){
  9. return name;
  10. }
  11. public int getAge(){
  12. return age;
  13. }
  14. public void setId(String newId){
  15. id = newId;
  16. }
  17. public void setName(String newName){
  18. name = newName;
  19. }
  20. public void setAge( int newAge){
  21. age = newAge;
  22. }
  23. }

    以上实例中public方法是外部类访问该类成员变量的入口。通常情况下,这些方法被称为getter和setter方法。因

此,任何要访问类中私有成员变量的类都要通过这些getter和setter方法。

  1. 通过如下的代码说明Test类的变量怎样被访问:
  2. Run.java源代码文件代码:

[java] view plain copy

print ? 在CODE上查看代码片 派生到我的代码片

  1. public class Run{
  2. public static void main(String args[]){
  3. Test test = new Test();
  4. test.setId(“1234002”);
  5. test.setName(“李思思”);
  6. test.setAge(20);
  7. System.out.print(“id: “ + test.getId()+”,name: “ + test.getName()+ “,age:”+ test.getAge());
  8. }
  9. }

    上述的两个源文件需要放置在同一个包内,运行结果:

    Center 1

    (2)加入属性控制语句的封装过程实例

    改写实例(1)的代码:

    Test.java源代码文件代码:

[java] view plain copy

print ? 在CODE上查看代码片 派生到我的代码片

  1. public class Test{
  2. private String id;
  3. private String name;
  4. private int age;
  5. public String getId(){
  6. return id;
  7. }
  8. public String getName(){
  9. return name;
  10. }
  11. public int getAge(){
  12. return age;
  13. }
  14. public void setId(String newId){
  15. id = newId;
  16. }
  17. public void setName(String newName){
  18. name = newName;
  19. }
  20. public void setAge(int newAge){
  21. if(newAge<0||newAge>100){
  22. System.out.println(“你输入的年龄不合规范!”);
  23. //年龄默认为0
  24. age = 0;
  25. }else{
  26. age = newAge;
  27. }
  28. }
  29. }

    Run.java源代码文件代码:

[java] view plain copy

print ? 在CODE上查看代码片 派生到我的代码片

  1. public class Run{
  2. public static void main(String args[]){
  3. Test test = new Test();
  4. test.setId(“1234002”);
  5. test.setName(“李思思”);
  6. test.setAge(200);
  7. System.out.print(“id: “ + test.getId()+”,name: “ + test.getName()+ “,age:”+ test.getAge());
  8. }
  9. }

    运行结果:

Center 2

  1. 如果写入的年龄是20呢,输出的结果为:

Center 3

发表评论

表情:
评论列表 (有 0 条评论,455人围观)

还没有评论,来说两句吧...

相关阅读

    相关 面向对象封装

    封装 该露的露,该藏的藏 我们程序设计要追求“高内聚,低耦合”。 高内聚就是类的内部数据操作细节自己完成,不允许外部干涉; 低耦合:仅暴露少量的方法给外部使用。

    相关 面向对象封装

    封装 隐藏细节 - 抽离共有 封装: 对外隐藏类中一些属性与方法的实现细节 优点:外界不能直接访问,让内部的属性与方法具有安全保障 clas

    相关 面向对象封装

    一、什么是封装 什么是封装,就是将复杂的丑陋的,隐私的细节隐藏到内部,对外提供简单的使用接口,对外隐藏内部实现细节,并提供访问的接口 二、为什么需要封装 两个目的:1.为