Java之初学感想
时间向来如此,总在一个人全神贯注做一件事的时候过的飞快,眼看来黑马学习已经一个月有余。想想两个月前,自己还在一个看不到希望的的岗位上挣扎徘徊,曾几何时也是一次又一次地问自己是不是该做些改变了,一个一眼就能看到未来的岗位到底值不值得坚持。可能是迫于现实的压力,自己好几次搁置了辞职然后另谋出路的想法。终于,时间来到了2018年,眼瞅着又大了一岁,总觉得能够改变自己的机会已经不多了。人生就是这样,不管你愿不愿意,总会在某个关键的时间点需要对梦想与现实权衡利弊,然后做出选择和取舍。而这一次,我的选择是黑马是java。
来到黑马的这三十多天,除了认识很多可爱的同学并分享了他们每一个人的故事,在知识的积累上也是收获满满。言归正传,接下来谈一下这些天我对学习java的一些个人想法。
首先我认为学习java,就javaSE来说,最重要的就是要对一些概念性的东西做到透彻的理解,比如说最基本的就是知道什么是类、方法、对象、变量等,还有一些重要的关键字的修饰作用如public、private、static、final、abstract、this、super等不胜枚举,然后就是要清晰类又有抽象类、普通类、内部类之分,方法有静态方法、非静态方法之别,变量有成员变量、局部变量、静态变量、私有变量等,理解面向对象的特点继承、封装、多态。其次重要的就是,要通过理解java中类、对象、变量、方法等之间的关系及调用方法,来形成自己的思维模式,这一点很重要。举例来说,我们都知道抽象类和接口不可以创建对象,如果需要使用类中方法可以通过多态(父类引用指向子类对象)调用方法,那么这里重要的就是分清类的属性和类之间的关系,比如说我们熟悉的DateFormat和SimpleDateFormat。特殊的,如日历类Calendar是一个抽象类,如果我们需要使用类中方法(如使用int get(int filed)非静态方法获得给定日历字段的值),我们有两种选择:首先,可以通过创建子类(GregorianCalendar )对象调用父类方法;此外,特殊的,Calendar类中有一个静态方法static Calendar(getInstance( )),其返回值是一个日历类对象,那么就可以通过静态方法的特殊性即类名直接调用静态方法的方式返回日历类对象,然后我们再通过返回的日历类对象调用Calendar类中的非静态方法(如int get(int filed)),那么这里就必须知道Calendar类的属性和静态方法的调用规则,这些逻辑关系不清晰的话,查看API也无济于事。
上面说了这么多,主要就是对学习java的过程给出自己的方法。我并不会对java某些工具类中写好的方法去死记硬背,我觉得只要记得有这些方法的存在即可,如果需要实现某种功能而去调用方法完全可以查阅API文档。相反,我会把学习的重点放在对代码的理解上,理解代码其实就是一个分析代码逻辑关系的过程,知其然还要知其所以然,就比如我们知道静态方法中不能调用非静态的成员变量,那么我们就应该知道静态方法随着类的加载而加载,优先于所有的非静态变量和方法,也就是说静态方法出现的更早当然无法调用非静态变量和方法,这样才算是知其然知其所以然。如此,我们以后在写代码的过程中,才能通过自己的逻辑思维去实现代码,而不是将写代码机械化的变成一种记忆输出。 |
|