跪求大神解答-新手学java有几个不懂得问题求各位大神解答

问题描述

新手学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方法外界是得不到的啊,为什么不安全呢?

时间: 2024-11-02 11:04:20

跪求大神解答-新手学java有几个不懂得问题求各位大神解答的相关文章

新手学JAVA(三)----StringBuilder类

   上一篇文章新手学JAVA(二)----String类与StringBuffer类的区别中了解到,String的值是不可变的,这就导致 每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间,StringBuffer是可变 类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象.       StringBuffer类和StringBuilder类功能基本相似.算是两个双胞胎.   下面主要说两点   第一点  线程安全   Str

新手学java pop3遇到的问题,用户名

问题描述 新手学java pop3遇到的问题,用户名 DEBUG: setDebug: JavaMail version 1.4ea DEBUG: getProvider() returning javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsy stems, Inc] DEBUG POP3: connecting to host "pop.qq.com", port 110, isSSL fal

设置-第一次学java,有一些不懂地方。请各位帮我解答一下。

问题描述 第一次学java,有一些不懂地方.请各位帮我解答一下. 看视频看到多态性那边了.但是对对象的向上转型和向下转型的概念还是模糊不清的,有没有好心人给我解释一下. 还有一个问题: 比如有一段代码如下: class Info{ // 定义信息类 private String name = "ABCD"; // 定义name属性 private String content = "JAVA讲师" ; // 定义content属性 private boolean f

小菜鸟请教各路大神,想学JAVA广州哪个培训机构靠谱点?深圳的黑马怎么样?事关小菜鸟以后的人生,请广告君不要进来。

问题描述 ,先谢谢各位. 解决方案 解决方案二:不知道,不过培训机构现在收费都特贵,其实网上有很多很好的培训视屏教程,内容涵盖都非常全面,如果赖得住寂寞,可以考虑下载视屏来自学,当然想要快速上手也可以考虑培训解决方案三:自己没点自学能力就不要干IT了.培训的视频网上很多.你花那么多钱去培训学校,学的像网上那些视频一样.况且培训费用都是上万.计算机技术更新很快难道每次有新的东西你都自己去培训.挣钱不易自己考虑吧.解决方案四:IT行业最重要的就是个人的自学能力.如果你原来有一点基础的话.建议自学.解

新手学java看什么书比较好

问题描述 求推荐,急急如律令 解决方案 解决方案二:java从入门到精通(第三版)

新手学JAVA(一)——Equals和“==”的区别

      一句话概括:     如果操作两边都是对象句柄,就比较两个句柄是否指向同一个对象.如果两边是基本类型,则比较的就是值.          ==不属于任何类,而equals则是任何类(Java中)的一个方法.     equals()是每个对象与生俱来的方法,因为所有类的最终基类就是Object(除去Object本身):而equals()是Object的方法之一.     我们可以这样比较:     1)Primitive1(基本类型)== Primitive2(基本类型)     2

新手学java 的流程 是什么样的 ?

问题描述 最终想学web开发方向的.... 解决方案 解决方案二:java基础htmlcssjavascriptjspstrutshibernate,ibatisspring解决方案三:引用1楼lijian8552的回复: java基础htmlcssjavascriptjspstrutshibernate,ibatisspring 要学什么数据库么?解决方案四:数据库的一些基础知识是相通的,就是具体有些操作不同,可以学mysql解决方案五:引用楼主liners3的回复: 最终想学web开发方向的

新手学JAVA(五)----深入剖析JAVA拆装箱

先来看一段代码: public class Main{ public static void main(String[] args){ Integer num1 = 100; Integer num2 = 100; Integer num3 = 200; Integer num4 = 200; '''//输出结果''' System.out.println(num1==num2); System.out.println(num3==num4); } } 猜猜结果是什么? 很多人都会认为结果全为t

新手学JAVA(四)----装箱与拆箱

一 什么是装箱?什么是拆箱? 在Java中,Java对每种基本数据类型都提供了对象的包装器类型.看下表:                                                                                                            包装类对应表 基本数据类型 包装类 byte Byte boolean Boolean short Short char Character int Integer long Lo