20142335郝昊第三周学习总结

20145335郝昊 《Java程序设计》第3周学习总结

教材学习内容总结

第四章

类与对象

  • 定义:

    1. 对象(Object):存在的具体实体,具有明确的状态和行为。

    2. 类(Class):具有相同属性和行为的一组对象的集合,用于组合各个对象所共有操作和属性的一种机制。 -关系:

    3. 从类看对象:类定义可视为具有类似性质与共同行为的对象的模板,用来产生对象。

    4. 从对象看类:类的产生,是实例,推广到大量相似实例的抽象化过程。  

    5. 二者的关系:类是对象的设计图,对象是类的实例,生成对象要先定义类。

  • 特点:

    1. 与c语言不同,在java中,需要的功能,就可以去找一个对象,这个对象就包含这个功能,通过new建立对象,通过“文件名+.+功能”调用一些该类的功能。
    2. 在编译过程中,可以定义类。回忆第二章,一个原始码中可以有多个类定义,但只能有一个是公开类,且文档中的主文档名必须与公开类名称相同。
    3. 可以使用标准类,类似于java.until.Scannerjava.math.BigDecimal,分别可以作为输入函数和高精度的计算函数其中BigDecimal中可以引用plus()substract()multiply()divide()等。
    4. 注意“==”和“=”的区别。“==”比较两个变量储存的值是否相同,也就是所绑的对象,对象类型。“=”是指将值赋给变量,比较的是内含值具体数值,相当于a.equals。

数组对象

  • 概念:

          数组在java语言中就是对象。

  • 特点:

    1. 在定义数组时候不论知不知道数组长度都可以进行。如果知道具体数可以采用p95,不知道具体的数可以采用p98。
    2. 因为数组是对象,需要注意性质,对于数组本身来说,不能超过其索引范围,否则会报错。
    3. 对于二维数组的本质,实在数组的基础对于每个元素,再建立一个数组,就像矩阵一样
    4. 对于数组复制的相关有两种方法,采用System.arraycopy()Arrays.copyOf()
    5. 上一条就是简单的浅层复制,而对于深层复制,则需要自己操作,需要自己自行完成复制元素。

基本类型打包器

  • 概念:

          在java中把一些基本类型变量打包成对象之中,这样就 可以像操作对象操作原本的“基本类型”的变量

  • 特点:

    1. 重点要在于理解把固有的“面向过程”转换成“面向对象”,这样对象可以提供许多功能,简化我们的编程。
    2. 在对于自动装箱、自动拆箱,可以简便的建立对象
    3. 注意类似于Integer类型的有默认值,在编译的时候需要注意。

字符串对象

  • 概念:

           在java中,字符串本质是打包字符数组的对象,是java.lang.String.

  • 特点:

    1. 通过一些如Byte.parseByte(number)等方法将字符串转换为整数、浮点数等基本类型。
    2. 在字符串池,以" "包括的字符串内容相同,无论在源代码中出现几次,JVM都只建立一个String实例,都在字符串池中维护。
    3. 利用+连接字符串,会产生新的String实例。
    4. 使用javac指令没有指定-encoding选项时候,会使用操作系统默认编码。

查询API文件

  • 方法:

    1. 通过java官方网站;
    2. 直接通过搜索引擎搜索对应的类,就会显示文件的说明了。
    3. 还可以在windows下载CHM格式的javaAPI。

第五章

何谓封装

  • 概念:

           分装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度,仅对外提供公共访问方式,隐藏对象细节,将对象当作黑箱进行操作。

  • 特点:

    1. 自己可以定义类,创建属性,方法,如果其它需要用到相应的功能,只需要拿着“类设计图” 设计一个对象实例,,再根据公开提供的提供的方法,就可以使用相应的功能。
    2. 封装对象类似于c语言中的模块化编程,在java中做到了一类一文件,而且在java中更灵活方便。
    3. 可以像书中提到的,使用private对关键信息进行隐藏,设置访问数据的程度,防止用户恶意使用。

