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

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

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

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

  }

}

原文地址:https://www.cnblogs.com/scf141592/p/5721401.html