问题描述
- 新手学java有几个不懂得问题求各位大神解答
-
封装有什么意义。为什么要用prative封装呢。直接public不行吗?都说为了安全难道用一个方法setter getter 改变数据这样就安全么?。直接public 多方便。求大神举个例子说明。
第二个问题static:证明此方法是由类名称调用的这句话怎么理解。
第三个问题static有什么作用,我就知道他在类里最先执行然后可以不实力化调用,然后有什么用这有点蒙。
第四个问题我理解的映射就是一项与另一项的关系。他也可以用属性表示。但是之所以用方法进行映射是因为当有好多数据的时候用映射更方便。
各位大神不求全解决只求能指教一下
解决方案
封装的概念:封装即公布代码的对外接口,隐藏其具体实现。
代码的访问控制越严格,即具体实现隐藏的越多,日后对代码修改的自由度越大。
举个例子,只要电脑的鼠标、键盘、显示器等对外接口不改变,不管电脑内部的CPU、内存、主板等技术如何升级改造,都不会对用户使用电脑造成影响。
将类的成员变量(即属性)隐藏起来,用getter和setter作为对外接口,可以保证安全的存取成员变量(可以在getter和setter方法中做安全校验),再者可以给成员变量日后的修改提供很大的自由度。
比如成员变量要改变类型,从int改成String。getter和setter方法的参数和返回值类型可以不变,只用在getter和setter方法内做类型转换即可。
static的成员变量是可以在所有类中共享的,变量的值是唯一的,不会随着新建的对象复制。这一特点在单例模式的实现中特别有用,可以搜索设计模式---单例模式学习一下。
我的开源微信开发框架中用到了很多单例模式的设计,欢迎访问我的项目开源地址“https://github.com/junior9919/WTF ”下载。
解决方案二:
第一:谁说封装只能用private?那是实体类中的属性用private定义后只能通过get/set方法获取。
第二:static修饰后可以直接被类名调用。这句话的意思是:类不需要实例化就可以直接调用被static修饰属性或者方法。因为static是静态分配内容空间
第三:在某些情况下,用static修饰访问快,但是不能滥用
第四:用映射更方便,我的理解是:该用就用。很多东西用多了就会慢慢理解,你现在的思想可能还差了一点。慢慢来,急不得。
解决方案三:
没必要纠结这个,,功能都是业务需求发展来的
解决方案四:
你封装起来的数据,不提供get方法外界是得不到的啊,为什么不安全呢?