如何学习Java语言中一些无法理解的问题

前言

最近在学习Java语言,随着学习的深入,有时会碰到一些无法理解的问题,类似成员内部类不能有静态属性和方法。

如何设计finally

类似的问题很多,甚至无法理解原因,为什么会有这样的逻辑,这中需要理解并记忆的东西,往往果断时间就忘记了。因为我们很难理解这是为什么?即使找到原因,也很快就会遗忘。在现实开发中,很少碰到需要使用的地方,所以必然会被忘记,但是有天碰到这个问题,明明之前记住的东西,却无论如何也记不住了。
综上所述,类似的问题有很多。比如finally的作用,时间一长,finally究竟是做什么的,发生异常并捕获会调用,用于关闭一些资源,如果没有异常是否也会调用?记性不好的就忘记了。
但是我们想一想,如果让我设计finally,我会如何设计呢?我会设计成无论是否有异常,都应该被调用,用于处理程序结束前的一些操作。

如何设计成员内部类

甚至类似的,返回上一个问题,成员内部类是否应该定义静态属性?加入我把成员内部类当做成员变量,就需要通过创建外部类对象,才能访问成员内部类,当外部类对象消亡,成员内部类也应该随着消亡,因为成员变量是属于对象的,只能通过外部类对象访问,不能通过外部类静态方法访问成员内部类(好比成员变量只能由对象访问,不能通过静态方法访问),所以成员内部类不应该被静态方法访问,自然不应该拥有静态属性和方法。当然这就是原因了。

结论

通过上述问题,可以看出,Java语言是被设计出来的,先创建了对应概念,然后设计对应的语法结构。先创造出成员内部类这个概念,明晰这个类用来做什么------大概是相当于成员变量的东西。
然后,有人设计一种逻辑,来实现这个概念。至于为什么不能有静态属性和方法,通过概念分析,这个类就不应该有静态属性和方法,因为一旦加载了这个类,理论上就可以调用他的静态属性和方法,但是他应该随着对象而消亡,消亡后不能访问,但是静态属性是属于类的,只要加载了就一定存在,并可以通过某种方式访问,所以应该限制,没有外部类对象时,不能访问成员内部类属性和方法。通过直接限制无法拥有静态属性和方法,就可以实现随着外部类对象消亡而消亡。

总结

学习Java时,不要钻牛角尖,要明白Java语法是被设计出来的,甚至很多东西也是为解决特定问题产生的,比如设计模式,他总是用来解决特定问题。不要想很难记忆,应该想遇到问题,然后提出解决办法,最后发现某个技术正好解决这个问题。不应该区理解Java这样设计有什么功能,而应该理解为什么被这样设计。
比如,不需要理解finally有什么功能,应该理解他是为什么设计,是为了解决异常返回时后续资源无法释放,结尾操作无法处理的难题。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值