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)的更多相关文章

  1. think in java 读书笔记 3 —— 数据报

    目录 think in java 读书笔记 1 ——移位 think in java 读书笔记 2 —— 套接字 think in java 读书笔记 3 —— 数据报 概要 1. 数据报基本知识 2 ...

  2. think in java 读书笔记 2 —— 套接字

    目录 think in java 读书笔记 1 ——移位 think in java 读书笔记 2 —— 套接字 think in java 读书笔记 3 —— 数据报 概要 1. 套接字基本知识 2 ...

  3. think in java 读书笔记 1 ——移位

    目录 think in java 读书笔记 1 ——移位 think in java 读书笔记 2 —— 套接字 think in java 读书笔记 3 —— 数据报 在Think in Java中 ...

  4. Thinking In Java读书笔记--对象导论

    Thinking In Java读书笔记--对象导论[对象]服务提供者==>将对象看做一个服务提供者[程序员分类][类创造者]/[客户端程序员] [访问控制存在的原因?][1]客户端程序员无法触 ...

  5. head first java读书笔记

    head first java读书笔记 1. 基本信息 页数:689 阅读起止日期:20170104-20170215 2. 标签 Java入门 3. 价值 8分 4. 主题 使用面向对象的思路介绍J ...

  6. Java读书笔记1

    Java逍遥游记读书笔记 前言 必须先来一句,这是入门级别,高手勿喷~ 写Android的时候总有一些语句不是很理解,其实大部分是Java的内容,所以想系统的学下Java. 这本书——<Java ...

  7. java读书笔记二

    这是我的一些读书笔记: 我研究了一下面向对象: 面向对象符合人类看待事物的一般规律,对象的方法的实现细节是包装的,只有对象方法的实现者了解细节 我觉得面向过程是由过程.步骤.函数组成,过程是核心,面向 ...

  8. Effective Java读书笔记完结啦

    Effective Java是一本经典的书, 很实用的Java进阶读物, 提供了各个方面的best practices. 最近终于做完了Effective Java的读书笔记, 发布出来与大家共享. ...

  9. Effective java读书笔记

    2015年进步很小,看的书也不是很多,感觉自己都要废了,2016是沉淀的一年,在这一年中要不断学习.看书,努力提升自己 计在16年要看12本书,主要涉及java基础.Spring研究.java并发.J ...

随机推荐

  1. Django ----- app 和 ORM的操作和介绍

    创建APP ORM 介绍 ORM的操作 说明一下 GET 和 POST 的区别: , GET ①获取一个页面 ②提交数据 数据显示在URL ?user=alex&pwd=alexdsb ,PO ...

  2. (转发)Navicat 远程连接 Linux服务器上的MySQL数据库

    授权法: 在安装mysql的机器上运行: 1.# ./bin/mysql -uroot -p //这样应该可以进入MySQL服务器 2.mysql> GRANT ALL PRIVILEGES O ...

  3. 论文阅读笔记四十二:Going deeper with convolutions (Inception V1 CVPR2014 )

    论文原址:https://arxiv.org/pdf/1409.4842.pdf 代码连接:https://github.com/titu1994/Inception-v4(包含v1,v2,v4)   ...

  4. Python与R的区别和联系

    转自:http://bbs.pinggu.org/thread-3078817-1-1.html 有人说Python和R的区别是显而易见的,因为R是针对统计的,python是给程序员设计的,其实这话对 ...

  5. Linux下如何查看系统启动时间和运行时间以及安装时间

    1.uptime命令输出:16:11:40 up 59 days, 4:21, 2 users, load average: 0.00, 0.01, 0.00 2.查看/proc/uptime文件计算 ...

  6. Django搭建博客文章---模型层

    页面展示所需字段 1.文章标题---文本类型 2.文章摘要---文本类型 3.文章内容--文本类型 4.唯一的ID标记---int数字类型(自增.主键) 5.发布日期--日期类型 模型层定义字段 1. ...

  7. Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第九集-补充-之安装mariadb】

    由于也是第一次安装,再此不必献丑了,贴上参考链接: 1,指导我为什么使用mariadb而不是用mysql:https://blog.csdn.net/liumiaocn/article/details ...

  8. 2018-2019-1 20189201 《LInux内核原理与分析》第八周作业

    只有在天足够黑的时候你才能看到星星. BY WAY GK 加油 一.书本第七章知识总结[可执行程序工作原理] 1. ELF目标文件格式 ELF全称Executable and Linkable For ...

  9. BZOJ.5092.[Lydsy1711月赛]分割序列(高维前缀和)

    题目链接 \(Description\) \(Solution\) 首先处理\(a_i\)的前缀异或和\(s_i\).那么在对于序列\(a_1,...,a_n\),在\(i\)位置处分开的价值为:\( ...

  10. python3 配置logging日志类

    配置类config_file: from configparser import ConfigParser class config_file: def __init__(self,conf_file ...