对象
Java中的所有内容都在类和对象中。Java对象持有状态,状态是在对象中一起保存的变量,我们称它们为字段或成员变量。
让我们从一个例子开始:
class Point { int x; int y;}
该类定义了具有x和y值的点。
为了创建此类的实例,我们需要使用关键字new
。
Point p = new Point();
在这种情况下,我们使用默认构造函数(不获取参数的构造函数)来创建Point。所有未明确定义构造函数的类都有一个不执行任何操作的默认构造函数。
我们可以定义自己的构造函数:
class Point { int x; int y; Point(int x, int y) { this.x = x; this.y = y; }}
这意味着我们不能再使用默认构造函数。我们现在只能使用定义的构造函数。new Point()
new Point(4, 1)
我们可以定义多个构造函数,因此Point
可以通过多种方式创建。让我们再次定义默认构造函数。
class Point { int x; int y; Point() { this(0, 0); } Point(int x, int y) { this.x = x; this.y = y; }}
请注意this
这里关键字的用法。我们可以在构造函数中使用它来调用不同的构造函数(以避免代码重复)。它只能是构造函数中的第一行。
我们还使用this
关键字作为我们正在运行的当前对象的引用。
在我们定义之后p
我们可以访问x
和y
。
p.x = 3;p.y = 6;
方法
我们现在可以定义方法了Point
。
class Point { ... // Our code previously void printPoint() { System.out.println("(" + x + "," + y + ")"); } Point center(Point other) { // Returns the center between this point the other point // Notice we are using integer, we wan't get an accurate value return new Point((x + other.x) / 2, (y + other.y) / 2); }}
公立和私立
虽然我们稍后将讨论修饰符,但了解私有变量和公共变量与方法之间的差异非常重要。
在private
变量或方法之前使用关键字时,这意味着只有类本身可以访问变量或方法,当我们使用public
它时意味着每个人都可以访问它。我们通常将构造函数定义为public,变量定义为private,方法是分开的,一些是公共的,一些是私有的。