java语言 百分网手机站

Java 中静态变量和实例变量区别

时间:2020-09-14 09:51:30 java语言 我要投稿

Java 中静态变量和实例变量区别

  Java的标准指的是一种作为应用层封装的标准,使用Java可以调用一些底层的操作。下面是小编分享的Java 中静态变量和实例变量区别,欢迎大家参考!

  Java 中静态变量和实例变量区别

  静态变量属于类,该类不生产对象,通过类名就可以调用静态变量。

  实例变量属于该类的对象,必须产生该类对象,才能调用实例变量。

  在程序运行时的区别:

  实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。

  静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。

  总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。

  例如,对于下面的'程序,无论创建多少个实例对象,

  永远都只分配了一个 staticInt 变量,并且每创建一个实例对象,这个 staticInt 就会加 1;但是,每创建一个实例对象,就会分配一个 random,

  即可能分配多个 random ,并且每个 random 的值都只自加了1次。

  public class StaticTest {

  private static int staticInt = 2;

  private int random = 2;

  public StaticTest() {

  staticInt++;

  random++;

  System.out.println("staticInt = "+staticInt+" random = "+random);

  }

  public static void main(String[] args) {

  StaticTest test = new StaticTest();

  StaticTest test2 = new StaticTest();

  }

  }

  执行以上程序,输出结果为:

  staticInt = 3 random = 3

  staticInt = 4 random = 3

  h七宝 h七宝

  135***8724@qq.com

  参考地址5个月前 (03-09)

  大白小爱

  362***275@qq.com静态变量是用来声明规则的,一旦固定都是用用来引用的,类似社会中的法律,规定好后你只能拿来说。但是也可以改的,通过重新的声明法律就行。

  大白小爱 大白小爱

  362***275@qq.com5个月前 (03-25)

  stinkaroo

  190***276@qq.comjava 实例变量在整个类内部是可访问的,而不管实例变量声明在类的哪个位置。

  import java.io.*;

  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;

  }

  比如在上面代码中,尽管实例变量声明在类的尾部,在之前方法中仍可访问。

  stinkaroo stinkaroo

  190***276@qq.com3个月前 (05-09)

  九仞

  528***187@qq.com类变量赋值方法

  无final修饰,声明时赋值,构造器中赋值,静态语句块或静态方法赋值

  有final修饰,声明时赋值,声明与赋值分开可在静态语句块中赋值

  public class StaticTest {

  private static int staticInt = 2;

  private int random = 2;

  public StaticTest() {

  staticInt++;

  random++;

  }

  public static void main(String[] args) {

  System.out.println("类变量与对象变量的值变化");

  StaticTest test = new StaticTest();

  System.out.println(" 实例1:staticInt:" + test.staticInt + "----random:" + test.random);

  StaticTest test2 = new StaticTest();

  System.out.println(" 实例2:staticInt:" + test.staticInt + "----random:" + test.random);

  System.out.println("静态变量赋值");

  System.out.println(" 静态语句块起作用:" + A.staticA);

  A a = new A();

  System.out.println(" 构造器起作用:" + a.staticA);

  a.toChange();

  System.out.println(" 静态方法1起作用:" + A.staticA);

  a.toChange2();

  System.out.println(" 静态方法2起作用:" + A.staticA);

  System.out.println("常量赋值");

  System.out.println(" 静态语句赋值:" + B.staticB);

  }

  }

  class A {

  public static String staticA ="A" ;

  //静态语句块修改值

  static{ staticA ="A1"; }

  //构造器修改值

  public A (){ staticA ="A2"; }

  //静态方法起作用

  public static void toChange(){ staticA ="A3"; }

  public static void toChange2(){ staticA ="A4"; }

  }

  class B {

  public static final String staticB ; // 声明与赋值分离

  static{ staticB ="B"; }

  }

  九仞 九仞

  528***187@qq.com2个月前 (06-14)

  Smiley

  448***628@qq.com类变量与实例变量的区别

  类变量可在类中直接使用,实例变量需实例化后才能使用。

  public class StaticTest {

  private 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);

【Java 中静态变量和实例变量区别】相关文章:

理解java和python类变量11-24

java变量和常量是什么介绍12-07

Java中静态绑定和动态绑定的区别11-25

设置java环境变量11-20

java设置环境变量11-20

java环境变量设置11-20

Java配置环境变量教程11-29

java环境变量的设置11-20

java环境变量设置检测11-20

java怎么设置环境变量11-20