类体中的变量分为两部分。变量定义部分定义的变量为类的成员变量,在方法体中定义的变量和方法中涉及的变量称为局部变量。
成员变量和局部变量的区别:
(1)、成员变量在整个类中都有效,局部变量只在定义它的方法中有效
(2)、成员变量分为实例成员变量(简称实例变量)和类变量(简称静态变量),如果在成员变量类型前加static,这个变量就称为类变量。
(3)、如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏 ,也就是说,这个成员变量在这个方法中暂时失效。
例:
public class Benson{
int x=100,y;
void f(){
int x=10;
y=x; //这里的y得到的值是10,而不是100
}
}
注意:如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏,这是如果想在该方法内使用成员变量,必须使用this关键字。
例:
public class Employee{
int sideA,sideB,sideC;
void setSide(int sideA,int sideB,int sideC){
this.sideA=sideA; this.sideB=sideB;this.sideC=sideC;
}
}
方法声明包括方法名、返回类型和外部参数。其中参数的类型可以是简单数据类型,也可以是复合数据类型(又称引用数据类型)。
对于简单数据类型来说,实现的是值传递,方法接收参数的值,但不能改变这些参数的值。如果要改变参数的值,则用引用数据类型,因为引用数据类型传递给方法的数据在内存中的地址。
例:
public class PassTest{ float ptValue; public void changeInt(int value){ value=55;//在方法中对参数进行修改 } public void changeObject(PassTest pt){ pt.ptValue=88;///在方法中对引用参数进行修改 } public static void main(String argsp[]){ int val=11; System.out.println("初始值:"+val); PassTest pt=new PassTest(); pt.changeInt(val);//值传递 System.out.println("值传递后:"+val); pt.ptValue=99; System.out.println("初始值:"+pt.ptValue); pt.changeObject(pt); System.out.println("引用传递后:"+pt.ptValue); } }
构造方法是一个特殊的方法。java中每个类中都有构造方法,用来初始化该类的一个对象。构造方法具有和类名相同的名称,而且不返回任何数据类型。同时,构造方法也可以重载。构造方法只能用new操作符调用,当类创建对象的时候使用构造方法。
例:
class Point{
int x,y;
Point(){
x=0;y=0;
}
Point(int x,int y){
this.x=x;this.y=y;
}
}