20165230 2017-2018-2 《Java程序设计》第3周学习总结

教材学习内容总结

  • 本周主要学习了类与对象。

    包括创建对象与构造方法。
  1. 了解了程序是由若干个类所构成;类分为类名与类体;
  2. 类体包括变量声明与方法定义;
  3. 变量分为成员变量与局部变量;
  4. 方法由方法头和方法体构成;
  5. 方法体由局部变量的声明和JAVA语句构成
  • 用类声明的变量称为对象。
  1. 创建对象需使用构造方法
  2. 创建对象包括对象声明与为声明的对象分配变量
  3. 对象可组合与复用

重要结论:一个类声明的两个对象如果具有相同的引用,二者就具有完全相同的变量

  • 类变量与类方法:加static关键字修饰,可用类名调用
  • 实例变量与实例方法:实例方法即可操作实例变量也可操作类变量
  • 包与import语句
  1. package打包
  2. javac 包名.主类名编译
  3. javac *.java编译全部源文件
  4. 运行程序必须到包结构的上一层目录运行
  5. import java.包名.*引入包中所有的类
  • jar文件
  • 访问权限
  1. private私有变量与私有方法:另一个类中,对象不能访问自己的私有变量,也不能用类名调用私有方法
  2. public共有变量与共有方法
  3. protected受保护成员变量与方法
  4. 友好变量与方法
  • jar文件:

    把字节码文件压缩成jar文件并存放如jre运行环境中,即可使用import语句扩展类

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

  • 问题1:p93页中,友好变量与受保护成员变量都是如果在同一个类中即可访问,那么他们的区别在哪里呢?
  • 问题1解决方案:通过在网上查询了解到

    protected修饰的变量或方法:继承-当前类,同包类,不同包类。使用-当前类,同包类。

    友好修饰的变量和方法只能被当前类,同包类继承或使用。

    private修饰的变量和方法只能被当前类使用。不存在继承。

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

  • 问题1:在调试example4_5时,将lader.bottomlader.above错误将小写的l打错成大写的L,导致编译错误

  • 问题1解决方案:此处的above和bottom变量均不是静态变量,不能直接通过类名来访问
  • 问题2:在调试example4_8时,一直显示找不到符号,不断地检查example4_8.java的文件,结果是因为在circular.java文件中漏掉了setHeight的方法定义

  • 问题2解决方案:在Circular.java文件中补充setHeight的方法定义
  • 问题3:在调试example4_10时,错误将laderone.设置上底ladertwo.设置下底的lader首字母大写,导致编译不通过

  • 问题3解决方案:此处的laderone和ladertwo均为实例变量,不是类变量,一定要注意大小写
  • 问题4:在编译带包文件时,javac *.java显示错误

  • 问题4解决方案:进入包目录的上一层目录中,不能用*.java,要用javac tom/jiafei/源文件名.java

    编译时或者进入到jiafei文件夹用javac *.java
  • 问题5:在调试example4_20时,在if后加了;,导致编译错误

  • 问题5解决方案:去掉;,才能与后面的else if匹配

代码托管

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

  • 在本周的学习中,任务量比上周重,学习过程中间有两天没有看视频和学习教材,再开始学的时候就忘记前面的内容了,敲代码时也减慢了速度,效率降低了不少,java的学习需要保持每天的学习时间,边学边总结,边敲代码,边理解。同时要一边学一边上传代码提交到码云上,不能学完教材再敲代码。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 13/13 1/1 19/19
第二周 426/426 3/3 12/12
第三周 562/562 4/4 15/15

参考资料

20165230 2017-2018-2 《Java程序设计》第3周学习总结的更多相关文章

  1. 学号 20175212 《Java程序设计》第九周学习总结

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

  2. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  3. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  4. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  5. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  6. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  7. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  8. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  9. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

  10. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

随机推荐

  1. HDU - 3001 Travelling 状压dp + 三进制 [kuangbin带你飞]专题二

    终于刷完搜索专题了. 题意:给定n个城市,每个城市参观不能超过两次,两个城市之间有道路通过需要花费X,求通过能所有城市的最小花费. 思路:每个城市有三个状态0,1,2,可用三进制存储所有城市的访问状态 ...

  2. python如何使用pymysql模块

    Python 3.x 操作MySQL的pymysql模块详解 前言pymysql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而M ...

  3. Redis笔记5-redis高可用方案

    一.哨兵机制 有了主从复制的实现以后,如果想对主服务器进行监控,那么在redis2.6以后提供了一个"哨兵"的机制.顾名思义,哨兵的含义就是监控redis系统的运行状态.可以启动多 ...

  4. http缓存(http caching)

    通过使用缓存web网站和web应用的性能能够得到显著的提升.Web caches能够减小延迟和网络流量,从而缩短展示资源所花费的时间. 在http中控制缓存行为的首部字段是Cache-Control, ...

  5. linux dns搭建

    DNS:域名解析(Domain Nmae System)正向解析:根据主机名称(域名)查找其对应的ip地址,这是最基本,最常用的功能反向解析:根据ip地址查找其对应的主机名称(域名),反垃圾邮件/安全 ...

  6. MySQL ODBC 3.51 Driver - Access Denied

    MySQL ODBC 3.51 Driver - Access Denied   同事反馈在应用服务器上配置MySQL ODBC 3.51 Drive时,测试连接MySQL数据库时报下面错误: ERR ...

  7. IDirectDraw接口

    创建一个主DirectDraw对象,并使用QueryInterface()方法来得到最新的IDirectDraw7接口,或是直接用DirectDrawCreateEx()函数直接创建一个DirectD ...

  8. 如何使用DirectDraw直接显示RGB、YUV视频数据(播放yuv)

    #include "draw.h"void CTest100Dlg::OnButton1() { // TODO: Add your control notification ha ...

  9. hi3531芯片的标识寄存器

    芯片的标识寄存器 0xee0.0xee4.0xee8.0xeec(基址是0x2005_0000) 系统控制器提供了芯片标识(ID)寄存器SC_SYSID.这个标识寄存器是一个概念上 的32bit 的标 ...

  10. [php]在PHP中读取和写入WORD文档的代码

    测试平台windows 使用的windows的com主键. <? // 建立一个指向新COM组件的索引 $word = new COM("word.application") ...