经过一个学期的学习,Java的课程已经结束了。可是我知道,学习java的路上,我们才刚刚起步。学Java之前我听许多人说Java很难,学了之后我感觉Java确实不容易,想学好它并非易事。
学习java天赋是很重要,但不是绝对的至少我是这么认为的!我想说的是我认为态度决定一切,Java的J2SE是Java的核心基础,学好SE部分对Java后期的深入学习非常重要。在SE部分,有许多的知识要点:类的概念、类的继承、多态、接口、面向对象等等。对于这一阶段的学习,除了课堂上的听讲,最最重要的是代码的实践,通过编写代码来理解上述所说的知识点的,将抽象的东西变成可以被你理解,应用的工具,熟能生巧嘛。
其次,学习的方法也很重要!好的方法会事半功倍哦!例如在编写代码的过程中可能会有这样那样的问题,遇到问题请教别人是一种不错的方法,但是,我认为最好不要马上请教身边的高手。自己先试着想办法解决,分析问题,对症下药,让自己有解决问题的成就感!但也不要在某个问题上发费太多的时间和精力,那样会使你产生挫败感,丧失学习的兴趣。在适当的时候请教高手,你会受益良多!
再次,对于资源的使用,也是提高学习效率的方式。SUN公司提供了专门的API文档,供开发者学习JAVA,遇到没见过的类、接口或者某个方法,就可以通过查询API文档获得帮助!不要忽视API文档,它是你学习JAVA很重要的帮手!网络也是另一种宝贵的资源,你可以下载一些JAVA的视频教程来复习和巩固知识、上网查询你解决不了的问题、到相关的论坛转转,发表你未解决的问题,听听高手的想法!
其实在刚接触Java时,自己确实有点晕,但经过一段时间学习,逐渐走出了迷雾。刚开始学习循环时,我觉得那一块很不熟悉,做题时,思路半天才理出来。经过一段时间的练习,我渐渐的走出了第一个迷雾。但是到了第六章,我彻底晕了,看书看得也一知半解晕晕乎乎的。类与对象是在学了第七、八章后弄清的。到了最后一章,学到字符串时,传递参数真让我晕啊,然后我又是练习,最后略微弄明白了点。我总结了我学Java的特点:先是不懂,后明白,再次不懂,又明白,又一次晕,最后弄清。经过三起三落,经过几个迷雾之后,我对Java也有了更为深入的了解,就学会了Java。
我觉得把Java学会的关键一点就是坚持练习。学习Java时每天必须保证一定量的练习,我们老师也说学习编程语言没有捷径可走。真的,只有每天反复操作了,经常写代码了,我们在遇到问题时才有一定的思路。欲速则不达,学习编程语言需要一个比较漫长的阶段,不能一步登天,这需要一个过程,在这个过程中慢慢积累经验,扎实基础。不要以为写出了一个简单的小程序,就认为自己已经学的很好了,这只不过是在你学习编程过程中一个小小的实践。不要满足于现状,要不断完善自己的知识体系,善于总结实践经验。要端正自己的学习态度,是主动去学,而不是被动!提高自学能力。学习编程的秘诀是:编程、编程、再编程。不仅要多实践,而且要快实践。
我们在看书的时候,不要等到完全理解了才动手敲代码,而是应该在看书的同时敲代码,程序运行的各种情况可以让更快更牢固的掌握知识点。程序代码是软件开发最重要的成果之一,其中渗透了程序员的思想与灵魂。当你学习一个类以后,你就可以自己写个简单的例子程序来运行一下,看看有什么结果,然后再多调用几个类的方法,看看运行结果,这样非常直观的把类给学会了,而且记忆非常深刻。然后不应该满足把代码调通,你应该想想看如果我不这样写,换个方式,再试试行不行。记得哪个高人说过学习编程就是个破坏的过程,把书上的例子,自己学习Documentation编写的例子在运行通过以后,不断的尝试着用不同的方法实现,不断的尝试破坏代码的结构,看看它会有什么结果。通过这样的方式,你会很彻底的很精通的掌握Java。举个例子,我们都编过Hello World ,一开始很多同学不是很理解为什么main方法一定要这样来定义public static void main(String[] args),能不能不这样写?我刚也有这样的疑问。想知道答案吗?很简单,你把main改个名字运行一下,看看报什么错误,
然后根据出错信息进行分析;把main的public取掉,在试试看,报什么错误;static去掉还能不能运行;不知道main方法是否一定要传一个String[]数组的,把String[]改掉,改成int[],或者String试试看;不知道是否必须写args参数名称的,也可以把args改成别的名字,看看运行结果如何。我当初学习Java的时候就是这样做的,把Hello World程序反复改了七八次,不断运行,分析运行结果,最后就彻底明白为什么main方法是这样定义的了。这样虽然比较费时间,不过一个例子程序这样反复破坏几次之后。我就对这个相关的知识彻底学通了。有时候甚至故意写一些错误的代码来运行,看看能否得到预期的运行错误。这样对于编程的掌握是及其深刻的。
当然学习环境对学习效率也很重要。在学习的这段日子,我感触很多,我们班的学习氛围还不错,有时候大家一起讨论、学习、共同进步,有问题也可以询问助教,比自己一个人闭门造车来的更有效果!讲师在授课之余,还传授很多其他方面的知识,大大扩展了我们的见识,增加了学习的兴趣!
学习是一个日积月累的过程,只有从菜鸟做起,一步步的来,才能在学习JAVA的道路上留下你深深的脚印,在学习中享受!人之所以能,是相信能!同时在学习过程中应该注意的几点有:
1)首先是java环境的配置,对于已经习惯双击“setup”进行安装的我们来说,安装完毕后就可以使用软件了,但是java不是这样,安装完java jdk后需要对你所在的操作系统进行环境的配置,设置一些最最基本的环境运行变量。测试环境变量的配置是否正确。
2)添加你应用所需的功能扩展jar包。
3)配置好应用需要的dll动态链接库文件。
4)在项目建立初期进行输出打包测试,这样做的好处在于:应用软件的最终运行状态是软件需要发布,并可以在其他用户的计算机正确的运行,项目初期就进行输出、安装测试可以提早发现软件的非编码错误,另一点是将软件初期的GUI操作发布给用户,可以让用户提出一些宝贵的软件功能、界面上的整改意见,这样可以使软件更贴合用户的需求。
5)多多阅读相关知识点的英文资料,当然好的中文资料也是不可少的。
6)多多访问一些技术论坛,国内还是有一些不错的纯技术论坛的,在哪里你可以看到java的方方面面,及时更新自己的知识,“冲刷”自己的头脑是非常必要的,国外的技术论坛有时候需要翻墙才能访问,需要提前准备好翻墙的工具。不过我发现台湾的java论坛比国内的好,从版面的设置到人的参与性都比国内的要好,学习讨论的氛围也很浓厚。
7)多多写写问题总结,这样可以使自己加深对问题解决方法的理解,说不定哪天你会有更好的方法来解决问题。
8)多多学习别人的源代码,要知道社会发展到今天都是后人站在前人肩膀上作出来的成就,必须要清楚的知道现在的工作都是靠一群人开发才能完成的,学习别人的代码可以少走弯路,使自己更快的成长。
9)看一些技术的原理性东西,当然这个取决于你自己想从深层次的方面去应用技术还是泛泛的应用就行,每次都想快速的掌握他,虽然短时间里看起来很“繁荣”,但是当需要深入
应用时就会发现心有余力而力不足,所以在适当的时间看一些技术原理性的东西是非常有必要的。
10)最后是一个个人习惯,在今天你打开计算机前或打开IDE前,先想好今天要完成哪些工作,昨天的问题解决了吗?如果没有是否有了新的思路?软件代码的备份也很重要。
学习java就是件耗时间的事儿,如果不肯投入自己的时间,根本不可能在短时间就把java给学好了。有时候只是很简单的想法,但是要付出的很多很多才能把我的想法给实现了,所以我就决定要好好的把这件事情给做好了。我相信我是能做好的。前提是我必须要放下其他的东西,不能和同学一起出去玩儿,不能看电影,不能在网上浪费时间,不能做的事情,实在是太多了,以前我认为自己是个意志不坚定的人,现在,就有一个机会来证明我自己不是那样的人,我能长久的坚持去做一件事情,而且不惧所遇到的困难。学习是一个很反复的过程,不断的出现错误,不断的调试,不断的迷茫,不断的清晰,这些都是必须要要经历的
第二篇:Java学习报告V0.7doc
Java学习报告V0.7
继承
一个类可以从其它的类派生出来。从而继承其他类的字段和方法。派生出来的类称为子类,用来派生子类的称为父类或基类。
一个类继承一个类,则该类具有A的全部或者部分性质。
继承示例:
public class People{
public String name;
public int age;
public People(String name,int age){
this.name=name;
this.age=age;
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public float getAge(){
return age;
}
public void setAge(int age){
this.age=age;
}
}
从people类派生出来。的男人类。
public class Man extends People{
public String sex;
public Man(String name,int age ,String sex){
super(name,age);
this1.sex=sex;
}
public void eat(){
System.out.println("吃饭")
对象类型转换
隐式对象类型转换
在代码中可以定义一个父类的引用变量,实际指向一个子类。
强制对象类型转换
重写父类中的方法
当一个子类中的一个实例方法和他的父类中的一个实例方法相同时,称为重写类型转换。
class A{
public void sayHello(){
System.out.println("Hello,everyone!"); //输出英文问候
} //输出英文道别
public void sayBye(){
System.out.println("GoodBye,everyone!");
}
}
class B extends A{
public void sayHello(){
System.out.println("大家早上好!");
}
}
public class Test30{
public static void main (String[] args){
B b=new B(); //创建子类B的一个实例对象,使用默认构造方法
b.sayHello(); //调用子类中重写的方法
b.sayBye(); //调用父类中的方法。
}
}
隐藏父类中的字段
子类访问父类成员
class A{
public int value;
}
class B extends A{
}
public class Test31{
public static void main (String[] args){
B b=new B();
System.out.println("可以在子类B中直接问它的父类A中的公共字段value");
}
}
子类不继承父类的私有字段。那么需要在父类中提供用来访问其字段的public或者protected方法,然后子类就可以使用这些方法来访问相应字段。公共方法,getValue
class A{
public int value;
public int getValue(){
return value;
}
}
class B extends A{
}
public class Test32{
public static void main (String[] args){
B b=new B();
System.out.println("可以在子类B中直接问它的父类A中的公共字段value");
}
}
运行结果:在子类B中通过其父类A提供的公共访问接口访问其私有字段value:0
使用super调用父类中重写的方法:
在子类中可以访问到父类中被重写的方法,可以在子类中通过使用关键字super来调用父类中被重写的方法。
public class A{
public void say(){
System.out.println("我是父类A");
}
}
public class a extends A{
public void say(){
super.say(); //使用super关键字调用父类中的方法
System.out.println("我是子类a");
}
}
public class Test6{
public static void main(String[]args){
a a1=new a(); //创建子类的一个实例对象
a.say(); //调用子类中重写的方法
}
}
问题:最后一个使用super调用父类的带参构造方法程序运行不出来,不明白。