开涛大哥,现在写代码看到以前的项目中有人写dao层全部都是静态方法,这样不需要实例化就可以直接调用。但是现在的ssh框架都是通过spring实例化dao层的对象来设置实例到service层中,这些实例调用的都是非静态的方法。我表示不懂静态方法和非静态方法到底有啥区别,哪种方式更好一些,或者效率更高一些?
1条回答 默认 最新
- jinnianshilongnian 2012-08-23 12:24关注
1、静态方法一般在工具类中居多,如jdk 的 Arrays、Collections,做工具类使用静态方法还是蛮适合的;这些方法是上下文无关的,需要的数据都是从参数传过来的;
你们公司的dao层类说明是工具类,可以这么干。2、非静态方法:如User有getName方法 这个方法在获取name时需要一个上下文,这个上下文就是当前对象,因此是上下文相关的,所以适合非静态方法。
Class User {
private String name;public String getName() { return this.name;//this就是当前对象,jvm在调用这个方法时自动把当前对象赋值给this这个引用,因此是一种上下文相关的,不同的对象调用这个方法返回的值可能不同 }
}
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器