zoukankan      html  css  js  c++  java
  • 类类型

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

    教材学习内容总结

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

    4.1定义类和标准类

    • 定义类

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

    一个原始码中可以有多个定义类,但只有一个是公开的,即public class。

    定义类中还可以定义构造函数,给出的例子中color的参数值指定给了这个对象的color成员。main中可以直接用Clothes2 sun = new Clothes2("red",'S');来建立对象。

    • 标准类

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

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

    基本类型打包器

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

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

    4.3数组

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

    多维数组同一维类似。

    4.4字符串

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

    • 字符串特性

    1.以“”包括的字符串只要内容相同,只会建立一个String实例。
    2.不可变动,只要建立就不可变动了,而“+”采用的用Stringbuilder和appand建立新的字符串。但如果+两端都连接“”与“”包含这两部分没区别。

    4.5对象指定规则

    1.java中的变量相当于标签,指示数据。int a=b等同于int a=10,b=10;且二者指示同一存储地点的同一数据,ab为true。担当采用基本类型打包器时,当数据量在定义范围之外时ab为False。当采用BigDecimal定义时也是false。原因是虽然数据量相同,但==表达的是位置一样及同一数据的含义。
    2.同样数组和字符串也是这样的,基本类型中如果要复制一个数组时不能简单的a=b而要使用System.arraycopy()或者Array.copyOf()语句,或者一个一个复制,二者都要采用new语句。

    但在定义类中:
    浅层复制:使用System.arraycopy()或者Array.copyOf(),其实际上是复制参考。

    深层复制:联通同一对象也进行复制。

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

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

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

    教材中的深层拷贝我并没有实现,代码同作者一样编译程序也不报错,但运行不了,显示Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
    at cc.openhome.Deepcopy.main(Deepcopy.java:21)
    附图一张,求大神帮助:

    上传代码到git,本周未对代码进行分类,下周一定改进。

    学习进度条

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

    参考资料

  • 相关阅读:
    数据(或分布)的对称、偏倚
    【python】 与日志logging相关文章推荐
    实体类和json串的转换
    欧几里德算法----最大公约数算法
    java IdentityHashMap 与HashMap
    android gradle依赖:implementation 和compile的区别
    jmeter进行文件下载的性能测试
    Asp.Net Core MVC 框架 实现钉钉扫码登入
    前端静态资源库
    28个漂亮的React.js后台管理模板
  • 原文地址:https://www.cnblogs.com/jokebright/p/5298082.html
Copyright © 2011-2022 走看看