zoukankan      html  css  js  c++  java
  • 20145319 第三周学习总结

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

    教材学习内容总结

    本周学习教材第四、五章,这两章主要讲述了java语言中“对象”的相关知识,认识对象以及对象封装。

    1. 类与对象

    1. 定义:对象是java语言中极为重要的一环,在使用java编写程序时基本离不开对象,而java中有基本类型和类类型两种类型系统,在使用对象前就需先定义类(Class),类是对象的设计图,对象是类的实例
    2. 使用事项:

    1对象的一些使用和c语言中的指针极为相似,例如Clothes c1 = new Clothes();,其中c1是在栈内存中产生,而对象c1则是产生在堆内存中,c1可以近似看成指向堆内存中的指针。

    2一些系统的标准类可以直接使用,如java.util.Scanner,java.math.BigDecimal。

    3对象中的相等即类类型中"=="和基本类型中"=="在本质上也有着一定区别,"=="用于基本类型时,判断两个变量存储的值是否相等,"=="用于类类型时,是判断两个参考名是否表示同一对象,如要判断对象a、b的内含值是否相等,就要使用a.equals(b)

    2. 基本类型包装

    1. 用途:让java中基本类型可以像对象一般操作
    • int-Integer
    • long-Long
    • byte-Byte
    • float-Float
    • double-Double
    • boolean-Boolean

    3. 数组对象

    1. 与c语言不同,在java中数组就是对象,需按照对象的基本性质来使用数组
    2. 数组存储数目不能超过其索引范围,否则会报错:ArrayIndexOutOfBoundsException(在编译时,系统并不会提示错误,但是运行时会发生错误)
    3. java中与c语言有些许区别,c语言中int abc[10]代表为可以存储十个数的空数组,然而java中int[] abc=new int[10],却是一个十个数均为0的数组,并非空数组,如果不能清除分辨两者在程序中可能会出错(之后会用程序详细展示)
    4. 数组的复制,可以用System.arraycopy()与Arrays.copyof(),可以通过这些类快速复制一个数组,不过在调用时要注意括号中参变量的含义,类型内容都要一致。

    4. 字符串对象

    1. 定义:在java中,字符串本质是打包字符数组的对象,是java.lang.String类的实例
    2. 操作方法:
    • length():取得字符串长度
    • charAt():指定取得字符串中某个字符
    • toUpperCase():将小写字符串内容转换成大写字符串内容
    • Byte.parseByte(number):将字符串转换成byte整数类型
    • Integer.parseInt(number):将字符串转换成int整数类型
    • Xxx.parseXxx(number):将字符串转换成long、short等相应类型

                       ……

         3.  字符串池:如果将一串字符指定给2个字符串变量,则这2个字符串变量会参考到同一对象。只要""中字符串内容相同,无论在程序代码中出现多少次,JVM都只会建立一个             String实例,并在字符串池中维护。

         4.  不可变动字符串:在Java中,字符串对象一旦建立,就无法更改对象中的任何内容,对象上没有任何一个方法可以更改字符串内容。使用+字符可以达到这样的效果,不过             根据反编译的过程,可以发现,实际上是产生了新的字符串对象。而大量的产生新对象又是不希望看到的,所以我们可以用StringBuilder来改善,它的特点在于每次调用完           后都会返回原有的StringBuilder对象,这样可以避免产生多个对象。

    5. 查询Java API文件

    1. 打开java官方网站:http://www.oracle.com/technetwork/java/
    2. 知道类的完全吻合名称以及想查询的版本,就可以在搜索引擎中直接进行查询,单击即可看到说明
    3. 在Windows下可以下载CHM格式的Java API

    6. 封装

    1. 封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度,隐藏对象细节,将对象当作黑箱进行操作,可将函数、流程、值都封装在类中,即可直接调用

    7. 类语法细节

    1. public:用在类、函数、方法、对象数据成员之前,用在类前,表示其是公开类,可以在其他包的类中调用。用在函数前,表示其他包的类可以直接调用此函数,用于方法前,表示其他包的方法中可以调用这个方法

    2. this:可出现在类的任何地方,在构造函数参数与对象数据成员同名时,可以用this加以区别,在java中,this()也代表了调用另一个构造函数。注意:this()调用只能出现在构造函数的第一行

    3. static:可用在类、方法、对象数据成员之前。声明为static的成员,不会让个别对象拥有,而是属于类。 在static方法中不能出现this关键字,static方法中不能用非static数据或方法成员。 import static语法是为了偷懒,但要注意名称冲突的问题。

    4. final:可用在类、方法、对象数据成员之前,final int x=10;即x为10,不可改动。final int x;即表示在之后一定要对x赋值,否则会出现编译错误

     

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

    • 在一开始时候学到对象可以封存函数,方法,流程之类的并不是很能理解,后来对照书上自己敲了代码并且运行之后才有初步的了解,感觉比较类似于c语言中的函数调用,只是java中除了构造函数也可在定义class类时候做到一样的效果。

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

    课后作业题3(进阶版 冒泡法)

    1. 代码:

         

         2.  运行结果:

    这里因为c语言习惯性思维,认为int[]maopao=new int[5319];即定义出一个可以存储5319个数的空数组,其实是定义了一个含5319个0的数组,所以在输出结果时,for(int jieguo:maopao)因为数组输出结果太多,从而导致了结不能正常输出结果。

           3.  修改代码:

         

           4.  运行结果:

    修改过后程序就可正常输出结果

    cashcard(对象)


          1.  代码:


          2.   运行结果:

    代码托管截图

    其他(感悟、思考等,可选)

    • 虽然java可以类比着c语言来学习,但是很多地方还是会有些许出入,例如这次在学习数组时候就过于想当然而犯了错误,在之后学习中还是要多落于实践,细节处也要多敲代码验证自己的猜想,体会java和c语言之间的区别才行。

    学习进度条

    代码行数(新增/累积)

    博客量(新增/累积)

    学习时间(新增/累积)

    重要成长

    目标

    3500行

    28篇

    300小时

    第一周

    150/150

    1/1

    20/20

    第二周

    200/350

    1/2

    20/40

    第三周

    300/650

    1/3

    20/60

    第四周

     

    参考资料

  • 相关阅读:
    Spring基础知识点总结
    秒懂设计模式--代理模式(proxy)
    秒懂设计模式--工厂模式
    秒懂设计模式--适配器模式
    秒懂设计模式--装饰者模式
    秒懂设计模式--观察者模式
    单例模式的几种实现
    springboot2.0+spring cloud+eureka搭建微服务步骤
    字符串排序算法
    bitbucket的简单使用
  • 原文地址:https://www.cnblogs.com/20145319zk/p/5297611.html
Copyright © 2011-2022 走看看