20155337 2016-2017-2 《Java程序设计》第3周学习总结
教材学习内容总结
第四章
类与对象
•定义:
•对象(Object):存在的具体实体,具有明确的状态和行为。
•类(Class):具有相同属性和行为的一组对象的集合,用于组合各个对象所共有操作和属性的一种机制。 -关系:
•从类看对象:类定义可视为具有类似性质与共同行为的对象的模板,用来产生对象。
•从对象看类:类的产生,是实例,推广到大量相似实例的抽象化过程。
•二者的关系:类是对象的设计图,对象是类的实例,生成对象要先定义类。
•特点:
•与c语言不同,在java中,需要的功能,就可以去找一个对象,这个对象就包含这个功能,通过new建立对象,通过“文件名+.+功能”调用一些该类的功能。
•在编译过程中,可以定义类。回忆第二章,一个原始码中可以有多个类定义,但只能有一个是公开类,且文档中的主文档名必须与公开类名称相同。
•可以使用标准类,类似于java.until.Scanner和java.math.BigDecimal,分别可以作为输入函数和高精度的计算函数其中BigDecimal中可以引用plus()、substract()、multiply()、divide()等。
•注意“”和“=”的区别。“”比较两个变量储存的值是否相同,也就是所绑的对象,对象类型。“=”是指将值赋给变量,比较的是内含值具体数值,相当于a.equals。
基本类型打包器
•概念:
在java中把一些基本类型变量打包成对象之中,这样就 可以像操作对象操作原本的“基本类型”的变量
•特点:
•重点要在于理解把固有的“面向过程”转换成“面向对象”,这样对象可以提供许多功能,简化我们的编程。
•在对于自动装箱、自动拆箱,可以简便的建立对象
•注意类似于Integer类型的有默认值,在编译的时候需要注意。
字符串对象
•概念:
在java中,字符串本质是打包字符数组的对象,是java.lang.String.
•特点:
•通过一些如Byte.parseByte(number)等方法将字符串转换为整数、浮点数等基本类型。
•在字符串池,以" "包括的字符串内容相同,无论在源代码中出现几次,JVM都只建立一个String实例,都在字符串池中维护。
•利用+连接字符串,会产生新的String实例。
•使用javac指令没有指定-encoding选项时候,会使用操作系统默认编码。
查询API文件
•方法:
•通过java官方网站;
•直接通过搜索引擎搜索对应的类,就会显示文件的说明了。
•还可以在windows下载CHM格式的javaAPI。
第五章
何谓封装
•概念:
分装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度,仅对外提供公共访问方式,隐藏对象细节,将对象当作黑箱进行操作。
•特点:
•自己可以定义类,创建属性,方法,如果其它需要用到相应的功能,只需要拿着“类设计图” 设计一个对象实例,,再根据公开提供的提供的方法,就可以使用相应的功能。
•封装对象类似于c语言中的模块化编程,在java中做到了一类一文件,而且在java中更灵活方便。
•可以像书中提到的,使用private对关键信息进行隐藏,设置访问数据的程度,防止用户恶意使用。
语法细节
•private:
•用在成员变量前,这是一种保护机制,不让自己这个类以外的方法去随便使用存取这个类的数据,可以保护私有数据,只能通过调用自己类的方法去操纵这些数据,这样会很安全。
•也可以用在方法或构造函数声明上,一般用在内部声明类中
•方法重载:
•根据自己的理解重载就好比是用相同的词表达多种不同的含义。
•只要参数类型和个数不同,就可以定义多个构造函数,可用一致的名称来调用类似功能的方法。
•与返回值无关,构造函数不一定关心它的返回值,可能只是想利用其中的某个功能。
•this与super:
•this关键字可以出现在类中的任何地方,在对象建立后为“这个对象”的参考名称。但是在被声明为static的地方不能这样使用。
•super一般用在父类中,指代父类对象的参考名称。
•final:
•用在类前,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰
•用在方法前,使用final方法的原因有两个:第一个原因是把方法锁定,以防任何继承类修改它的含义;第二个原因是效率。
•用在成员变量前,修饰变量是final用得最多的地方
•static:所有对象公有的
•static用于修饰成员变量和成员函数
•访问惯例:类名.static成员
•注意:由于static成员是属于类,而非个别对象,所以在static成员中使用this,会是一种语意上的错误。
•import static
与import一样,这样做是为了偷懒,但要注意名称冲突的问题。
•变长参数
在调用方法时,如果自变量的个数事先无法决定,则可以在声明参数列时在关键字后加上...,实际上不定长度自变量是编译程序蜜糖。
教材学习中的问题和解决过程
在学习也只是简单的了解了他的概念,但是深层次却不太懂,后来看了视频以后就有所了了解,自己可以定义类,创建属性,方法,如果其它需要用到相应的功能,只需要拿着“类设计图” 设计一个对象实例,,再根据公开提供的提供的方法,就可以使用相应的功能。 封装对象类似于c语言中的模块化编程,在java中做到了一类一文件,而且在java中更灵活方便。就是隐藏对象细节,将对象做黑箱操作
在细节语法细节中,对于一些public、private、this与super等,在前四章的代码学习中都有用过,但是了解的却不是很详细,学完第五章后就很系统的了解了。但是对于final存在着知识欠缺,通过看java学习视频也学习到了很多 在使用final修饰类的时候,要注意谨慎选择,除非这个类真的在以后不会用来继承或者出于安全的考虑,尽量不要将类设计为final类于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。
代码调试中的问题和解决过程
在操作数组中对于二维数组的理解还不足,将其理解成一维数组每个元素在索引一个数组就方便了理解。
上周考试错题总结
上周考试中,比第一次考试有所进步,这与平时的认真复习有着很重要的关系,但还没有达到我期望中的要求,所以我应该继续认真复习,把不会的Java问题向会的同学问明白,在下次考试中做到更好!
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第三周 | 121/200 | 1/2 | 12/20 |