20145218 《Java程序设计》第三周学习总结

时间:2021-09-08 21:07:48

20145218 《Java程序设计》第三周学习总结

教材学习内容总结

定义类

编写程序要产生对象就要先定义类。类是对象的设计图,对象是类的实例。类定义时使用class关键词,建立实例时,要使用new关键词。
代码如下:
20145218 《Java程序设计》第三周学习总结

运行结果如下:
20145218 《Java程序设计》第三周学习总结

在Field.java中,存在公开的Field类(即存在public class Field语句),所以文档名称必须是Field,而当我保存文件起名为Clothes时,编译就会出现错误。

使用标准类

  • 两个标准类:java.util.Scanner和java.math.BigDecimal
  • java.util.Scanner
    之前编写的程序都是直接输出结果,没办法接受输入,C语言中只要有scanf便可接受用户输入,在java中,当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。先编写一个简单地判断奇偶数的程序。
    代码如下:
    20145218 《Java程序设计》第三周学习总结

运行结果如下:
20145218 《Java程序设计》第三周学习总结

  • java.math.BigDecimal
    0.1+0.1+0.1在Java的运算中并不等于0.3
    代码如下:
    20145218 《Java程序设计》第三周学习总结

运行结果如下:
20145218 《Java程序设计》第三周学习总结

这是因为Java遵守IEEE754浮点数运算,简而言之,在Java中编写程序进行浮点数运算多多少少会产生误差。而使用java.math.BigDecimal则可以产生更好的精度。
代码如下:
20145218 《Java程序设计》第三周学习总结

运行结果如下:
20145218 《Java程序设计》第三周学习总结

数组的基本学习

  • 数组打印:数组就像是一个有很多小隔间的容器,每个小隔间可以放入一个元素,例如在数组中存入六个数字,并打印出来
    代码如下:
    20145218 《Java程序设计》第三周学习总结

运行结果如下:
20145218 《Java程序设计》第三周学习总结

  • 数组排序:数组的常见使用方法就是获取最值和排序,其实二者差别不是很大,都是对数组内每一个小隔间的元素进行判断及重排序。排序要比获取最值复杂一点,排序的代码如下
    代码如下:
    20145218 《Java程序设计》第三周学习总结

运行结果如下:
20145218 《Java程序设计》第三周学习总结

图中排序方法为冒泡排序法。

操作数组对象

如果事先不知道数组中的元素值,只知道元素个数,则可以通过new关键词指定长度来建立数组(例如:int[] scores=new int[10];)。此时数组初始值均为0,若要改变初始值,则可使用java.util.Arrays的fill()方法来设定新建数组的元素值。
代码如下:
20145218 《Java程序设计》第三周学习总结

运行结果如下:
20145218 《Java程序设计》第三周学习总结

数组复制

数组复制的基本做法是另行建立新数组。但可以使用arrays.copyOf()方法。System.arraycopy()的五个参数分别是来源数组、来源起始索引、目的数组、目的起始索引、复制长度。
代码如下:
20145218 《Java程序设计》第三周学习总结

运行结果如下:
20145218 《Java程序设计》第三周学习总结

字符串对象

字符串是由字符组成的文字符号。在java中,字符串是java.lang.String实例,用来打包字符数组。例如:
String name="justin"; //建立String实例
System.out.println(name); //显示justin
System.out.println(name.length()); //显示长度为6
System.out.println(name.charAt(0)); //显示第一个字符j
System.out.println(name.toUpperCase()); //显示JUSTIN

  • 练习让用户输入整数,输入0后计算所有整数总和
    代码如下:
    20145218 《Java程序设计》第三周学习总结

运行结果如下:
20145218 《Java程序设计》第三周学习总结

封装

  • 封装可以理解为把方法封在类中,用打时候可以直接拿,就好比你要上学,类就是书包而方法就是书,要用方法打时候直接从书包中拿书就行。
    代码如下:
    20145218 《Java程序设计》第三周学习总结

类语法细节

  • public权限修饰
    public是个公开类,可以在其他包的类中使用。可以在构造函数上声明public,这表示其他包中的类可以直接调用这个构造函数。可以在方法上声明public,这表示其他包中的方法可以直接调用这个方法。
  • 关于构造函数
    函数名与类名相同,不用定义返回值类型,不可以写return语句。
  • 重载
    (1)重载的概念:在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。
    (2)重载的特点:与返回值类型无关,只看参数列表。
    (3)重载的好处:方便于阅读,优化了程序设计。
    方法重载代码如下:
    20145218 《Java程序设计》第三周学习总结

运行结果如下:
20145218 《Java程序设计》第三周学习总结

若想让上面的程序结果显示为“Integer被调用”则代码修改如下:
20145218 《Java程序设计》第三周学习总结

运行结果如下:
20145218 《Java程序设计》第三周学习总结

