博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
类类型
阅读量:4636 次
发布时间:2019-06-09

本文共 2002 字,大约阅读时间需要 6 分钟。

20145217 《Java程序设计》第3周学习总结(1)

教材学习内容总结

第三章中详细的介绍了基本类型,第四章对Java的另一个类型系统类类型做了详细的介绍。

4.1定义类和标准类

  • 定义类

书上有一句话和形象的说出了类与对象的关系,及“类是对象的设计图,对象是累的实例”。而定义类顾名思义,即使编程人员自己给出的对象类别。类使用时要用class关键词,具体使用方法如下实例:

886760-20160320142333709-1579997432.jpg
一个原始码中可以有多个定义类,但只有一个是公开的,即public class。
886760-20160320142847068-230802369.jpg
定义类中还可以定义构造函数,给出的例子中color的参数值指定给了这个对象的color成员。main中可以直接用Clothes2 sun = new Clothes2("red",'S');来建立对象。

  • 标准类

标准类即API提供的类,书中着重介绍了java.util.Scanner和java.math.BigDecimal。System.in.read()输入时数据为字符型,java.util.Scanner可以直接输入你想要的类型。

886760-20160320143944303-1787919865.jpg
调用时采用import语句,减少一下工作量。java.util.Scanner对应整型、浮点型、布尔型分别给出了nextShort()、nextInt()、nextDouble()、nextBoolean()等等
而java.math.BigDecimal则是弥补运算误差的,对应加减乘除有plus()、substract()、multiply()、divide()。
886760-20160320144443365-1040353884.jpg

基本类型打包器

基本类型打包类都归类于java.lang。doublevalue()用于以value前的类型返回值,compareTo()是用于两队相比较,相同返回0,小于返回-1,大于返回1.

886760-20160320145117490-1502483601.jpg
除了用new创建基本类型打包器外,Java提供自动装箱拆箱。而在其中实际上会使用Integer.valueOf等,以整型为例Integer.valueOf在-128到127之间的数据会直接对应缓存值,而在这之外的会新建。

4.3数组

声明数组在java同在c中十分相似,int[] scores={···},定义定长数组int[] scores=new int[10]。而区别主要在于打印方式,除了用循环语句一个一个输出外,还有用用增强式for循环语法:

886760-20160320153039287-373552657.jpg
多维数组同一维类似。
886760-20160320153253928-1760655045.jpg

4.4字符串

name.length长度,name.charAt(n)第n+1个字符,name.toUpperCase()转大写,Integer.praseInt(n)将n剖析为整型,name.toCharArray字符串返回为char[]数组。

886760-20160320153903381-552609207.jpg

  • 字符串特性

1.以“”包括的字符串只要内容相同,只会建立一个String实例。

2.不可变动,只要建立就不可变动了,而“+”采用的用Stringbuilder和appand建立新的字符串。但如果+两端都连接“”与“”包含这两部分没区别。
886760-20160320154423646-1403253877.jpg

4.5对象指定规则

1.java中的变量相当于标签,指示数据。int a=b等同于int a=10,b=10;且二者指示同一存储地点的同一数据,a==b为true。担当采用基本类型打包器时,当数据量在定义范围之外时a==b为False。当采用BigDecimal定义时也是false。原因是虽然数据量相同,但==表达的是位置一样及同一数据的含义。

2.同样数组和字符串也是这样的,基本类型中如果要复制一个数组时不能简单的a=b而要使用System.arraycopy()或者Array.copyOf()语句,或者一个一个复制,二者都要采用new语句。
886760-20160320161040599-508572252.jpg
但在定义类中:
浅层复制:使用System.arraycopy()或者Array.copyOf(),其实际上是复制参考。
886760-20160320160259662-968238126.jpg
深层复制:联通同一对象也进行复制。

教材学习中的问题和解决过程

教材这部分编排有点乱,我细细的整理了一下,其实依旧还是没有什么头绪,下手有点晚了,但是相信今后多练习一点会真正掌握起来。

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

教材中的深层拷贝我并没有实现,代码同作者一样编译程序也不报错,但运行不了,显示Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2

at cc.openhome.Deepcopy.main(Deepcopy.java:21)
附图一张,求大神帮助:
886760-20160320161534865-2008069089.jpg
上传代码到git,本周未对代码进行分类,下周一定改进。
886760-20160324100442620-623482183.jpg

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第三周 400/500 5/6 40/50

参考资料

转载于:https://www.cnblogs.com/jokebright/p/5298082.html

你可能感兴趣的文章
组织机构sql
查看>>
Girls' Day POJ 1677 模拟
查看>>
[BZOJ 3236] [Ahoi2013] 作业 && [BZOJ 3809] 【莫队(+分块)】
查看>>
image to pdf
查看>>
UIElementImageShot
查看>>
Selenium介绍
查看>>
HDU 6071 Lazy Running
查看>>
LINQ to JavaScript
查看>>
SqlServer 的IDENTITY_INSERT设置为OFF问题
查看>>
uploadify scriptData参数无法传参的问题
查看>>
15_采用Pull解析器解析和生成XML内容
查看>>
vim 正则非贪婪模式
查看>>
Solidworks如何将参考平面的图形投影到某曲面上
查看>>
python 类、模块、包的区别
查看>>
心理学资源整理
查看>>
第二章学习小结
查看>>
抽取网络信息进行数据挖掘 建立语料库
查看>>
搜集的一些有意思的牛人博客地址
查看>>
多表连接时USING和ON的区别,USING会去掉重复列,ON显示重复列。
查看>>
python移位操作困惑
查看>>