Objects First with Java 读书笔记 (1)
umm...这学期被发了助教Java的任务,为了避免误人子弟从零开始现学。课是英语教学,就不逐字翻译了,方便记。
参考书目:Objects First with Java - A Practical Introduction Using BlueJ, 6th edition
第一章:Objects and Classes
1. 下载BlueJ (https://www.bluej.org/),随书配套新手学Java易用环境,没书也可以下
2. 打开example 文件夹下例子: picture
3. 画面上是不同的几个Class, compile之后,右键Circle 可选择new Circle(),生成一个新object
→ 概念1. Object:Java objects model objects from a problem domain.
→ 概念2. Class :Objects are created from classes. Class用于描述一种object; object用于展示Class中的具体个体.
注:Class 命名时通常用大写字母开头,如Circle, 而object命名时通常小写,如circle1
注:黄色为Class, 红色是生成的objects,一个Class可以生成多个objects
4. 右键生成的任意一个circle (注意是object,不是class), 可选择不同methods
→ 概念3. method:我们通过methods与objects交互,当我们动用一个method, object就会相应的做点啥
注:call / invoke a method
5. 使用moveHorizontal这个method,弹出窗口问你走多远,输入数字(如50)
→ 概念4. parameters :methods可以有parameters来为想要实现的任务提供更多信息
注:void moveHorizontal(int distance) 括号里注明需要的parameter的类型和名字
→ 概念5. signature :method的名字+parameter的类型= method的signature, signature提供使用一个method所需的信息
→ 概念6. type:parameter的类型定义了这个参数可以使用什么样的值,如changeColor中的String, changeSize中的int
注:comment(备注)里提供一些信息,比如换色你并不知道它认识哪些色
注:parameter可以有很多,如changeSize中问高度和宽度
6. 使用Inspect观察任意object的状态,更改它的状态如 moveLeft(), 观察状态变化
→ 概念7. state: Objects have state. The state is represented by storing values in fields
注:使用moveLeft后可以观察到xPosition这一属性变了,java中管这些object attributes(属性)叫fields
我们会发现来自同一Class的不同object,他们的fields是一样的,因为fields是定义在Class中的,当通过Class生成一个object, object就自带这些属性了。
7. 画一幅画
8. 打开 BlueJ 中 View 选项下的 Show Terminal,打开Option中的Record method calls,再次进行一些之前的操作,观察对应的文字指令
注:在实际的java编程中,我们是打出文字指令来对object使用各种methods的,而不像BlueJ中点鼠标。
9. 现在可以关掉record method calls功能和terminal,使用View中Show Code Pad, 打一些跟刚才观察到一样的指令,如triangle3.moveDown();
注:拼写要准确
10. 生成一个Picture的object, 使用draw(), 然后使用setBlackAndWhite()和setColor()两个method并观察
一步到位画出刚才的全部图形,因为object可以生成其他object
→概念8:method calling: Objects can communicate by calling each other's method.
11. 画一幅有太阳升降的图(提示:用slowMoveVertical)
现在换一个例子,打开People
1. 生成一个学生的object, 这次有更多的参数要输入,注意有些类型为String的要加双引号
2. getName() 并观察
3. changeName() 类型为void, 没有返回值
注: return type 不是 signature 的一部分
4. 生成一个Database 添加几个学生,使用listAll()并观察
本章关键词总结:
object, class, method, signature, parameter, type ,state, return value
下章将对Class中的各项进行详细说明。
小测可以提的问题:
1. class 与 object 的区别
2. 实例中指出哪里生成了object 并解释
3. 现写一段从一个class生成一个object的语句
4. field type 是指什么,例子中的 private 和 public 代表什么?
Objects First with Java 读书笔记 (1)的更多相关文章
- think in java 读书笔记 3 —— 数据报
目录 think in java 读书笔记 1 ——移位 think in java 读书笔记 2 —— 套接字 think in java 读书笔记 3 —— 数据报 概要 1. 数据报基本知识 2 ...
- think in java 读书笔记 2 —— 套接字
目录 think in java 读书笔记 1 ——移位 think in java 读书笔记 2 —— 套接字 think in java 读书笔记 3 —— 数据报 概要 1. 套接字基本知识 2 ...
- think in java 读书笔记 1 ——移位
目录 think in java 读书笔记 1 ——移位 think in java 读书笔记 2 —— 套接字 think in java 读书笔记 3 —— 数据报 在Think in Java中 ...
- Thinking In Java读书笔记--对象导论
Thinking In Java读书笔记--对象导论[对象]服务提供者==>将对象看做一个服务提供者[程序员分类][类创造者]/[客户端程序员] [访问控制存在的原因?][1]客户端程序员无法触 ...
- head first java读书笔记
head first java读书笔记 1. 基本信息 页数:689 阅读起止日期:20170104-20170215 2. 标签 Java入门 3. 价值 8分 4. 主题 使用面向对象的思路介绍J ...
- Java读书笔记1
Java逍遥游记读书笔记 前言 必须先来一句,这是入门级别,高手勿喷~ 写Android的时候总有一些语句不是很理解,其实大部分是Java的内容,所以想系统的学下Java. 这本书——<Java ...
- java读书笔记二
这是我的一些读书笔记: 我研究了一下面向对象: 面向对象符合人类看待事物的一般规律,对象的方法的实现细节是包装的,只有对象方法的实现者了解细节 我觉得面向过程是由过程.步骤.函数组成,过程是核心,面向 ...
- Effective Java读书笔记完结啦
Effective Java是一本经典的书, 很实用的Java进阶读物, 提供了各个方面的best practices. 最近终于做完了Effective Java的读书笔记, 发布出来与大家共享. ...
- Effective java读书笔记
2015年进步很小,看的书也不是很多,感觉自己都要废了,2016是沉淀的一年,在这一年中要不断学习.看书,努力提升自己 计在16年要看12本书,主要涉及java基础.Spring研究.java并发.J ...
随机推荐
- 【原创】Java基础之Freemarker(1)模板加载及清空机制
一 freemarker加载模版机制 freemarker中的配置项template_update_delay表明模版的缓存时间,单位是s,超过缓存时间则从磁盘加载最新的模版,具体细节如下: 1)fr ...
- [JavaScript]ECMA-6 yield语法
概述 yield关键字用于并且仅限于生成器函数(generator)内部,作用是暂停(并返回)/重启(可选修改该栈环境变量)该函数栈环境. 一般语法 调用生成器函数时返回一个可迭代对象,当调用该对象的 ...
- css 初始化样式
@charset "UTF-8"; /* reset */ html,body,div,h1,h2,h3,h4,h5,h6,p,dl,dt,dd,ol,ul,li,fieldset ...
- Linux 出现telnet: 127.0.0.1: Connection refused错误解决办法
Linux 出现telnet: connect to address 127.0.0.1: Connection refused错误解决办法 没有xinetd服务: 1./etc/init.d目录中放 ...
- Python知识目录
目录 一.计算机基础 二.Python基础 三.函数 四.常用模块 五.模块和包 六.面向对象 七.网络编程socket 八.数据库 九.前端 十.Python Web框架 十一.版本控制--GIT ...
- 使用SqlServer_Profiler跟踪慢查询
使用SQLProfiler(事件探查器)跟踪数据库操作及慢查询 1:应用程序连接SQL SERVER数据库服务器: 2:打开SQL Profiler开启数据库事件跟踪: (1):打开SQL Serve ...
- linux下Flask框架搭建简单网页
开始安装FLASK需要创建一个虚拟环境,虚拟环境可以不干扰正在使用的系统环境,避免影响,并且也不需要完全的root权限,更加安全可靠. 搭建环境 Python3.4 进入到microblog目录下创建 ...
- 论文阅读笔记四十一:Very Deep Convolutional Networks For Large-Scale Image Recongnition(VGG ICLR2015)
论文原址:https://arxiv.org/abs/1409.1556 代码原址:https://github.com/machrisaa/tensorflow-vgg 摘要 本文主要分析卷积网络的 ...
- HttpClient当HTTP连接的时候出现大量CLOSE_WAIT连接(转)
ESTABLISHED 表示正在进行网络连接的数量 TIME_WAIT 表示表示等待系统主动关闭网络连接的数量 CLOSE_WAIT 表示被动等待程序关闭的网络连接数量 上篇文章给出了解决TIME_W ...
- SqlServer中创建非聚集索引和非聚集索引
聚集索引与非聚集索引,其实已经有很多的文章做过详细介绍. 非聚集索引 简单来说,聚集索引是适合字段变动不大(尽可能不出现Update的字段).出现字段重复率小的列,因为聚集索引是对数据物理位置相同的索 ...