学习感想

0.前言

我学Java已经有一个学期的时间了,虽然时间不算太长,但在这一个学期里收获颇丰。期间曾迷茫过,曾困惑过;也曾开心过,喜悦过。刚开始学习Java时,我们已经接触过C语言。对于两种不同风格的形式,需要一段时间进行转变。不知道是不是初学者的共鸣,刚开始接触Java的时候感觉应该好难学,看着老师不一会就打出一大片代码的时候彻底懵了,但在惊讶之余我又对此产生了极大的兴趣,于是便开启了我的Java学习之路。本学期题目练习主要是在PTA上进行。在学习的初期,通过一些简单的题目练习,我感觉到入门也没有想象中那么困难,不得不说实验题是对一门语言入门掌握其语法成效最快的一类题。在写题的过程中我会因为花费大量时间解出一道习题而感到一种成功的喜悦;也会因为一次写不出来或找不出错误的代码而感到沮丧。但更让我记忆深刻的是那一次次学习的过程,使我有一种很强的代入感。在学习中我们要学会 ”不抛弃,不放弃“,只要能坚定的去做你会发现,你的努力或给你带来回报,虽然很多时候你努力后得到的成果并不理想。其次就是多练多打,量的积累一定会引起质的变化,请一定要相信这个道理。在学习中不仅要认真听老师讲的内容,课后还要努力的练习,以此来熟悉并掌握老师所教授的内容。这是因为不论老师讲的内容有多简单,你在课堂上听得有多懂,在你自己练习的时候你就会发现本来很简单的东西但是就是敲不出来。

1.作业过程总结

①知识迭代关系:作业从易到难,带我们逐渐适应思维的转变。逐渐从面向过程转变为面向对象程序设计。首先是java环境的搭建,然后是java类结构和main函数;后主要学习了类与类之间的关系,学习了如何使用正则表达式、类的继承并定义相应类对象并进行测试、图形继承与多态。带我们逐步理解面向对象的封装性、继承性与多态性三大技术特性;抽象类和接口以及最后学习的JavaFX基础。

②从C语言带过来的习惯慢慢转变,从第一次与C语言相同的写法到第二次了解java的语句,再到第三次作业中真正使用类的概念,题目的类型正在逐渐引导我们建立类的概念,而不是所有代码都写在一个主函数当中,通过类的设计思想,试我们的代码看上去更简洁有效,并且在今后可以单独使用和修改。通过作业逐步理解面向对象的封装性、继承性与多态性三大技术特性:把类和方法保存在整合包里体现了封装性的一个特点,就有着良好的内聚性,当我们要调用这些类时,必须先导入这些类对应的包,才可以使用这些类,极其方法,这就体现了其封装性;子类保留父类的所有变量和方法,这就是继承,而多态又是从继承而来。如果我们要重写某个父类中的方法,只需加上@override并将方法重写,体现了多态。

③遇到的问题:

1.程序容易出错,但好在错误处会有相应的提示,找出错误的地方并及时修改。

2.代码有的很复杂,有时候容易出错、不知道错误在哪。

3.在使用不同类的时候不小心把class放在了main函数中,报错时一时找不出错误。

4.正则表达式有的不能正确使用。

④每次作业花费的时间比例:一般一道题时大概要花费2-3天时间;如果是三道题或以上一般是花费1:2:3的时间。

⑤对编程过程的严谨性的认识和教训:Java编程是严谨的,且比C语言好用,一些编译和语法上的错误在平时写代码的时候往往不能够被轻易发现,但是java编译器就给出提示。除此之外懂得了使用debug,很多很难找到算法错误,使用debug去寻找会容易得多。

2.OO设计心得

①对面向对象三大技术特性之间关系的理解:

封装是面向对象的特征之一,是对象和类概念的主要特性,把类和方法保存在整合包里体现了封装性的一个特点,就有着良好的内聚性,当我们要调用这些类时,必须先导入这些类对应的包,才可以使用这些类;继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法,子类保留父类的所有变量和方法,这就是继承;而多态又是从继承而来,是指允许不同类的对象对同一消息作出响应,多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

②面向对象设计的基本原则理解:首先,应该优先选用能够最完善、最准确地表达问题域语义的面向对象语言。类的实现是核心问题,所有的数据都被封装在类的实例中,所以类是关键。实现一个系统是一个比用过程性方法更简单、更简短的过程。

③OO编程思维的理解

OO编程主要是将设计尽量与现实世界的事物一致化。类和对象是其中最基本的两个概念。在设计时,先找到要处理的各个对象,再找到各个对象共同点祖先,逐层抽象,最后确立各个类之间的继承关系。

④类设计心得

每一个类尽量做到独立功能,体现单一职责,能使得系统具有较好的可复用性。

3.测试的理解与实践

①测试对于编码质量的重要性

测试是判断编码质量的一个重要手段,通过测试,可以初步确认代码实现功能的正确与否,并且还能提示出错的地方,让我们加以修改,提高了代码的质量。

②假如让你设计测试用例,你会如何做

分别设计异常和正常输入的测试点,再在正常的范围内设计不同类型的测试点。

4.课程收获

在学习Java的过程中我总结出以下结论:

