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 + "真好玩!");
  }
}

相关文章

  • Spring EnableAsync注解异步执行源码解析

    Spring EnableAsync注解异步执行源码解析

    这篇文章主要为大家介绍了Spring EnableAsync注解源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 深入浅析Netty 在 Dubbo 中是如何应用的

    深入浅析Netty 在 Dubbo 中是如何应用的

    国内知名框架 Dubbo 底层使用的是 Netty 作为网络通信,那么内部到底是如何使用的呢?今天通过本文给大家详细讲解,对Netty 在 Dubbo中应用相关知识感兴趣的朋友跟随小编一起看看吧
    2020-05-05
  • SpringBoot中实现数据字典的示例代码

    SpringBoot中实现数据字典的示例代码

    这篇文章主要介绍了SpringBoot中实现数据字典的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Java实现解析dcm医学影像文件并提取文件信息的方法示例

    Java实现解析dcm医学影像文件并提取文件信息的方法示例

    这篇文章主要介绍了Java实现解析dcm医学影像文件并提取文件信息的方法,结合实例形式分析了java基于第三方库文件针对dcm医学影像文件的解析操作相关实现技巧,需要的朋友可以参考下
    2018-04-04
  • Java switch case语句的用法及常见问题

    Java switch case语句的用法及常见问题

    这篇文章主要介绍了Java switch case语句的用法及常见问题,Java中的switch语句是一种多分支选择结构,用于替代多个if...elseif的情况,它根据某个变量的值,执行匹配分支中的代码块,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-04-04
  • eclipse启动一个Springboot项目

    eclipse启动一个Springboot项目

    本文主要介绍了eclipse启动一个Springboot项目,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Java实现Dijkstra算法的示例代码

    Java实现Dijkstra算法的示例代码

    Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。本文主要介绍了实现这一算法的Java代码,需要的可以参考一下
    2022-07-07
  • Spring Cloud OAuth2中/oauth/token的返回内容格式

    Spring Cloud OAuth2中/oauth/token的返回内容格式

    Spring Cloud OAuth2 生成access token的请求/oauth/token的返回内容就需要自定义,本文就详细介绍一下,感兴趣的可以了解一下
    2021-07-07
  • MyBatis中特殊符号的转义

    MyBatis中特殊符号的转义

    编写SQL中会用到<,>,,>= 等,但是在mybatis中不可以这么写,与xml文件的元素冲突,所以需要转义,本文主要介绍了MyBatis中特殊符号的转义,主要介绍了两种转义方式,感兴趣的可以了解一下
    2024-01-01
  • springboot中实现上传文件的功能简单示例

    springboot中实现上传文件的功能简单示例

    这篇文章主要给大家介绍了关于springboot中实现上传文件功能的相关资料,在Spring Boot中实现文件上传下载功能相对简单,文中给出了代码示例,需要的朋友可以参考下
    2023-09-09

最新评论