语法细节

  • public:

    1. 用在类前,表示的这个类是公开类,这样就可以在其他包的类中使用。
    2. 用在方法前,这样就表示其它包中的方法可以直接调用这个方法。这里需要注意的是,如果类上没有声明public关键字,类中的方法就算是public,也等于是包权限了,因为类本身是包权限,其它包就根本无法使用类,更别说当中定义的方法。
    3. 用在函数前,这表示其它包中的类可以直接调用这个构造函数。
    4. 用在成员变量前,表示这个成员变量是公开的,这样别人可以直接调取你类中的变量。
  • private:

    1. 用在成员变量前,这是一种保护机制,不让自己这个类以外的方法去随便使用存取这个类的数据,可以保护私有数据,只能通过调用自己类的方法去操纵这些数据,这样会很安全。
    2. 也可以用在方法或构造函数声明上,一般用在内部声明类中
  • 方法重载:

    1. 根据自己的理解重载就好比是用相同的词表达多种不同的含义。
    2. 只要参数类型和个数不同,就可以定义多个构造函数,可用一致的名称来调用类似功能的方法。
    3. 与返回值无关,构造函数不一定关心它的返回值,可能只是想利用其中的某个功能。
  • this与super:

    1. this关键字可以出现在类中的任何地方,在对象建立后为“这个对象”的参考名称。但是在被声明为static的地方不能这样使用。
    2. super一般用在父类中,指代父类对象的参考名称。
  • final:

    1. 用在类前,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰
    2. 用在方法前,使用final方法的原因有两个:第一个原因是把方法锁定,以防任何继承类修改它的含义;第二个原因是效率。
    3. 用在成员变量前,修饰变量是final用得最多的地方
    4. 注意:

      1. 在使用final修饰类的时候,要注意谨慎选择,除非这个类真的在以后不会用来继承或者出于安全的考虑,尽量不要将类设计为final类。
      2. 因此,如果只有在想明确禁止 该方法在子类中被覆盖的情况下才将方法设置为final的。注:类的private方法会隐式地被指定为final方法。
      3. 对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。
  • static:所有对象公有的

    1. static用于修饰成员变量和成员函数
    2. 访问惯例:类名.static成员
    3. 注意:由于static成员是属于类,而非个别对象,所以在static成员中使用this,会是一种语意上的错误。
  • import static

    import一样,这样做是为了偷懒,但要注意名称冲突的问题。

  • 变长参数

    在调用方法时,如果自变量的个数事先无法决定,则可以在声明参数列时在关键字后加上...,实际上不定长度自变量是编译程序蜜糖。

  • 内部类

    可以在内中再定义类,内部类亦可以使用public、protected、private声明一个被声明为static的内部类通常是将外部类当作名称空间。

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

第四章

在学习第四章的时候首先对于最开始的类与对象的关系有着很大的漏洞,因为如果搞不清楚这两者,在对于第四章第五章学习的会非常困难,后来看了老师的学习指导后发现要把握住java语言是面向对象。当这样后就了解了许多,大概也就了解color=this.color等。

后来不太了解对于java基本的打包的意义不太理解,后来发现,我们目前所编译的只是一些简单的程序,不存在很大的问题,对于是否打包没有很大的作用,但是如果用java语言去创造一个软件的时候,就需要用到打包等知识,这样很方=方便程序员对程序的修改和设计。

还有对于本章出现的增强式for语法,在开始看书的时候不太了解,后来用eclipse编译了几遍后了解了一些,后来发现好像记住增强式for语法似乎容易一些。

还有本章的一个问题,如何判断建立了几个Iteger实例,还是很分不清楚,后来采用书上的方法,对于不懂得程序,采用画图法,这样很清楚就判断出结果。

第五章

在学习也只是简单的了解了他的概念,但是深层次却不太懂,后来看了视频以后就有所了了解,自己可以定义类,创建属性,方法,如果其它需要用到相应的功能,只需要拿着“类设计图” 设计一个对象实例,,再根据公开提供的提供的方法,就可以使用相应的功能。 封装对象类似于c语言中的模块化编程,在java中做到了一类一文件,而且在java中更灵活方便。就是隐藏对象细节,将对象做黑箱操作

在细节语法细节中,对于一些public、private、thissuper等,在前四章的代码学习中都有用过,但是了解的却不是很详细,学完第五章后就很系统的了解了。但是对于final存在着知识欠缺,通过看java学习视频也学习到了很多 在使用final修饰类的时候,要注意谨慎选择,除非这个类真的在以后不会用来继承或者出于安全的考虑,尽量不要将类设计为final类于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。

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

其中在于操作数组中对于二维数组的理解还欠缺一些,后来将其理解成一维数组每个元素在索引一个数组就方便了理解。

同样在第五章有个知识点,在创建对象之后、调用函数之前,若有想执行的流程,可以使用{}定义。

剩下的所有代码也全部敲了一遍,有了全新的认识,已经全部传到了开源中国,代码托管里了。

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

