• Java知识10 变量类型【多测师】


    类变量(静态变量):独立于方法之外的变量 用static修饰
    实例变量:独立于方法之外的变量 没有static修饰 //必须先创建一个对象 实例化
    局部变量(类方法中的变量):类的方法中的变量
    成员变量(直接可被类调用和访问、非静态变量):独立于方法之外 类似:String a=‘xiao'
    重点:静态变量是用来声明规则的,一旦固定都是用来引用的类似法律,规定好后只需拿来用,但是也可以改
    通过重新的声明法律就习惯
    public class Variable{ 
        static int allClicks=0; // 类变量 
        String str="hello world"; // 实例变量 
        public void method(){ 
            int i =0; // 局部变量 
        }
    }
    
    重点:实例变量和成员变量的区别:
    主要的区别:就是访问是否需要创建对象、而对于类成员变量、所有对象是共享一个变量的
    class Text{
        public static int number;
        public int temp;
    }
    如上:要访问temp属性、必须先创建一个Text对象 才能访问:Text b =new Text();
    b.temp 这个就是实例成员变量
    而想访问number的话 不用创建Text的实例直接可以访问 Text.number 这就是类成员变量
    
    一、局部变量
    举例子:
    以下实例中age是一个局部变量 定义在pupAge()方法中 它的作用域在这个方法中
    public class Test {
      public void pupAge() {
       int age = 0;
       age = age + 7;
       System.out.println("小狗的年龄是: " + age);
      }
    
      public static void main(String args[]) {
       Test test = new Test(); //创建一个对象进行实例化
       test.pupAge(); //用实例化的对象调用pupAge()方法
      }
    }
    
    二、实例变量
    public class Employee {
      // 这个实例变量对子类可见
      public String name;
      // 私有变量,仅在该类可见
      private double salary;
    
      // 在构造器中对name赋值
      public Employee(String empName) {
       name = empName;
      }
    
      // 设定salary的值
      public void setSalary(double empSal) {
       salary = empSal;
      }
    
      // 打印信息
      public void printEmp() {
       System.out.println("名字 : " + name);
       System.out.println("薪水 : " + salary);
      }
    
      public static void main(String args[]) {
       Employee empOne = new Employee("RUNOOB");
       empOne.setSalary(1000);
       empOne.printEmp();
      }
    }
    运行结果: 
    名字 : RUNOOB
    薪水 : 1000.0
    
    三、类变量 static修饰
    public class Employee {
      // salary是静态的私有变量
      private static double salary;
      // DEPARTMENT是一个常量
      public static final String DEPARTMENT = "开发人员";
    
      public static void main(String args[]) {
       salary = 10000;
       System.out.println(DEPARTMENT + "平均工资:" + salary);
      }
    }
    运行结果: 开发人员平均工资:10000.0
    
    四、实例变量在整个类内部都是可访问的、而不管实例变量声明在类的哪个位置
    public class Employee {
    
      public Employee(String empName) {
       name = empName;
      }
    
      public void setSalary(double empSal) {
       salary = empSal;
      }
    
      public void printEmp() {
       System.out.println("name:" + name);
       System.out.println("salary:" + salary);
      }
    
      public static void main(String args[]) {
       Employee empOne = new Employee("RUNOOB");
       empOne.setSalary(1000);
       empOne.printEmp();
       System.out.println(empOne.salary);
      }
    
      public String name;
      private double salary;
    }
    运行结果:
    name:RUNOOB
    salary:1000.0
    1000.0
    
    五、类变量可在类中直接使用、实例变量需实例化后才能使用
    public class StaticTest {
        public static int staticInt= 2;
        private int random = 2;
    
        public static void main(String[] args) {
      System.out.println(staticInt);
      StaticTest test = new StaticTest();
      System.out.println(test.random);
        }
    }
    
    六、类的静态数据成员值被所有对象共享,任何对象都可以访问类的静态数据成员。但是他们使用的是同一个数据,操作的是同一块内存,无论哪个对象修改了它,对其他对象来说,他已经变了。
    class A {
      static int i;
    
      void change(int i1) {
       i = i1;
      }
    }
    
    public class Test {
      public static void main(String args[]) {
       A.i = 10;
       A a = new A();
       A b = new A();
       System.out.println(A.i + "," + a.i + "," + b.i);// 10,10,10
       a.change(40);
       System.out.println(A.i + "," + a.i + "," + b.i);// 40,40,40
       b.i += 10;
       System.out.println(A.i + "," + a.i + "," + b.i);// 50,50,50
      }
    }
    运行结果:
    10,10,10
    40,40,40
    50,50,50
  • 相关阅读:
    Go语言之基本数据类型
    GO语言结构、变量和常量
    Go语言介绍及环境准备
    js中的 || 和 &&
    面试记录
    惠普打印机M180N,不小心点了 升级(含固件)之后,出现错误码ER11 不是别国产硒鼓,降级固件地址如下:
    C#调用webservice wsdl文件
    C# 利用VS自带的WSDL工具生成WebService服务类
    GridView添加统计(合计)行
    联通物联网卡ICCID号校验位算法
  • 原文地址:https://www.cnblogs.com/xiaoshubass/p/13110756.html
Copyright © 2020-2023  润新知