从最开始的输入输出操作,解决基本问题,解决一个一个大作业,到java面向对象程序设计的结课。其中,在课堂上学到的只是一些皮毛,真正要解决好一个问题,多的还是靠自己的深入学习,将课堂上学到的知识拓展深入,举一反三。

在之前的几次作业中,面向对象的编程思想不是很突出,多的是熟悉java的编程语言,例如java的代码书写格式,正常的输入输出,这时的操作方式和C语言除了格式不同,区别不是很明显,之后开始书写特定方法函数,到最后的分类操作,以及多态,接口,继承等等,此时java面向对象的编程思想逐步显现。

对面向对象编程思想的认识。面向对象区别于面向过程,面向过程是指从解决一个问题的过程出发,一步一步的调用函数去解决问题,而面向对象将功能需求,将代码装在一个个类中,通过建立特定对象从而通过对象的方法,完善一个个类来解决问题,将代码模块化,方便查看,修改,复用和拓展。

面向对象编程的三大特性:封装,继承,多态。

封装:把抽象的数据和对数据进行的操作封装在一起,数据被保存在内部,程序的其他部分只有通过被授权的操作(成员方法)才能对数据进行操作。属性的公有化public和私有化private,public等属于封装。封装所带来的好处是:明确的指出了那些属性和方法是外部可以访问的。这样当你需要调整这个类的代码时,只要保证公有属性不变,公有方法的参数和返回值类型不变,那么你就可以尽情的修改这个类,而不会影响到程序的其他部分,或者是使用到这个类的其他程序。封装是最早接触的一大特性,从开始分类时,属性方法的公有私有就已经体现这一大特性,public可直接访问,private不可直接访问,而是通过特有的getter,setter方法来访问private属性。

继承:一个类如果继承现有的类,则这个类将拥有被继承类的所有非私有特性,定义父类子类,子类继承父类,子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。从而增加了功能,同时减少相同代码的书写,将子类对象作为父类对象来使用。

多态:多态以继承为基础,通过方法重载实现,调用同一个方法,不同的对象造成不同的功能。

面向对象编程的原则:开闭原则,单一职责原则,里氏替换原则,迪米特法则,依赖倒置原则, 接口隔离原则,合成/聚合原则。

单一职责接触最多,也容易理解,即一个类做只一件事,这样可以减小代码耦合度,使得每部分代码相互独立,互不影响。例如每次作业对输入数据的判断,都是通过一个validata类来进行判断,或者每次对数据的处理通过一个类来操作。

开闭原则:对拓展开,对修改闭,尽量减少代码的修改,提高拓展性。

......

正则表达式,在字符串格式匹配上十分重要。之前的水文判断,表达式求导,表达式计算等都使用到了正则表达式。不过,正是经过多次的使用,对一些较为基本的字符串格式更加熟悉。能做到通过正则实现自己想要判断的某一个字符串。

循环遍历方式。由最初for(int i =0 ; .....)的基本操作,到for(String a:s)的循环方式,使得循环内部的使用更加方便,并且也降低了代码的复杂繁琐度。a作为字符串数组的遍历字符串,在内部可以直接用a作为当前字符串,不用写成a[i],并且写i++等繁琐操作。

排序方式。从最开始的自写选择,冒泡等排序方法变成通过修改Java中自带的sort方法的排序条件,满足对数据的排序。不过此操作没有大范围的使用过,所以还较不熟悉。

各个类型数据的相互转换,以及数据精度处理。

Int ,double等数据可以通过强制类型转换或乘以1.0等操作实现。

Integer和String类型的转换通过Integer.valueof()实现。

大型数据计算后可能会丧失精度,所以可以在结果前加上强制类型转换处理,或同过import java.math.BigDecimal此类来返回精确结果。

通过java课程和作业,还学到了各个自带类的方法。例如math类,String类,StringBuilder类,和List,ArrayList等,使得Java代码的书写方便了许多,许多方法其本身就携带了,只需要我们选择性调用就好了。学习面向对象的编程,主要是学习编程思想,而不是注重于如何写解决问题的代码。通过java课程的学习,在解决问题的途中,自己能感受出写的代码是否依旧属于面向过程,或者写的代码是否遵循基本原则如单一职责等。

总之,通过此课程的学习,提高了自学能力。并且,在学习过程中要大胆尝试,多应用,多尝试,才能有所感触。