其实感觉这周的学习量挺大的,要自学两个章节,而且都是比较陌生抽象难懂的知识,接受起来比较慢。

从最开始的java平台概论,JDK到IDE的介绍,基础语法的运用到现在的类与对象,封装。前三章的知识其实都不是特别难。但到第四章就感觉逐渐接触java程序设计的核心知识了。在经过不断的重复后,我对这两章的知识点已经掌握了,把书上所有的代码都敲了一遍,世上无难事,是怕有心人。任何事情,万事开头难,但只要坚持下来了,一定会受益匪浅!!比如托管代码,最开始觉得很难,学会了后就会很轻松。

学习第四章第五章,最重要的是要有能将抽象问题具体化的能力,将其建立成一个模型,这样才能方便理解。

 

在写博客方面也在娄老师上周的指导下,这周写完博客认真的修改了一遍,希望还可以有提高。

学习进度条

 

 

代码行数(新增/累积)

博客量(新增/累积)

学习时间(新增/累积)

重要成长

目标

3500行

28篇

300小时

 

 第一周

200/200

1/1

10/10

 

 第二周

 300/500

 1/2

 20/30

 

 第三周

 300/800

 1/3

 20/50

 

 第四周

 

 

 

 

 第五周

 

 

 

 

 

 

 

 

参考资料

  • Java学习笔记(第8版)
  • 《Java学习笔记(第8版)》学习指导
  • ...

转载于:https://www.cnblogs.com/20145335hh/p/5298955.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/288572.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python面向对象编程基础

#codingutf-8class hello:def __init__(self,NAME):self.nameNAMEdef sayhello(self):print("Hello, {0}".format(self.name)) #拼接字符串,也可以用print("Hello "self.name)#类的继承 class hi(hello): #父类用括号括起来def sayhi(self):pr…

书生云王东临:真正的超融合产品要像“机器猫” 开箱即用

“经过6年的发展,我们已经为技术找到了非常好的落地产品,可以突出我们的优势,现在到了我们大展宏图的时候了。”20年前书生集团从电子公文业务起家,后来经营过电子书网站, 6年前开始进入云存储领域,在存储技…

NetBeans安装提示neatbeans cannot find java 1.8 or higher

1 问题 安装NetBeans的时候,点击bin目录下的netbeans64.exe,然后提示错误 neatbeans cannot find java 1.8 or higher 然后我在终端输入java -version是1.8 C:\Users\User>java -version java version "1.8.0_65" Java(TM) SE Runtime Environment …

hierarchyviewer

为什么80%的码农都做不了架构师?>>> 学习monkeyrunner,无奈怎么都无法启动activity,人家告诉我.hierarchyviewer这个工具可以,今天我就开始学习这个了,但愿有所帮助啊。http://www.xuebuyuan.com/2104811.…

ALTER 简单操作(mysql)

ALTER 语句 ALTER 语句用于在已有的表中添加、修改或删除。 删除列: ALTER TABLE 表名字 DROP 列名称 例如:删除test111表中的age列 ALTER TABLE test1111 DROP age 添加列:添加到test1111表列,名为age,约束为not null 注释…

什么时候应该使用 LazyT ?

咨询区 danyolgiax最近我在看关于 Lazy<T> 的资料&#xff0c;链接&#xff1a;https://sankarsan.wordpress.com/2009/10/04/laziness-in-c-4-0-lazyt &#xff0c; 看是看完了&#xff0c;但我始终想不明白它的应用场景有哪些&#xff1f;回答区 Matthew如果你在项目中…

DOS实用命令集合

1、进入目录 &#xff08;1&#xff09;进入C盘的Users文件夹&#xff1a;cd c:\Users &#xff08;2&#xff09;后退&#xff1a;cd .. &#xff08;3&#xff09;进入D盘&#xff1a;D&#xff1a; 2、获取特定格式的文件名列表 &#xff08;1&#xff09;文本文件&…

【转】linux之fsck命令

转自&#xff1a;http://www.linuxso.com/command/fsck.html 使用权限 : 超级使用者    使用方式 : fsck [-sACVRP] [-t fstype] [--] [fsck-options] filesys [...]    说明 &#xff1a; 在Linux系统中&#xff0c;为了增加系统性能&#xff0c;通常系统默认一些数据…

linux之如何查看哪些进程在使用某一个so

1 问题 在我们服务端&#xff0c;我们怎么查看哪些进程在使用某一个so 2 解决办法 lsof **.so 很明显&#xff0c;我们的apache的httpd几个进程在使用这个so

