四、如何使用一个Java类 前面学习了如何定义一个类,下面来学习如何使用一个类。 1.new关键字 假如定义了一个表示日期的类,有三个整数变量;日、月和年的意义即由这些整数变量给出。如下所示: class MyDate { int day; int month; int year; } 名称MyDate按照大小写的有关约定处理,而不是由语意要求来定。 那么怎么来使用这个类呢:在你可以使用变量之前,实际内存必须被分配。这个工作是通过使用关键字new来实现的。如下所示: 在一个方法体中,声明 MyDate today; today = new MyDate(); 第一个语句(声明)仅为引用分配了足够的空间,而第二个语句则通过调用对象的构造方法为构成MyDate的三个整数分配了空间。对象的赋值使变量today重新正确地引用新的对象。这两个操作被完成后,MyDate对象的内容则可通过today进行访问。 关键字new意味着内存的分配和初始化,new 调用的方法就是类的构造方法。 使用一个语句同时为引用today和由引用today所指的对象分配空间也是可能的。 MyDate today = new MyDate(); 2.如何使用对象中的属性和方法 要调用对象中的属性和方法,使用“.”操作符。 例如: today.day = 26; today.month = 7; today.year = 2008; 3.this关键字 关键字this是用来指向当前对象或类实例的,功能说明如下: 3.1点取成员 this.day指的是调用当前对象的day字段,示例如下: public class MyDate { private int day, month, year; public void tomorrow() { this.day = this.day + 1; //其他代码 } } Java编程语言自动将所有实例变量和方法引用与this关键字联系在一起,因此,使用关键字在某些情况下是多余的。下面的代码与前面的代码是等同的。 public class MyDate { private int day, month, year; public void tomorrow() { day = day + 1; // 在day前面没有使用this //其他代码 } } 3.2区分同名变量 也有关键字this使用不多余的情况。如,需要在某些完全分离的类中调用一个方法,并将当前对象的一个引用作为参数传递时。例如: Birthday bDay = new Birthday (this); 还有一种情况,就是在类属性上定义的变量和方法内部定义的变量相同的时候,到底是调用谁呢?例如: public class Test{ int i = 2; public void t(){ int i = 3; //跟属性的变量名称是相同的 System.out.println(“实例变量i=”+ this.i); System.out.println(“方法内部的变量i=”+ i); } } 也就是说:“this.变量”调用的是当前属性的变量值,直接使用变量名称调用的是相对距离最近的变量的值。 3.3作为方法名来初始化对象 也就是相当于调用本类的其它构造方法,它必须作为构造方法的第一句。示例如下: publicclass Test { public Test(){ this(3);//在这里调用本类的另外的构造方法 } public Test(int a){ } publicstaticvoid main(String[] args) { Test t = new Test(); } }
Java私塾跟我学系列——JAVA篇 网址:http://www.javass.cn 电话:010-68434236 |