使用this

除了被声明为static的地方外,this关键字可以出现在类中任何地方。在构建函数参数与对象数据成员同名时,可用this加以区别。
代码如下:
20145218 《Java程序设计》第三周学习总结

运行结果如下:
20145218 《Java程序设计》第三周学习总结

static类成员

  • 被声明为static的成员,不会让个别对象拥有,而是属于类,是将类名称作为名称空间。
  • 由于static成员是属于类,而非个别对象,所以在static成员中使用this,会是一种语意上的错误。
  • 静态变量必须在初始化之前进行赋值,否则会报错。静态方法通常都是被经常使用的方法,不需要每次都重新实例化,提高工作效率。
    import static语法代码如下:
    20145218 《Java程序设计》第三周学习总结

运行结果如下:
20145218 《Java程序设计》第三周学习总结

不定长度自变量

  • 要使用不定长度自变量,声明参数列时要在类型关键字后加上...。

    内部类

  • 可以在类中再定义类。
  • 内部类也可以使用public、protected或private声明。例如:
    class Some{
    private class Other{

    }
    }

代码托管

代码托管可以更直观的反应我们所写的代码。
20145218 《Java程序设计》第三周学习总结

20145218 《Java程序设计》第三周学习总结

代码调试中的问题和解决过程

20145218 《Java程序设计》第三周学习总结

20145218 《Java程序设计》第三周学习总结

课本上的代码敲上去之后却运行不了,出现了上图中的错误。

感悟

与前两周轻松的学习不同,第三周的任务量与难度同时加大了,出现了很多以前从未接触过的名词及定义。但通过对第四章第五章的学习,我对java的认识更深了一层,原来没有自己想象中的那么简单,有的代码明明和书上的一模一样,到了自己的电脑上却无法运行,而且出现了问题也不知道怎么去解决,希望通过以后的学习可以慢慢提高自己的水平,遇到问题不再慌张,也试着自己去解决。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 1/3 18/40
第三周 400/1000 1/4 25/60

参考资料

20145218 《Java程序设计》第三周学习总结的更多相关文章

  1. Java程序设计第三周学习总结

    1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...

  2. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

  3. 对于&OpenCurlyDoubleQuote;2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈

    对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈 一:教学中存在的学习问题 “1.由于同学们平时练习不足,上课总是出现跟不上老师的节奏的现象. 2.个别同学上课不认真听讲,打开 ...

  4. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  5. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  6. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  7. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  8. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  9. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

  10. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

随机推荐

  1. Lind&period;DDD&period;ExpressionExtensions动态构建表达式树,实现对数据集的权限控制

    回到目录 Lind.DDD框架里提出了对数据集的控制,某些权限的用户为某些表添加某些数据集的权限,具体实现是在一张表中存储用户ID,表名,检索字段,检索值和检索操作符,然后用户登陆后,通过自己权限来构 ...

  2. python中函数接收多余参数

    代码: def fun(x): return x print fun(10) 函数fun(x)接受参数是x,传入数字"10",打印函数的返回值结果 就是10,如果我传递多个参数时, ...

  3. Intrusion Analysis Learning

    目录 . 入侵分析简介 . 基于日志的入侵分析技术 . 入侵分析CASE . 入侵分析CASE . 入侵分析CASE . 入侵分析CASE 1. 入侵分析简介 Windows 清除日志的方法 wmic ...

  4. Unity3D脚本中文系列教程&lpar;十四&rpar;

    http://dong2008hong.blog.163.com/blog/static/469688272014032134394/ WWWFrom 类Unity3D脚本中文系列教程(十三)辅助类. ...

  5. pragma指令简介

    整理日:2015年3月12日 资源来来自己网络 在编写程序的时候,我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作. 下面介绍了一下该指令的一些常用参数,希望对大家 ...

  6. Cracking the coding interview--Q2&period;4

    Write code to partition a linked list around a value x, such that all nodes less than xcome before a ...

  7. 复习一下sql server的inner join left join 和right join

    1.left join sql语句如下: select * from A left join B  on A.aID = B.bID 结果如下:aID               aNum       ...

  8. error LNK2001&colon; unresolved external symbol &lowbar;&lowbar;beginthreadex

    解决方法: project->settings->C++>category->code generation->Use runtime library选Debug Mul ...

  9. 解决:启用多线程调用webBrowsers函数报错:指定的转换无效

    这里就需要委托. 定义一个 委托.加载之后给他绑定一个方法Callback,也就是所说的回掉函数. 然后写一个线程,线程需要一个object 的参数.将你定义的委托当作参数传进线程中的方法. 在线程中 ...

  10. MongoDB知识点拾遗梳理

    MongoDB数据库安装: >apt-get install mongodb 0.MongoDB状态查看.启动.停止       >/etc/init.d/mongodb status或s ...