java中封装的实现方法详解

 更新时间:2018年10月29日 08:40:02   投稿:laozhang  
在本篇文章里我们给大家详细分享了关于java中封装的实现方法,有需要的朋友们跟着学习下。

1、封装是什么?以及为什么要进行封装?

通常情况下可以给成员变量赋值一些合法但不合理的数值,这种情况在编译阶段和运行阶段都不会报错或给出任何的提示信息,此数值虽然合法但与现实生活不符;为了避免上述问题的发生,就需要对成员变量进行密封包装处理来保证该成员变量的合法合理性,这种机制就叫做封装。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格的接口控制。

2、如何进行封装?

(1)私有化成员变量,使用private关键字修饰;

(2)提供公有的get和set方法,在方法体中进行合理值的判断,使用public关键字修饰;

(3)在构造方法中使用set方法进行合理值的判断;

3、事例如下/*Person.java*/

/*
   编程实现Person类的封装
 */
public class Person{
  //1.私有化成员变量,使用private关键字修饰
  private String name; 
  private int age;
  private String country;
  //使用static关键字修饰成员变量表示提升为类层级只有一份被所有对象共享
  //public static String country;
 
  //3.在构造方法中调用set方法进行合理值的判断
  public Person(){
  }
  public Person(String name, int age, String country){
    setName(name);
    setAge(age);
    setCountry(country);
  }
 
  //2.提供公有的get和set方法,在方法体中进行合理值的判断
  public String getName(){
    return name;
  }
  public void setName(String name){
    this.name = name;
  }
  public int getAge(){
    return age;
  }
  public void setAge(int age){
    if(age > 0 && age < 150){
      this.age = age;
    }else{
      System.out.println("年龄不合理!!!");
    }
  }
  public String getCountry(){
    return country;
  }
  public void setCountry(String country){
    this.country = country;
  }
 
  public void show(){
    System.out.println("我是" + getName() + ",今年" + getAge() + "岁了,来自" + getCountry() + "!");
  }
 
  //自定义成员方法描述吃饭的行为
  public void eat(String food){
    System.out.println(food + "真好吃!");
  }
  //自定义成员方法描述娱乐的行为
  public void play(String game){
    System.out.println(game + "真好玩!");
  }
}

相关文章

  • 微信支付java版本之Native付款

    微信支付java版本之Native付款

    这篇文章主要为大家详细介绍了微信支付java版本之Native付款,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • springcloud feign传输List的坑及解决

    springcloud feign传输List的坑及解决

    这篇文章主要介绍了springcloud feign传输List的坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java生成Echarts表图的2种实现方案

    Java生成Echarts表图的2种实现方案

    这篇文章主要给大家介绍了关于Java生成Echarts表图的2种实现方案,ECharts是一款功能非常强大的JavaScript图表库,文中通过代码实例介绍的非常详细,需要的朋友可以参考下
    2023-09-09
  • Java中的2种集合排序方法介绍

    Java中的2种集合排序方法介绍

    这篇文章主要介绍了Java中的2种集合排序方法介绍,本文直接给出代码,相关说明请看代码中的注释,需要的朋友可以参考下
    2014-10-10
  • Java跳跃游戏实例真题解决思路详解

    Java跳跃游戏实例真题解决思路详解

    这篇文章主要介绍了Java跳跃游戏,总的来说这并不是一道难题,那为什么要拿出这道题介绍?拿出这道题真正想要传达的是解题的思路,以及不断优化探寻最优解的过程。希望通过这道题能给你带来一种解题优化的思路
    2022-10-10
  • AsyncHttpClient的ConnectionSemaphore方法源码流程解读

    AsyncHttpClient的ConnectionSemaphore方法源码流程解读

    这篇文章主要为大家介绍了AsyncHttpClient的ConnectionSemaphore方法源码流程解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • java 过滤器filter防sql注入的实现代码

    java 过滤器filter防sql注入的实现代码

    下面小编就为大家带来一篇java 过滤器filter防sql注入的实现代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • SpringMVC JSON数据传输参数超详细讲解

    SpringMVC JSON数据传输参数超详细讲解

    有时候参数的传递还需要更多的参数,比如一个获取用户信息的请求中既有用户ID等基本参数,还要求对查询结果进行分页,针对这种场景,一般都会将分页参数封装成一个对象,然后将它和基本参数一起传给控制器
    2023-02-02
  • 全面解析Java8观察者模式

    全面解析Java8观察者模式

    这篇文章主要为大家全面解析Java8观察者模式,通过在 Java8 环境下实现观察者模式的实例,进一步介绍了什么是观察者模式、专业化及其命名规则,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • SpringCloud Bus 消息总线的具体使用

    SpringCloud Bus 消息总线的具体使用

    这篇文章主要介绍了SpringCloud Bus 消息总线的具体使用,详细的介绍了什么是消息总线以及具体配置,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12

最新评论