我们使用关键字class来声明一个类。通常定义class的形式如下所示:class classname {
type instance-varable1;
type instance-varable2;
//。。。
type instance-varableN;
type metbodname1(parameter-list) {
//body of method
}
type metbodname2(parameter-list) {
//body of method
}
//。
。。
type metbodnameN(parameter-list) {
//body of method
}} 在一个class中定义的数据或叫变量叫做实例变量。代码包含在方法中。总体来说,类中定义的方法和变量叫做该类的成员。在大部分类中,实例变量由该类所定义的方法调用和访问。
因此,这就决定了类中的数据如何被使用。所有的方法都在类中声明,并且通常都具有如下形式:
type name(parameter-list) {
//body of method
} 在这里,type指定了由方法返回的数据类型。它可以是任意有效的类型,包括你创建的类类型。
如果方法没有返回值,则其返回类型必须是void。方法的名字由name指定。这个名字可以是除了那些在当前作用域中已经使用的标识符之外的任意合法标识符。parameter-list是类型、标识符对组成的序列,每对之间用逗号分开。参数实际上是方法被调用时接收传递过来的参数值的变量。
如果方法没有参数,则参数表就是空的。除了返回void方法外,那些具有返回类型的方法使用下面的返回语句形式对调用他们的程序返回一个值。
return value;value是返回值。下面是一个简单的类的例子:class Sameple {
int a,b;
int sum() {
return a+b;
}}声明类的对象 每当创建一个类时,就是在创建一个新的数据类型,可以用这个数据类型去声明这种类型的对象。
然而,获得一个类的对象一般分两步进行。首先,必须声明这个类型的一个变量,这个变量并没有定义对象本身,而仅仅是一个可以指向对象的变量。第二步,必须获得这个对象的一个实际的物理拷贝,并将其赋给已声明的那个变量。使用new运算完成这一步。new运算符为对象动态分配(即在程序运行时分配)内存,并为其返回一个引用。
该引用或多或少的是由new分配给对象的内存的地址。然后该引用被保存在变量中。因此,JAVA中所有类的对象一定是动态分配的。 下面是一个创建Sample类(前面定义的)对象的例子:Sample ob = new Sample(); 这条语句将刚才提到的两步合二为一了。
可以重新写成下面这样一来,更清楚的表示出2步:Sample ob;ob = new Sample(); 一旦得到一个类对象,就可以使用“。“运算符访问其成员。下面是通常的形式:object-name。member-name 如,给ob的成员a赋值10,使用下面语句:ob。
a = 10;构造函数 构造函数在创建对象时立即对其进行初始化。构造函数与它所在的类具有相同的名字,在语句构成上与方法类似。然而,构造函数没有返回值,甚至也不返回void。这是因为类的构造函数隐含的返回类型是类类型本身。初始化对象的内部状态,以便使代码创建实例时有一个完全初始化的、可用的对象是构造函数的任务。
构造函数可以有参数,这些参数接收创建对象时传递给构造的参数。典型情况下,包含在构造函数参数中的这些值用于初始化对象。当创建每个对象的时候,传递给构造函数的参数即被指定。例如,下面是一个加到Sample类中有参数的构造函数的例子。class Sample {
int a,b;// constructorSample(int x,int y) {
a = x;
b = y;}int sum() {
return a+b;}。
全部