| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 810 人关注过本帖
标题:[公告]给初学者的建议
只看楼主 加入收藏
kingarden
Rank: 2
等 级:论坛游民
威 望:1
帖 子:517
专家分:40
注 册:2004-12-8
收藏
 问题点数:0 回复次数:0 
[公告]给初学者的建议
刚来这个版,发现很多和我一样的初学者,我水平也不高,但是在学习过程中有些心得,特别发出来给大家分享: 一。态度, 首先,不管你要学什么东西,都不能学的很浅,比如当你决定去学java,在学习过程中请确立一个观念:我学的是java,c,c++,。。。从现在开始与我无关,最忌的是这个学学那个学学最后变成万金油,什么都懂点,但是都就懂表面,一事无成!(注意我是说在学习过程中特别是刚开始学的那1,2个月)。 其次,要分清你学习的层次,你学的是java语言,不是一个集成开发环境,所以清先不要在你的电脑中安装jbuild等等的环境,(当然。装了先不去用也是一样:),你可以装一些“高级”点的“记事本”工具帮助你学习,比如我用的“textPad”。 还有不要跟风,就算你只看java,那么每天你仍然会发现很多你没见过的名词,也就是新技术,比如EJB拉==,你先学好语言基础,把java语言完全掌握了以后(这个掌握不光是指语言基础,还有语言思想),看技术一定很得心应手的,记住,那些技术全是用java语言实现的,举个例子:你把中文的常用语言学好了,那么技术就就象成语一样,别人告诉你一个成语的意思只是用我们常用的语言翻译它,倒过来想你常用语言还不是很懂,那很难去掌握一个成语。我们之所以使用一门技术就是因为它很规范,很专业,也很简洁,但绝对不是因为只有这门技术才能实现某些功能!所以请先把java语言学好再说:} 总的来说初学java者请记住一个合格的程序员(或更高档次的分析员等)要一专多能,但是请先有“一专”了再“多能”! 二. 关与书 首先,如何选择书,看了本版以后发现很多朋友喜欢把很大精力放在书籍的选择上,个人认为完全没有必要,任何一本比较有名的都可以看,与其多花精力在选择上,不如把这些精力花在看书上,我唯一要建议的是尽量看英文原版书,当然象我一样水平不行的就找本比较有名的书的翻译版看,你想翻译一任何语言(比如java)都非常的麻烦且浩大,要是那本书不好谁会去翻译它? 其次,有一个对书的看待问题,其实书有2种类型的,学习类型和资料类型大家都知道。上面说的是学习类型的书,关于资料类型的我强烈建议大家不关开始多困难多不习惯但是就是英语水平再差也要开始尝试在金山词霸的帮助下查阅帮助文档! 最重要的一点是看书的方法,看翻译版书的朋友一定要有一种认识,我现在看的书思想上是不完整且非常混乱的,道理很简单,书的原版作者本身的思想也许非常系统,但是每一个参与翻译这本书的人都有自己的思想,他们和原作者的想法不可能100%一样,而且参与翻译的不可能是一个人,再+上排版==的误差,所以你现在看的书实际上是一个杂合体,你看的时候在思想上尽量跳出这本书的框框。 三。学习方法 可以说没有那一种学习方法最适合哪个人,我前面说的先“专一门”,再开始去理解其它相关知识“多能”,就是因为你在专心学习一门语言的同时提高的不光是你这门语言上的水平,更重要的是学习相关知识的水平一定也会大幅度提高,当然你也一定总结出一些适合自己的学习方法! 以下写出我总结出来的一些方法希望对大家有帮助: 1。笔记,看完一章一定要写总结,把这一章的知识点以你自己的思想写出来,这样不光巩固你的知识,同时也减少了你所看书的杂合思想对你的影响(具体见是上面:) 2。动手,动手并不光指写代码,还要比对,把你设计的类和jdk基础类库里面功能类似的类比较,尝试理解java设计者为什么这样设计,当然开始一定非常困难,但是对以后绝对有帮助。 3。应用,有很多初学者总是觉得刚学习的基础知识特别是理论方面的很难有地方应用,比如我的一些朋友常问我接口有什么用?内部类有什么用?为什么明明静态内部类和外部类一样还要有?还有多态中的动态绑定是怎么回事? 我以我学习过程中如何了解并掌握静态内部类的用处来举各例子,开始刚接触到的时候我也不知所措非常困惑,后来当我开始学习java.awt.geom(这个包中的类封装了大部分常用的2d图形)中的类时候发现这些类全是抽象类实际使用的是它们中的静态内部类,比如这个包中的Line2D.java类你无法使用
代码:
new Line2D()
来够建一条2d的线对象,你必须使用这个类中的静态内部类的构造器:
代码:
new Line2D.Double();
来构建对象,但是根据多态技术我们知道你可以做如下赋值:
代码:
Line2D lineObject=new Line2D.Double();
当然,看了这个文件冤代码你就知道 Line2D.Double类继承Line2D类; 其实这个包里面的图形全是抽象类并且他们都有2个字类作为静态内部类 这2个子类功能完全一样都是构造这些类抽象超类的图形,只是分别是用float,和double型表示图形的相关坐标和大小! 设计成静态内部类非常方便我们理解这种层次关系并且很好的处理了类同名的问题(这不也是很抽象的java封装性的一个体现吗) 回到主题,如果把这些类完全看完,你会发现这些类体现了我们学过的java 以下抽象概念: 1。封装,(上面说过) 2。多态, 3。静态内部类。 4。抽象类。 其实还有很多,以上我们虽然没有使用到一些抽象概念,但是通过看代码我们至少知道了别人是怎么使用的,或者说我们知道的怎么应用的! 你可以把上面的例子里的类弄的更深一些:比如我个人通过学习并使用这几个类发现我们可以继承这些类中的某一类,并重载构造器使他们更面向对象化。象Rectangle2D.Double类是一个平面长方形的类,它的构造器如下
代码:
public Double(double x, double y, double w, double h) { setRect(x, y, w, h); }
我们发现它是以顶点的x,y坐标和长和宽来构造的 这个类并没有提供直接以顶点对象和长,宽来构造对象的构造器,你可以继承并重载构造器如下:
代码:
public class MyCass extends Rectangle2D.Double{ public MyClass(Point2D p,double w,double h){ super(p.getX(),p.getY(),w,h); } }
那么以上这个类就可以使用一个点对象做参数构造了 读者可以自己想一下这样做回顾了哪些知识点,同时应用了哪些特性,。。。也许你在平常的学习中常常无意中做到了对知识点的回顾和理解只是自己还没有意识到,你现在应该可以意识到并且尝试刻意的如此,
搜索更多相关主题的帖子: 万金油 开发 
2005-01-09 12:51
快速回复:[公告]给初学者的建议
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021453 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved