栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

封装与普通

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

封装与普通

您的问题很有趣。我将尽力为您解答。

封装 背后的主要思想 是向 其他用户 隐藏数据及其实现 细节。如果我们将数据成员设为 私有
,则只能在同一类中访问它。没有其他类可以直接访问该数据。

但是我们可以定义一个接口,即公共getter和setter方法来更新其他类中的数据。这样可以确保 私有数据 对其他人 仍然不可访问
,并且只能由您提供的公共方法访问。

例如,您可能决定只为特定数据成员提供getter方法,而不提供setter方法。
这样可以确保其他任何类都无法以任何可能的方式更改或更新您的数据成员。他们只有在希望使用getter方法时才能获取值。

这就是为什么封装也称为 数据隐藏的原因

public class EncapsulationDemo{    private int ssn;    private String empName;    private int empAge;    //Getter and Setter methods    public int getEmpSSN(){        return ssn;    }    public String getEmpName(){        return empName;    }    public int getEmpAge(){        return empAge;    }    public void setEmpAge(int newValue){        empAge = newValue;    }    public void setEmpName(String newValue){        empName = newValue;    }    public void setEmpSSN(int newValue){        ssn = newValue;    }}public class EncapsTest{    public static void main(String args[]){         EncapsulationDemo obj = new EncapsulationDemo();         obj.setEmpName("Mario");         obj.setEmpAge(32);         obj.setEmpSSN(112233);         System.out.println("Employee Name: " + obj.getEmpName());         System.out.println("Employee SSN: " + obj.getEmpSSN());         System.out.println("Employee Age: " + obj.getEmpAge());    } }

优点

1)它为代码提供了 灵活性 ,并使其 易于维护。
我们可以更改

getEmpName()
setEmpName()
不影响任何其他外部代码的实现。

2)我们可以随时使数据成员为 只读 (仅定义getter)或 仅写 (仅定义setter)。

3)其他用户将不知道 幕后情况 。他们只会知道,要更新数据,我们需要调用settter方法并获取数据,而我们需要调用getter方法。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/515976.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号