Razor与HTML混合输出陷阱与技巧

3,Razor与HTML混合输出陷阱与技巧 属性名称误判有时候我们必须让html内容与razor语句紧接在一起&#xff0c;eg: 您好&#xff0c;a先生假设变量名称为ViewBag.Name&#xff0c;您好&#xff0c;ViewBag.Name 先生 //这样输出就只有”您好&#xff0c;”&#xff0c;后面的Na…

“威胁情报”在手,反黑客终于有地图了!

安全是一场攻防战&#xff0c;那么&#xff0c;如今这样的攻防战发展到了什么level了呢&#xff1f;日前&#xff0c;安全领域的大神们进行了一场闭门研讨 。大神们表示&#xff0c;如今要想保证自己的安全&#xff0c;你不仅需要武器&#xff0c;还需要侦察兵&#xff0c;需要…

winform插入时间类型数据到oracle数据库,winform操作访问Oracle 10g数据库,并自动填充到DataGridView...

使用oracle的ODP.NET是官方推荐&#xff0c;而且相对简单的方法。官方指导文档&#xff1a;http://www.oracle.com/technetwork/cn/testcontent/o23odp-084525-zhs.htmlapp.configForm1.aspx.csusing System;using System.Collections.Generic;using System.ComponentModel;usi…

print的describe的展示全部数据_大数据项目中的QA需要迎接新的挑战

根据IDC全球半年度大数据和分析支出指南的最新预测&#xff0c;到2022年全球大数据和业务分析解决方案的收入将达到2600亿美元。在大数据和业务分析解决方案上投资增长最快的行业包括银行&#xff08;复合年增长率13.3%&#xff09;、医疗、保险、证券和投资服务、电信&#xf…

Enum枚举类型实战总结,保证有用!

一般在我们开发时如果能使用枚举罗列的&#xff0c;一般都会定义一个枚举类型。将枚举类型作为方法的参数&#xff0c;可以方便的进行调用&#xff0c;给我们带来不少的便利&#xff0c;当然有时候它还不如直接用一个int类型带来&#xff0c;带来一定灵活性。但只要能满足业务咱…

C/C++笔试面试题目(2021最新版)

1、main函数执行完毕后,是否可能会再执行一段代码? 答案:可以,可用_onexit 注册一个函数,它会在main()函数之后执行。 2、一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态? 在子类的空间里,有没有父类的这个函数,或者父类的私有变量?…

sql 子查询(mysql)

子查询&#xff1a;一个查询嵌套在另一个查询当中&#xff1b;又叫内部查询。 子查询 可以分为&#xff1a; 单行单列&#xff08;就是一个值&#xff09; 单行多列&#xff08;就是有一行&#xff0c;这一行有很多不同列数据&#xff09; 多行单列&#xff08;同一列不同的…

学习笔记-第四周-心得体会

第五章《控制电动机》预习 步进电机的原理在课堂上已经进行了初步介绍。实际中在低端应用上步进电机使用较多&#xff0c;可能是出于原理简单&#xff0c;控制方便等原因&#xff0c;带来的问题可能是精度较差&#xff0c;不适宜用于精密控制。除去常见的伺服电机和步进电机&am…

linux c之通过popen执行shell命令

1 popen介绍 我是在ubuntu上面进行man popen的,解释如下 这个函数通过创建一个管道通过fork一个进程,然后执行一个command,因为在管道中,所以数据流是单向的,然后type一般只能是读“r”或者写“w”,返回值在IO流里面,用了popen之后我们要记得用pclose函数。 2 使用 #inc…

python socket之udp说明

UDP方式UDP 号称无连接传输&#xff0c;全然没有TCP那么复杂&#xff0c;三次握手&#xff0c;错误重传之类的机制都没有&#xff0c;发的只管发&#xff0c;收得只管收&#xff0c;收到没有&#xff1f;不知道&#xff0c;顺序不对怎么办&#xff1f;不管&#xff01;就是 这样…

oracle内外链接混合用,混合在一起通过连接,内部连接和总结与Oracle

这里是我的设置&#xff1a;我有2个表分别被称为“任务”和“时间表” “任务”表是递归的&#xff0c;这样每个任务可以有多个子任务。每个时间表都与一个任务相关联(不一定是“根”任务)&#xff0c;并包含在其上工作的小时数。实施例&#xff1a;任务ID&#xff1a;1 |名称&…