20165205 2017-2018-2 《Java程序设计》 第三周学习总结
20165205 2017-2018-2 《Java程序设计》第三周学习总结
教材学习内容总结
- 学习类的概念(类体,成员变量,方法)
- 学会构造方法(默认和自定义构造方法)
- 学会创建、使用对象(注意对象引用和实体)
- 学会同目录下的文件源文件一起使用的方法(同时编译)
- 学会参数传值
- 学会对象的组合与复用
- 学会区别实例变量和类便利
- 了解方法重载(注意不要出现歧义)
- 学会使用this关键字
- 学会使用包
- 学会import的用法(帮助包的使用)
- 了解访问权限
- 了解类封装,对象数组,JRE扩展与jar文件,文档生成器
学习重点
- 关键词:
class
:定义类new
:新建一个对象(实例)
- 只要有一个类定义,编译程序就会产生一个.class文档。
- 标准类的使用:java.util.Scanner`:在“命令提示符”模式下取得用户输入
- 使用
new
关键词指定长度建立数组
教材学习中的问题和解决过程
问题1:在刚学这一章的时候我完全搞不清楚(分不清)类,方法,对象的概念,之后我在知乎中找到一个我认为比较清楚的讲解,我把他的内容总结了一下:
问题1解决方法:
- 类=一个种类(class)的东西
- 对象=属于该种类(类)的一个对象/物品
- 方法=对这个种类的东西都可以进行操作
- 比如:我有一辆汽车public class car{...}
我把汽车命名为‘gu’
car myCar = new car("gu")
所有的汽车都可以加速(accelerate)和刹车(brake)
public class car
{
void accelerate() {...}
void brake(){...}
}
我可以指定我的汽车加速
myCar.accelearte();
我的朋友也有一辆汽车,也可以加速
car pCar = new car("p");
pCar.accelerate();
问题2:关于实例变量和类变量,实例方法和类方法的区别,我在一开始学的时候感觉似懂非懂,我还是借助了百度,学了一下,做了一点总结(大部分来自原文)。
问题2解决方法:
- 实例变量(无static):
1.实例变量声明在一个类中,但在方法、构造方法和语句块之外;
2.当一个对象被实例化之后,每个实例变量的值就跟着确定;
3.实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
4.实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方法获取实例变量信息;
5.实例变量具有默认值。数据型变量的默认值是0,布尔型变量的默认值是false,引用类型的默认值是null私有。。变量的值可以在声明时指定,也可以在构造方法中指定;
6.实例变量对于类中方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见;
7.实例变量可以直接通过变量名访问。但在静态方法以及其他类中,九应该使用完全限定名:
ObejectReference.VariableName
。
- 类变量(静态变量)
1.类变量在类中以static关键词声明,但必须在方法、构造方法和语句块之外。
2.无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。(我对这句话的理解是类变量只占一个内存,并且共享)。
3.静态变量除了被声明为常量外很少使用。常量是指声明为public、final和static类型的变量。常量初始化后不可改变。
4.静态变量储存在静态储存区。经常被声明为常量,很少单独使用static申明变量。
5.静态变量在程序开始时创建,在程序结束时销毁。
6.与实例变量具有相似的可见性。
- 实例方法与类方法对实例变量和类变量的访问
实例方法可以对当前对象的实例变量进行操作,也可以对类方法进行操作。实例方法由实例对象调用。
类方法不能访问实例变量,只能访问类变量。类方法由类名或者实例对象调用。类方法不能出现this或者super关键字。
- 问题3:普通方法和构造方法的区别是什么?
- 问题3解决办法:
与一般方法相比,构造方法的特点是:
1.构造方法的名称总和它的类名一致。2.构造函数没有返回值,即不可以为它指定任何类型的返回值。(学到这里我明白了为什么我之前改了对象名称没有改构造方法时报错:没有返回类型)。
3.在构造函数的第一条语句中,可以调用同类的另一个构造函数或者父类的构造函数。
4.构造函数不能由编程人员显示地直接调用。
5.构造函数的主要作用是完成对类对象的初始化。
- 问题4:java语言类库中的包是如何使用的?
- 问题4解决办法:首先我在书中学到类库中的包需要用import作为接口来使用,,然后书上介绍了六种包,我通过百度完善了一下,也解决了我上一篇博客中的一些问题。
- java.lang包。
该包提供了Java语言进行程序设计的基础类,它是默认导入的包。该包里面的Runnable接口和Object、Math、String、StringBuffer、System、Thread以及Throwable类需要重点掌握,因为它们应用很广。2.java.util包
该包提供了包含集合框架、遗留的集合类、事件模型、日期和时间实施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。3.java.io包。
该包通过文件系统、数据流和序列化提供系统的输入与输出。4.java.NET包
该包提供实现网络应用与开发的类。5.java.swing包
这两个包提供了GUI设计与开发的类。java.awt包提供了创建界面和绘制图形图像的所有类,而javax.swing包提供了一组“轻量级”的组件,尽量让这些组件在所有平台上的工作方式相同。
说实话这些我是没有看懂的,只是知道了有这些包,然后在课本代码中见过java.util的包,剩下的在学习他们的时候再学吧。
代码调试中的问题和解决过程
- 问题1: 如图,在bin文件夹外无法运行程序。
- 问题1解决方法:进入bin文件夹后可以运行
但是,我总觉得在根目录里是可以运行的,于是我在询问之下找到了解决办法java -cp .: ch4.hello.nihao.p91
,如下图,这样是可以运行成功的。
问题2:关于多个类相互调用(使用)的问题:需要同时编译
javac *.java
的文件,当这些文件放在大文件夹之下无法编译成功,会显示无法找到类,同时无关程序也出现报错。(无截图)问题2解决方案:
方法一:把需要相互使用的java文件放在新建文件夹之下,然后javac *.java
时,可以成功。
方法二:将需要同时编译的文件名加前缀,我在命名文件时以代码页数命名,如p90_1.java
,p90_2.java
,所以我在编译时需要输入javac p9*.java
就可以在src/ch4里编译成功。当然,按照老师说的,类名要有意义,我这样的方法是不好的。但是,可以在原类名(有意义)前加a(或其他字母)这样就可以类名既有意义,又方便编译。
代码托管
总结
本周的学习内容的难度明显增加了,前三章学习的时候还可以说与c语言类似,但第四章开始,完全是java的知识,包括初次学习面向对象,方法,类等知识都比较抽象,在听网课的时候老师画图解释的方法我是很受用了。边敲代码边学习也是一种很好的方法。但是还是有很大一部分内容搞不懂,有许多刚接触的东西,不能掌握,我只好借助百度来学习。好在这周在上传代码方面已经没有了问题可以顺利进行了。
还有一个我刚发现的问题是我在统计代码时每git push一次,code summary information就会减少,暂时不知道是 什么原因。
20165205 2017-2018-2 《Java程序设计》 第三周学习总结的更多相关文章
- Java程序设计第三周学习总结
1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...
- 对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈
对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈 一:教学中存在的学习问题 “1.由于同学们平时练习不足,上课总是出现跟不上老师的节奏的现象. 2.个别同学上课不认真听讲,打开 ...
- 20165205 2017-2018-2 《Java程序设计》 第二周学习总结
20165205 2017-2018-2 <Java程序设计>第一周学习总结 教材学习内容总结 学习第二章知识(标识符,关键字,数据类型,输入.输出数据和数组) 学习第三章知识(运算符,基 ...
- 20165205 2017-2018-2 《Java程序设计》第九周学习总结
20165205 2017-2018-2 <Java程序设计>第九周学习总结 教材学习内容总结 掌握URL类的使用方法 URL类的构造方法: public URL(String spec) ...
- 20165205 《Java程序设计》第一周学习总结
20165205 2017-2018-2 <Java程序设计>第一周学习总结 教材学习内容总结 安装JDK1.8,Git(在虚拟机内) 了解Git的使用方法 学习了vim的使用方法(很难) ...
- 学号 20175212 《Java程序设计》第九周学习总结
学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
随机推荐
- NVMe标准规范
NVMe NVM Express(NVMe),或称非易失性内存主机控制器接口规范(Non-Volatile Memory express),,是一个逻辑设备接口规范.他是与AHCI类似的.基于设备逻辑 ...
- Video Timing Controller v6.1软件调试记录
Video Timing Controller v6.1软件调试记录 GUI配置: . case XVTC_VMODE_PAL: //576i@50 { TimingPtr->Interlace ...
- Video Processing subsystem例程分析
Video Processing subsystem例程分析 1.memory_ss模块 slave端口: S00: 连接设备: microblaze_ss----M_AXI_DC 时钟来源: S01 ...
- 使用zlib来压缩文件-用delphi描述
今天用到压缩文件的问题,找了一些网上的资料,后来发现了delphi自身所带的zlib单元,根据例子稍微改变了一些,使它能够符合所有的格式. 使用时,需要Zlib.pas和 Zlibconst.pas两 ...
- [NEWS]Microsoft expands partnerships with AOL and AppNexus, Bing to power search for AOL properties
http://advertising.microsoft.com/en/blog/33906/microsoft-expands-partnerships-with-aol-and-appnexus- ...
- 实现java随机数Random的几招
一,在java.util这个包里面提供了一个Random的类,我们可以新建一个Random的对象来产生随机数,可以产生随机整数.随机float.随机double,随机long,这个也是我们经常用的一个 ...
- IntelliJ IDEA maven springmvc+shiro简单项目
搭建springmvc简单步骤如:http://www.cnblogs.com/grasp/p/9045242.html,这点就不在描述了. 新建和设置完工程的目录后,结构如下: pom.xml文件内 ...
- C/C++中字符串和数字互转小结
一. 数字 转 char*型 1.sprintf函数(适合C和C++) 示例: char str[50]; int num = 345; sprintf(str,"%d",num) ...
- Ngui Tween 组合动画 group
使用NGUI的Tween做补间动画,难免会涉及组合各种Tween.最常用的就是 Scale+Alpha组合 做淡入淡出了.那么如何控制 播放完一个Tween 后在 播放另一个Tween呢? 利用del ...
- Jmeter(三十二)Jmeter Question 之 “自定义函数开发”
“技术是业务的支撑”,已经不是第一次听到这句话,因为有各种各样的需求,因此衍生了许多各种各样的技术.共勉! 前面有提到提到过Jmeter的安装目录结构,也提到Jmeter的常用函数功能,有部分工作使用 ...