JavaOOP封装实例解读

 更新时间:2025年09月23日 09:12:40   作者:m0_74472493  
封装通过private限制属性访问,提供get/set方法控制数据读写,确保值合法,示例中Student类属性私有,Test类需调用set方法赋值并验证,get方法获取值,实现数据隐藏与安全操作

封装的定义

封装就是把类的某些信息隐藏起来,并提供公开的方法给外部调用,这种编程模式就是封装

封装的步骤

(1)用private修饰属性

(2)提供公共的get和set方法

(3)在get和set方法中加入控制语句

示例

创建一个Student类,用private修饰符修饰属性,将成员变量作用域限制在同一个类中

public class Student{
    //属性:用private修饰,隐藏在类内部
    private String name;
    private int age;
    private double height;
}

在方法内也发生改变,用set方法赋值

public void setName(String name){
    this.name=name;
}

也能在内部进行判断,保证录入的值在需求,合理范围内,若不在范围内,设定为默认值

public void setAge(int age){
    if (age>=0 && age<=150){
        this.age=age;
    }else{
        this.age=18;
    }
}
public void setHeight(double height){
    if (height>=0.3 && height<=4.0){
        this.height=height;
    }else{
        this.height=1.7;
    }
}

赋值结束后,用get方法取值

public String getName(){
    return name;
}
public int getAge(){
    return age;
}
public double getHeight(){
    return height;
}

创建一个Test类作为测试

public class Test {
    public static void main(String[] args) {
        Student stu=new Student();
        //stu.name="某某";
        //stu.age=19;
        //stu.height=1.76;
        stu.setName("某某");
        stu.setAge(20);
        stu.setHeight(1.76);
}

同public修饰符不同,用private修饰后,在调用时不能再使用对象名.成员变量的方式,需要运用set方法传入,对象名.set成员变量(值)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 深入理解happens-before和as-if-serial语义

    深入理解happens-before和as-if-serial语义

    本文大部分整理自《Java并发编程的艺术》,温故而知新,加深对基础的理解程度。下面可以和小编来一起学习下
    2019-05-05
  • 在IDEA使用中directory和package的操作

    在IDEA使用中directory和package的操作

    这篇文章主要介绍了在IDEA使用中directory和package的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Spring2.5.6开发环境搭建图文教程

    Spring2.5.6开发环境搭建图文教程

    这篇文章主要为大家详细介绍了Spring2.5.6开发环境搭建图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Java Guava排序器Ordering原理及代码实例

    Java Guava排序器Ordering原理及代码实例

    这篇文章主要介绍了Java Guava排序器Ordering原理及代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • mybatis学习之路mysql批量新增数据的方法

    mybatis学习之路mysql批量新增数据的方法

    这篇文章主要介绍了mybatis学习之路mysql批量新增数据的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-02-02
  • 解决springboot读取application.properties中文乱码问题

    解决springboot读取application.properties中文乱码问题

    初用properties,读取java properties文件的时候如果value是中文,会出现乱码的问题,所以本文小编将给大家介绍如何解决springboot读取application.properties中文乱码问题,需要的朋友可以参考下
    2023-11-11
  • Docker部署SpringBoot项目教程(完整版)

    Docker部署SpringBoot项目教程(完整版)

    这篇文章主要介绍了Docker部署SpringBoot项目教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • 关于JVM默认堆内存大小问题

    关于JVM默认堆内存大小问题

    这篇文章主要介绍了关于JVM默认堆内存大小问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Eclipse下使用ANT编译提示OutOfMemory的解决方法

    Eclipse下使用ANT编译提示OutOfMemory的解决方法

    由于需要使用ANT编译的代码比较多,特别是在第一次变异的时候,会出现OutOfMemory错误。并提示更改ANT_OPTS设定。
    2009-04-04
  • 使用Java实现大小写转换实例代码

    使用Java实现大小写转换实例代码

    最近在开发项目中遇到一个比较好用的方法,那就是对字符串中的字母大小进行转换,所以下面这篇文章主要给大家介绍了关于如何使用Java实现大小写转换的相关资料,需要的朋友可以参考下
    2022-06-06

最新评论