0%

Java 面向对象(二)—— 一切都是对象

第二章 一切都是对象

1、引用 ref:操纵对象

2、存储位置

  • 常规位置:寄存器 堆栈 堆

  • 常量存储:程序代码内部

  • 非 RAM 存储:存活于程序外,不受程序任何控制

    • 实例:流对象 持久化对象

3、基本类型(P23)

  • byte 8 比特的比特值

  • 具有包装器类,可在堆中创建一个非基本对象表示对应基本类型

1
2
3
4
char c = "hhh";
Character ch = new Character(c);
// 还可以反向转换
char c = ch;
  • 高精度数字:BigInteger BigDecimal

  • 对象的生命周期独立于作用域之外

4、类 class

  • 构成:字段(数据成员)和 方法(成员函数)

  • DataOnly 类:如名,仅作保存数据使用

  • 基本成员默认值(P26)

5、方法(函数)

  • 组成:名称 参数 返回值 方法体

1
2
3
ReturnType methodName( /* 参数列表 */ ){
/* 方法体 */
}

6、构建

  • 名字可见性:反转域名,句点则表示子目录的划分,每个类标识符唯一

  • 使用构件

1
2
3
4
// 使用util中的ArrayList类
import java.util.ArrayList;
// 使用util中的几个类(一次说明)
import java.util.*;
  • static 关键字:

    • 为特定域分配单一存储空间
    • 不与包含它的类的任何对象实例关联
1
2
3
4
5
6
7
8
class StaticTest {
static int i = 47;
}
// 两者指向同一片存储空间
StaticTest st1 = new StaticTest();
StaticTest st2 = new StaticTest();
// 可通过类名直接引用
StaticTest.i++;
  • 定义静态方法

    • 可用它的类直接调用,或用对象调用
    • 可在不创建任何对象时调用
1
2
3
4
5
6
7
8
9
10
class Incrementable {
static void increment() {
StaticTest.i++;
}
}
// 通过对象调用
Incrementable sf = new Incrementable();
sf.increment();
// 通过类调用
Incrementable.increment();

7、使用

  • java.lang 默认导入

  • println ():控制台输出,完成后换行

    • sout + enter/tab
  • 注释风格:同 C++

  • javadoc

    • 提取注释:输出 HTML 文档
    • 语法:*//
    • 使用:嵌入 HTML 或 使用文档标签(以 @开头命令)
      • @see:引用其他类
      • @version version-information
      • @param parameter-name description:参数列表标识符
      • deprecated:旧特性,已由新特性取代
    • 构成:类、域和方法
    • 访问权限:仅可公共或受限,忽略私有注释

8、编码风格

  • 类名的首字母大写

  • 驼峰风格:

    • 多个单词类名合并(无下划线),每个首部大写
    • 标识符同上,但第一个字母小写