zoukankan      html  css  js  c++  java
  • 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;

      }

    }

  • 相关阅读:
    [Codeforces Round #498 (Div. 3)] -F. Xor-Paths (折半搜索)
    Best Reward [HDU
    [Educational Codeforces Round 72] A. Creating a Character (简单数学)
    [Codeforces Round #624 (Div. 3)] -E. Construct the Binary Tree (构造二叉树)
    [Codeforces Round #626 (Div. 2, based on Moscow Open Olympiad in Informatics)] -D. Present(异或性质,按位拆分,双指针)
    [Codeforces Round #626 (Div. 2, based on Moscow Open Olympiad in Informatics)] -D. Present(异或性质,按位拆分,树桩数组)
    [Educational Codeforces Round 83 ] E. Array Shrinking
    [AtCoder Beginner Contest 158]
    [CodeCraft-20 (Div. 2)]- E. Team Building (状压DP)
    HDU 3308 LCIS (线段树区间合并)
  • 原文地址:https://www.cnblogs.com/scf141592/p/5721401.html
Copyright © 2011-2022 走看看