Java面向对象之成员隐藏与属性封装操作示例

 更新时间:2018年06月19日 08:48:11   转载 作者:grey_csdn  
这篇文章主要介绍了Java面向对象之成员隐藏与属性封装操作,结合实例形式分析了Java面向对象程序设计中成员的隐藏及属性封装相关实现与使用操作技巧,需要的朋友可以参考下

本文实例讲述了Java面向对象之成员隐藏与属性封装操作。分享给大家供大家参考,具体如下:

关于这个功能的优点我现在体会还不深,只是从书本中找到了面向对象编程的一个原则——尽量让数据私有。如果需要对数据的信息进行修改或者获取,不会直接修改成员信息,而是通过方法的调用来实现。

写如下代码:

packagefengzhuang;
class HuaShanPai
{
  private String zhangmen;
  private int dizishu;
  private String gongfu;
  public String getZhangmen() {
    return zhangmen;
  }
  public void setZhangmen(String zhangmen) {
    this.zhangmen = zhangmen;
  }
  public int getDizishu() {
    return dizishu;
  }
  public void setDizishu(int dizishu) {
    this.dizishu = dizishu;
  }
  public String getGongfu() {
    return gongfu;
  }
  public void setGongfu(String gongfu) {
    this.gongfu = gongfu;
  }
}
public class FengZhuang {
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    HuaShanPai huashandizi = new HuaShanPai();
    huashandizi.setDizishu(123);
    huashandizi.setGongfu("紫霞神功");
    huashandizi.setZhangmen("岳不群");
    System.out.println("华山派弟子人数: " + huashandizi.getDizishu());
    System.out.println("华山派功夫: " + huashandizi.getGongfu());
    System.out.println("华山派掌门: " + huashandizi.getZhangmen());
  }
}

运行结果:

华山派弟子人数: 123
华山派功夫: 紫霞神功
华山派掌门: 岳不群

首先,关于如上代码值得一说的是方法的实现。其实,在eclipse中,实现get以及set的功能是集成了一个自动生成功能的。而代码中相应方法的实现使用的全都是这个功能。具体的功能再source的菜单栏中,选择生成getter以及setter选项即可弹出一个对话框。在对话框中勾选自己需要处理的属性即可。

通过main方法中的代码可以看出,通过set函数实现了对私有属性的修改,同样,通过get函数实现了对修改后的属性的获取。当然,关于属性的获取应该是什么时候都是可以的。

目前,暂时还不是很清楚这种功能在软件构件上有什么优点或者优势。如果有优势的话,其实在C语言中也可以仿出一些类似的功能,这种技术倒是可以变相拓展使用到现在工作的软件构建中去。

至于把数据私有化,代码中使用了private关键字对属性定义进行了修饰。这样,直接通过一个对象的属性访问时无法对属性进行获取或者修改的。通过这种方式,对象所拥有的数据表现为一种私有状态。

更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

相关文章

  • 初次使用IDEA创建maven项目的教程

    初次使用IDEA创建maven项目的教程

    这篇文章主要介绍了初次使用IDEA创建maven项目的教程讲解,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Mybatis中 XML配置详解

    Mybatis中 XML配置详解

    这篇文章主要介绍了Mybatis中 XML配置详解的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-01-01
  • SpringBoot集成阿里云OSS图片上传

    SpringBoot集成阿里云OSS图片上传

    这篇文章主要为大家详细介绍了SpringBoot集成阿里云OSS图片上传,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • java网上图书商城(6)订单模块1

    java网上图书商城(6)订单模块1

    这篇文章主要为大家详细介绍了java网上图书商城,订单模块,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • 剖析Java中HashMap数据结构的源码及其性能优化

    剖析Java中HashMap数据结构的源码及其性能优化

    这篇文章主要介绍了Java中HashMap数据结构的源码及其性能优化,文中以Java 8后HashMap的性能提升来讨论了HashMap的一些优化点,需要的朋友可以参考下
    2016-05-05
  • 详解JVM的内存对象介绍[创建和访问]

    详解JVM的内存对象介绍[创建和访问]

    这篇文章主要介绍了JVM的内存对象介绍[创建和访问],文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • spring的IoC和DI详解

    spring的IoC和DI详解

    这篇文章主要介绍了spring的IoC和DI详解,还是挺不错的,这里分享给加,需要的朋友可以参考下。
    2017-11-11
  • JFreeChart动态画折线图的方法

    JFreeChart动态画折线图的方法

    这篇文章主要为大家详细介绍了JFreeChart动态画折线图的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • idea启动项目报端口号冲突或被占用的解决方法

    idea启动项目报端口号冲突或被占用的解决方法

    这篇文章主要介绍了idea启动项目报端口号冲突或被占用的解决方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • Java8中Lambda表达式使用和Stream API详解

    Java8中Lambda表达式使用和Stream API详解

    这篇文章主要给大家介绍了关于Java8中Lambda表达式使用和Stream API的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Java8具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05

最新评论