JAVA类与对象(四)----成员变量与局部变量 、成员方法、构造方法

2023-05-13,,

类体中的变量分为两部分。变量定义部分定义的变量为类的成员变量,在方法体中定义的变量和方法中涉及的变量称为局部变量。

成员变量和局部变量的区别:

(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);
}
}

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAARgAAABUCAIAAADWAb94AAAFC0lEQVR4nO2dUZabMAxF2W23M0tiO91FP6aHurb0LBsBwXPvF3GEbDi+EWHCePv99Wvbtn3ft4LqpcYMFgnNt+Lx8TFMDO9MHnPbzKyPqJuzfHnReQvmiexuhgUn2JlpeTcRkfZ9T5ypkdOq44NjmBje0WPbr85TxQuRuofj5bnzvHWPqw0TabsjH83ziUb9/vq1N1Qx50Uqk8TnqBdvRno9Rt71RlIOoHtyqo220TvSNqHO70V2481IL8bM450KcYr0eYvnqUb1cXxXpJO0s+RDj7ZHZKZe3e9LT91PJ1ck/SF3vheT63rJzfxpnUImKSIB/HQQCSCBQ6SJiwrv62B8F65kYBHKijQ6rREJ4C/epV3ka/2cSIKpIwD4APTfkbzteMuZ+Am8hFgK11JVJHHpdWxHxAsWq8T5Lcom5Q4uR39HEhWpdUZIuMk/kCdOdCoSPEOWSKYb1e6iXiESvJvy9vehxPHumYrUvkVFgmUpf/3dTughkTyGlDsJIsEzfN+1+96OVyRTiW6RGapIc2UKkeAZ2u9IEZG6we3LbbAiIRK8CXGzIS7GaHykIs2BSPAM0yJRkQD+4Ymk57q5/axIXn27ou4B1JgitZ5ox452PWvbgO4uAO9A32wo27vEKxLAavBgH0ACiASQQPzX3yaj8Wbk6CUfl4jwcdwmkveVacg9bkvAh9KKNHRLbUi8vbgrGEyOOfAO4o9RtEyIITJE4tPxusBbGCNFpGC8yHC/SJ7wFECYoX0eaYtVmLYxPvniFaxL9Dj9kQy1A9h4IlVhQqTuRG/nvehId5oOIkEO1YN9343dz/4qvmwUIBIsS/tg39arSGZYZOZpUXWnF4FIkIP3o9XuLD8TX+7lvbsVdS9o3cTsRyTIofvrb6/FawzGH5KIXdoYHYxI8BgpFUlsm/HVhimMsFp0MQoiQQ6JFUkUEC8g0iMVCV5A7qXdkEUivlvfzovk1dtuHQYwqETqUu4bnOJbI4bO3/bSHQnAw9y8PtIE9/QCcAoe7ANIAJEAEmANWYAEWEMWIAHWkAVIYJk1ZIXto5ZiNQyzxhqyEfmDfelDALBZYw3Z7tjMl/E8AB3WWEMWkeBh1lhDFpHgYdZYQzZS+iK6IhJMsswasmUec1QbFQmuY7E1ZL1sut0LQCSIstgasl7Xut0LQCSIsswasl5ys10kF4MEcFlmDVmxS9uuk6dXSFgf1pAFSIA1ZAES4ME+gAQQCSCBoEhZV2Xdy7/IjhM3IYbiAYY5fiKkv/dP3Dkwu4uL5H3FGnKP2xhwE+IJWfGyG3BepPLdoKiYA49xp0gTYogMkfhEvKFOqIvnC/KISDpM8JRI3tFFjtpLhUtLUT2PJD53qx3NqiI+niM5PSL5I0OanrtZIk2fAfh0gv/XzhQj/nIrROpO9HbeexO3O8gsEAk63CPSYYjO6XXxuEhiDMGx6X3h9ZRPyArOiGROtaFpJ8qXHmQuZqei3YwUL+HF3Pl3JC2GiC/30kMSAzPH33bqsVORQPDsXbt4/CFJd0jBrodECsrTTYhIy/KUSFqJqr3aMIXRleHklEUk6PBgRRIFxAsQtoyKdGlFEsn1OOGtzIk06lVwr/at4Ed4t76dFOmIb/cy23Xy0a7hBZj/+3vCk+qDNjibI427xBybFwlwFW1FisxsnTNSN+LZRrmnF4D/4ME+gAQQCSABRAJIAJEAEkAkgAQQCSABRAI4zx8p8oVEKp5FoQAAAABJRU5ErkJggg==" alt="" />

构造方法是一个特殊的方法。java中每个类中都有构造方法,用来初始化该类的一个对象。构造方法具有和类名相同的名称,而且不返回任何数据类型。同时,构造方法也可以重载。构造方法只能用new操作符调用,当类创建对象的时候使用构造方法。

例:

class Point{

  int x,y;

  Point(){

    x=0;y=0;

  }

  Point(int x,int y){

    this.x=x;this.y=y;

  }

}

JAVA类与对象(四)----成员变量与局部变量 、成员方法、构造方法的相关教程结束。

《JAVA类与对象(四)----成员变量与局部变量 、成员方法、构造方法.doc》

下载本文的Word格式文档,以方便收藏与打印。