java课程心得_Java课程感想相关推荐

  1. java实现聊天功能心得_Java课程设计总结 - 在线聊天室(个人)

    一.团队博客及项目地址 二.本人负责的部分 整个系统的框架设计,流程设计. MySQL数据库设计及使用. 服务端面向对象设计,代码编写. 云服务器环境搭建及使用. 黄色框为我负责的部分 三.提交记录 ...

  2. java 密码生成器_Java课程设计-随机密码生成器

    1.团队课程设计博客链接 2.个人负责模板 设计程序运行界面,数据的输入,判断数据输入类型的错误,判断密码类型是否选择. 3.自己的代码提交记录截图 4自己负责模块或任务详细说明 (一)总体设计 1. ...

  3. java的课程总结_Java课程总结

    0.前言 本次博客主要针对整个学期的Java过程中遇到的一些问题.在这个学期的学习中获得的感受,对Java课程的个人理解和自己的一些理解和体会 1.作业过程总结 ①总结三个阶段作业之间的知识迭代关系: ...

  4. java五子棋课程设计_JAVA课程设计+五子棋游戏

    1. 团队课程设计博客链接 2. 个人负责模块或任务说明 1.在同伴构建好初始框图的情况下,编写一个继承JPanel类,实现添加控件. 2.编写paintComponent类,实现绘画棋盘还有棋子. ...

  5. java设计五子棋_JAVA课程设计(五子棋)--个人博客

    JAVA课程设计(五子棋)--个人博客(李金妲) 1.题目及我负责的内容 1.1题目:五子棋 1.2负责内容:游戏界面的GUI设计.背景音乐功能.趣味对战算法实现 2.本人负责的主要功能展示与代码截图 ...

  6. java程序课程总结_java课程总结

    课程总结 一个学期结束了,下面我对一些重点知识分三个模块做一个小的总结. 一.Java基础程序设计 1.java中源文件的扩展名为.java,之后通过编译是.java的文件生成一个.class文件. ...

  7. java课程总结_java课程总结报告.doc

    java课程总结报告 java课程总结报告该怎么写呢?下面是带带来的java课程总结报告,请参考! java课程总结报告[1] 刚开始学的时候,感觉这两门课程好高大上的样子,因为自从学软件工程这个专业 ...

  8. java程序课程总结_Java课程总结报告.pdf

    15/16 学年第二学期 <Java课程总结> 班级: 1420561 学号: 13 姓名:方一帆 第 1 章 Java 系统环境概述 一. Java 语言特点 1. 简单性 Java 语 ...

  9. java闹钟程序设计_JAVA课程设计_闹钟的设计与实现项目-报告_附源代码.doc

    JAVA课程设计_闹钟的设计与实现项目-报告_附源代码 第2章 MACROBUTTON AcceptAllChangesInDoc [双击此处键入1级标题] PAGE 2 - PAGE 1 - .. ...

  10. ATM柜员机JAVA课程设计_JAVA课程设计报告银行ATM机系统.doc

    JAVA课程设计报告银行ATM机系统 Java课程设计报告 题 目 银行ATM机系统 所在院系 软件学院 学生姓名 金磊 专 业 R机械+软件 班 级 R机械094 学 号 2011年 7 月 15日 ...

最新文章

  1. Ubuntu14.04 + Text-Detection-with-FRCN(CPU)
  2. linux 使用 cp 命令强制覆盖功能
  3. RS485光纤中继器有哪些优缺点?
  4. 教你Mac电脑复制手机粘贴的隐藏玩法
  5. Xshell代理访问外网或者公司的内网
  6. JAVA8的新特性之函数式接口
  7. 设备上的介质簇的结构不正确_环保设备选型参考系列——生化系统之潜水搅拌机【价格】...
  8. 思科首席技术官解析:统一计算及战略
  9. 计算机科学为什么重要,数学 – 为什么在计算机科学中有8和256个如此重要的数字?...
  10. 四阶龙格库塔法的基本思想_四阶龙格—库塔法的原理及其应用
  11. Linux中PLSQL视频,PLSQL使用视频教程:PLSQL的使用方法
  12. 达内 python培训视频教程
  13. 白话区块链:区块链对普通大众的影响及其未来
  14. servlet生成验证码和点击刷新验证码
  15. Solidworks 2015 安装教程
  16. Cisco AP-Regulatory Domain
  17. STM32L051低功耗STOP模式串口中断唤醒
  18. icon和文本垂直居中对齐
  19. java 打印 发票_基于Excel和Java自动化:发票生成器
  20. 我的梦想是当一个计算机英语,我的梦想英语作文(精选11篇)

热门文章

  1. 181112每日一句
  2. 181022词霸有道扇贝每日一句
  3. Atitit 通信技术概要 艾提拉著 目录 1. 通信系统原理(孔英会编著的图书)_百度百科.html 2 1.1. 第1章绪论1 2 1.2. 第2章信号分析基础25 2 1.3. 第3章信道5
  4. 程序实现对数据排序并按出现次数进行排序 程序实现对数据排序并按出现次数进行排序(注:用面向对象的方式实现,用for循环进行排序,别用comparable接口实现){1,4,2,1,3,2,1,4}作为
  5. Atitit json array to csv 目录 1. Lib 1 1.1. Apache csv lib 1 1.2. Org.json.jar cdl模式 1 2. other 1 2
  6. Atitit webshell选型 1. PHP Shell 2.4 1 1.1. 设置密码 4 2. 测试切换目录 4 2.1. 自己实现 5 1.PHP Shell 2.4 Please co
  7. Atitit.  Exception in thread main java.lang.Error: Unresolved compilation problem:
  8. paip.判断字符是否中文与以及判读是否是汉字uapi python java php
  9. paip.win32的internet扩展已停止工作解决大法
  10. 汉字乱码的终极解决方案