20175226 2018-2019-2 《Java程序设计》第三周学习总结

教材学习内容总结

  • 编程语言的几个发展阶段

    • 类面向机器语言(汇编语言)、面向过程语言(C语言)、面向对象语言(Java、C++)
    • 面向对象语言:封装性、继承、多态
  • 类(class 类名 { 类体的内容 })
    • 类声明

      • 名字首拉丁字母使用大写字母
      • 类名容易识别,见名识意
    • 类体
      • 变量的声明:体现变量的属性
      • 方法的定义:即给出算法,体现对象所具有的行为
    • 成员变量(声明变量所声明的变量被称为成员变量或域变量)
      • 有效性与书写的先后位置无关
    • 方法(方法头与方法体)
      • 局部变量只在方法内有效,而且与其声明位置有关
      • 局部与成员变量名字相同时,成员变量在这个方法内无效
  • 构造方法与对象的创造
    类中构造方法的名字必须与它所在类的名字完全相同,而且没有类型
    类中没有构造方法,系统会默认只有一个构造方法

    • 创建对象(类的名字 对象的名字)

      • 空对象不能使用
      • new运算符只能和类的构造方法进行运算(结果是十六进制的数)
      • 对象用“.”运算符访问自己的变量和创建它的类中的方法
      • 同一类创建的两个对象允许直接赋值操作
  • 类与程序的基本结构(一个工程由若干个类所构成)
  • 参数传值 (方法中参数变量的值是调用者指定拷贝的值)
    类型相同的两个数组,一引用相同,都有一样的单元
    类型相同的两个对象,一引用相同,都有一样的实体
  • 对象的组合
    一个类可以把某个对象作为自己的一个成员变量(Has-A)
  • 实例成员与类成员
    class A {
    int A //实例变量
    static float B //类变量
    }

    • 两者区别

      • 不同对象的实例对象互不相同
      • 所有对象共享类变量
      • 通过类名直接访问类变量
    • 两种方法的定义
      • 对象调用实例方法,只能用对象来调用,可以操作两种变量
      • 类名调用类方法,对象也能调用,只能操作类变量
  • 方法重载
    • 一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同
  • this关键字(表示某个对象)
    • 实例方法一定是对象来调用,不可以出现在类方法中
  • 包 (package 包名)
    • 不同Java源文件中两个类名字相同时,它们可以通过不同的包来区分

      • 包语句作为源文件的首语句(至多一个)
      • 按照包名形成的目录存放字节码文件
  • inport语句
    • 源文件的包语句之后
  • 访问权限、基本数据封装
  • 对象数组
  • 文档生成器

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

  • 问题1:this语句的使用语境
  • 问题1解决方案:通过看书、询问,了解this语句的两种使用情况:1、当全局变量跟局部变量重名时,表示使用全局变量(此时this指代本类对象);2、构造方法相互调用,此时this指代本类类名
    参考博客
  • 问题2:包的源文件存放需不需要一定放在包名目录下面
  • 问题2解决方案:通过自己的试验吧,感觉好像不需要,源文件编译后会自动将字节码文件放到对应的包目录下面,自己的想法未找到权威说明

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

  • 问题1:在做Example4_8时我在src目录外编译始终找不到组合类
  • 问题1解决方案:通过询问同学知道了因为我在src目录外编译所以不能用javac -d bin src/Example4_8.java直接编译。换用语句javac -d bin src/*.java就解决了问题

代码托管

上周考试错题总结

  • 错题1
    表达式0xaa | 0x55的值为
    A .FF
    B .0
    C .255
    D .1
    解析:0xaa 用二进制表示为 10101010 ,0x55 用二进制表示为 01010101 ,按位或之后为 11111111 ,十进制数为255,十六进制数为 0xFF 。
    原因:计算错误
  • 错题2
    定义float x = 0.5f; double y = 0.5,则x==y结果为false。
    A .true
    B .false
    解析:0.5在float和double的范围内都可以使用二进制精确表示,因此两者相等。
    原因:理解不准确
  • 错题3
    表达式-2 >> 1的值为
    A .2^31 – 1
    B .2^15 – 1
    C .1
    D .-1
    解析:带符号右移(“ >> ”),即有符号位时,负数符号位补1,正数符号位补0, -2 的二进制求法是正数取反加1,因此 2 的二进制表示为0000 0000 0000 0000 0000 0000 0000 0010 ,取反加一为1111 1111 1111 1111 1111 1111 1111 1110 ,即 -2 的二进制表示。带符号右移之后为 1111 1111 1111 1111 1111 1111 1111 1111 ,除符号位之外,减一取反,得到带符号十进制数为-1。
    原因:对“>>”符号理解不够到位,导致计算错误。

学习进度条

计划学习时间:20小时
实际学习时间:不到16小时

20175226 2018-2019-2 《Java程序设计》第三周学习总结的更多相关文章

  1. Java程序设计第三周学习总结

    1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...

  2. 20175226 2018-2019-2 《Java程序设计》第二周学习总结

    20175226 2018-2019-2 <Java程序设计>第二周学习总结 教材学习内容总结 基本数据类型与数组 标识符与关键字 标识符不能是关键字.true.false.null.且第 ...

  3. 对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈

    对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈 一:教学中存在的学习问题 “1.由于同学们平时练习不足,上课总是出现跟不上老师的节奏的现象. 2.个别同学上课不认真听讲,打开 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. Centos查看tomcat状态及操作

    启动:一般是执行sh tomcat/bin/startup.sh 查看:执行ps -ef |grep tomcat 输出如下 www 5144 ...等等.Bootstrap start 说明tomc ...

  2. Flask WTForms的使用和源码分析 —— (7)

    Flask-WTF是简化了WTForms操作的一个第三方库.WTForms表单的两个主要功能是验证用户提交数据的合法性以及渲染模板.还有其它一些功能:CSRF保护, 文件上传等.安装方法: pip3 ...

  3. fedora上安装ffmpeg

    环境 fedora26 1. 安装 yasm sudo dnf install yasm yasm-devel -y 2.安装 ffmpeg 官方下载ffmpeg源码  ( http://ffmpeg ...

  4. python之类的多态(鸭子类型 )、封装和内置函数property

    一.多态 1.什么是多态:一个类表现出的多种状态--->通过继承来实现的例如:class Animal:passclass Dog(Animal):passclass Cat(Animal):p ...

  5. [NOIp2016] 换教室

    题目类型:期望\(DP\) 传送门:>Here< 题意:现有\(N\)个时间段,每个时间段上一节课.如果不申请换教室,那么时间段\(i\)必须去教室\(c[i]\)上课,如果申请换课成功, ...

  6. tmux 使用说明

    安装Mac:brew install tmux若未安装libevent,需要先brew install libeventCentos:yum -y install tmuxUbuntu:apt-get ...

  7. 【BZOJ5495】[十二省联考2019]异或粽子(主席树,贪心)

    [BZOJ5495][十二省联考2019]异或粽子(主席树,贪心) 题面 BZOJ 洛谷 题解 这不是送分题吗... 转异或前缀和,构建可持久化\(Trie\). 然后拿一个堆维护每次的最大值,每次如 ...

  8. <Android基础>(三) UI开发 Part 3 RecyclerView

    RecyclerView 1)RecyclerView的基本用法 2)横向滚动和瀑布流滚动 3)注册点击事件 3.6 强大的滚动控件 RecyclerView ListView缺点: 1.不使用技巧优 ...

  9. 20165223 《信息安全系统设计基础》 实现mybash

    一.了解 mybash 1. 简介   bash 是 Bourne Again Shell 的缩写,是linux默认的标准shell(也是大家常说的系统内核),bash也是Unix/Linux上常见的 ...

  10. 基于Elastalert的安全告警剖析

    https://www.freebuf.com/sectool/164591.html *本文作者:bigface,本文属 FreeBuf 原创奖励计划,未经许可禁止转载. elastalert 是一 ...