1.学习中,要养成良好的习惯(写括号时要成对,字母大小写要区分,单词拼写要准确)。

2.在学习的过程中,最好不是仅仅停留在java表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。

3.在学习的过程中一定要动手做、试着写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己。

在学习过程中,可能会遇到形形色色的问题不容易解决,应多去专业论坛了解相关的知识,书本上的知识有限。要会从网上搜索有用的信息 加以整理,促进学习的深入和知识水平的提高。

java学习感想_Java学习感想相关推荐

  1. java 7 学习笔记_Java学习笔记7-网络编程

    网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来. 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来. java.net 包中 J2SE 的 API ...

  2. java helloworld代码_java学习应用篇|逃不掉的HelloWorld

    本文知识点 1.表白不是发起进攻的冲锋号,而是吹响胜利的号角 2.除了爱情不讲道理,公理也不讲道理 3.这世界,离了javac,也是可以运行的! 4.Hello,寺水 写程序并不是写代码 看前面啰啰嗦 ...

  3. java自学难点_java学习重难点

    三人行必有我师,人生是需要不断学习的,在这里我们相遇就是缘分,希望各位可以看完这篇文章,也欢迎大家在下面留言讨论,天冷了,也动动手指转发收藏一下,谢谢大家! 在Java中修饰符总共有一下几种: 1.访 ...

  4. java 内存类_Java学习——类的生命周期和内存

    常识是本能,有足够的常识便是天才.--肖伯纳 一.类的生命周期 类的生命周期:1.加载:将二进制流加载进来.class 2.连接: 验证:确保加载进来的数据不会损害虚拟机 准备:为类变量分配内存,附默 ...

  5. 学习java的步骤_java学习的基本步骤

    Java是一个通用的编程语言,其实可以干很多事,怎么学Java就看怎么用了.但有一些基本的步骤: 熟悉一种文本编辑器, 比如:Vim, Emacs, Notepad++, TextMate等.知道哪些 ...

  6. java的圆周率_java学习日记,圆周率的打印

    前段时间看到听说学习java每天写技术贴会对自己提升很大,我现在学习java也就2个周,算不上技术贴,就写写学习日记吧. 昨天师傅给我出了一道题,说是试试用java打印圆周率. 刚开始我的思路是,如果 ...

  7. java学习路线_java学习路线_我的入坑路

    java详细路线: 网上有很多学习路线,当初,我就是受这个学习路线的影响入坑的. 既然看到标题为我的java学习路,那就给大家看下我是怎么走过来的. 阶段一_JavaSE 入门推荐书:java开发实战 ...

  8. java 位运算_java学习之运算符与表达式(四)

    (6)位运算符 位运算是指对整数按二进制的位进行运算. 位运算用于整数或字符类型. 有7个:~(非).&(与).|(或).^(异或).<>(右移).>>>(无符号 ...

  9. java创建树结构_Java学习之XML-017

    如果想快速有效的学习,思想核心是"以建立知识体系为核心",具体方法是"守破离".反复练习直到熟练.----百战程序员 1.0 XML 1.1 XML 简介 XM ...

  10. java 学习笔记_java学习笔记

    刚学java  选择传智博客 分享的视频,以下做的备忘 1.Hello World class Demo { public static void main(String[] args) { Syst ...

最新文章

  1. 职称计算机word2007难吗,职称计算机word2007原题
  2. JMeter运行通过Chrome打开的website
  3. linux 脚本自动编制工具,全自动工具链编译脚本
  4. C#用户权限控制架构,可以控制到类【重发】
  5. leetcode算法题--仅仅反转字母
  6. Source Insight checking for modified files 卡顿(Reload externally modified files automatically取消)(未解决)
  7. 原型与原型链的简单理解
  8. Neo4j Java Rest绑定入门(Heroku部署)
  9. [Redux/Mobx] Redux由哪些组件构成?
  10. 英语作文谈谈你对计算机的看法,英语作文:谈谈你对网络语言的看法
  11. celery java_Python的Java Celery项目相当于什么?
  12. C++_结构体指针_嵌套结构体_结构体做为函数参数_结构体值传递和指针传递---C++语言工作笔记026
  13. 浅谈C# XML WebServer数据序列化及数据压缩
  14. Web前端开发如何提高技术水平!
  15. linux主从库配置文件,Linux系统中MongoDB安装及主从配置linux操作系统 -电脑资料
  16. linux-2.6.22.6 内核源代码包的文件目录介绍
  17. 计算机思维在化学上的应用,信息技术在化学教育中的应用
  18. 【华为浏览器如何安装扩展程序】
  19. 浅析大数据与人工智能
  20. 击破“坪效”天花板,从“3050法则”看餐饮数字化迁徙

热门文章

  1. Mac显示桌面的快捷方式
  2. DIY,PC采购,服务器介绍
  3. 七层代理与四层代理区别
  4. C/C++条件运算符你不知道的那些事
  5. octobercms 源码分析-1
  6. ip查看服务器信息,如何查看服务器的出口ip地址
  7. Django 中文本地化汉化方法
  8. UE4 本地化多语言
  9. oracle表分区设计_论oracle分区表的创建与维护
  10. 云服务优缺点_云服务器优点和缺点