2.4 创建新的数据类型 类(class)
如果一切都是对象,那么是什么决定了某一类对象的外观与行为呢?换句话说,是什么确定了对象的类型?class这个关键字表示“我准备告诉你一种心类型的对象的确定”。
class ATypeName { /* Class body goes here */ }
一旦定义了一个类,就可以在类中设置两种类型的元素:
- 字段:有时被称为数据成员
- 方法:又是被称为成员函数
如何引用一个对象的成员。具体的实现为:在对象引用的名称之后紧接着一个句点(.),然后再接着是对象内部的成员名称:
objectReference.member
若类的某个成员是基本数据类型,即使没有进行初始化,Java也会确保它获得一个默认值。然而确保初始化的方法并不适用与”局部“变量。
2.5 方法,参数,返回指
Java的方法决定了一个对象能够接收什么样的消息。方法的基本组成部分包括:名称,参数,返回值,方法体。
ReturnType methodName ( /* Argument list */ ) { /* Mehton body */ }
Java中的方法只能作为类的一部分来创建。方法只有通过对象才能被调用。
这种调用方法的行为通常被称为发送消息给对象。面向对象的程序设计通常简单地归纳为:向对象发送消息
2.5.1 参数列表
方法的参数列表指定要传递给方法什么样的消息。这写信息像Java中的其他信息一样,采用的都是对象形式。像Java中任何传递对象的场合一样,这里传递都的实际上也是引用(基本数据类型除外),并且引用的类型必须正确。
你可以定义方法返回任意想要的类型,如果不想返回任何值,可以指示此方法返回void(空)
2.6 构建一个Java程序的其他要点
2.6.1 名字可见性
Java采用了一种全新的方法来避免命名冲突的问题。为了给一个类库生成不会与其他名字混淆,冲突的名字,Java设计者希望程序员反过来使用自己的Internet域名,因为这样可以保证它们肯定是独一无二的。
2.6.2 运用其他构件
如果想在自己的程序里使用预先定义好的类,那么编译器就必须知道怎么定位它们:
- 这个类可能就在发出调用的那个源文件中,在这种情况下,就可以直接使用这个类。
- 如果那么类位于其他文件中,可以使用关键字import来准确的告诉编译器你想要的类是什么。
import java.util.ArrayList; import java.util.*;
2.6.3 static 关键字
有两种情况:
- 只想为某特定域分配单一存储空间,而不去考虑究竟要创建多少对象,甚至根本就不创建任何对象。
- 希望某个方法不与包含它的任何对象关联在一起。也就是说,即使没有创建对象,也能够调用这个方法。
通过static关键字可以满足这两方面的需要。
class StaticTest { static int i = 47; }
StaticTest st1 = new StaticTest(); StaticTest st2 = new StaticTest();
以上两个对象共享同一个 i ,因此 st1.i st2.i 的值都为 47。
引用static 变量有两种方法:
- 可以通过一个对象去定位它 st2.i
- 可以通过类名直接引用 StaticTest.i
类似逻辑也应用与静态方法。
尽管当static作用于某个字段时,肯定会改变数据创建的方式,但是如果static作用于某个方法,差别却没有那么大。static方法的一个重要用法就是在不创建任何对象的前提下就可以调用它。
Categories: 读书笔记