Java变量类型,实例变量 与局部变量 静态变量


实例变量:
  • 实例变量在类中声明,但在方法的外面,构造函数或任何块。
  • 当空间分配给某个对象在堆中,插槽为每个实例变量创建值。
  • 当一个对象与使用关键字 “new” 来创建,在对象被销毁销毁创建的实例变量。
  • 实例变量认为必须由一个以上的方法,构造函数或块,或一个对象的状态的关键部分必须出现在整个类中引用的值。
  • 实例变量可以在使用前或后级的级别声明。
  • 访问修饰符可以给出实例变量。
  • 实例变量对于所有方法,构造函数和块在类中可见。通常,建议,使这些变量私有(接入层)。然而能见度子类可以给这些变量与使用访问修饰符。
  • 实例变量有默认值。对于数字的默认值是0,为布尔值是false和对象引用为null。值可以在声明或构造函数中分配。
  • 实例变量可以直接通过调用变量名的类的内部访问。然而在静态方法和不同的类(当实例变量被赋予访问)应使用完全限定名调用 ObjectReference.VariableName.
  •  1 public class Sample
     2 {
     3  private int a=1;  //实例变量
     4
     5  public void b()
     6  {
     7   int a=2;  //局部变量
     8   System.out.println("局部变量:a="+a);
     9   System.out.println("实例变量:a="+this.a);//局部变量的作用域内引用实例变量:this.变量名
    10  }
    11  public static void main(String[] args)
    12  {
    13   new Sample().b();
    14  }
    15 }                                                                                                                                        
    16  

    =========================================================================================

局部变量:

  • 局部变量的方法,构造函数或块中声明。
  • 创建局部变量的方法,构造函数或块时进入,一旦退出方法,构造函数或块中的变量将被销毁。
  • 访问修饰符不能用于局部变量。
  • 局部变量是可见的,只有内声明的方法,构造函数或块。
  • 局部变量在堆栈级别内部实现。
  • 在这里对局部变量没有默认值,因此局部变量应该声明和初始值应在第一次使用前分配。

例如:

在这里,age 是一个局部变量。这是定义里面 pupAge()  方法,其范围仅限于该方法。

 1 public class Test{
 2    public void pupAge(){
 3       int age = 0;
 4       age = age + 7;
 5       System.out.println("Puppy age is : " + age);
 6    }
 7
 8    public static void main(String args[]){
 9       Test test = new Test();
10       test.pupAge();
11    }
12 }

这将产生以下结果:

Puppy age is: 7

  

例如:

下面的示例使用 age 没有初始化它,所以它会在编译时给出错误信息。

 1 public class Test{
 2    public void pupAge(){
 3       int age;
 4       age = age + 7;
 5       System.out.println("Puppy age is : " + age);
 6    }
 7
 8    public static void main(String args[]){
 9       Test test = new Test();
10       test.pupAge();
11    }
12 }

编译它,这将产生以下错误:

Test.java:4:variable number might not have been initialized
age = age + 7;
         ^
1 error

类/静态变量:

  • 类变量也称为静态变量在类的static关键字声明的,但在方法外面,构造函数或块。
  • 每个类变量只有一个副本,不管有多少对象从它被创建。
  • 静态变量很少使用不是被声明为常量等。常量是被声明为公共/私营,最终和静态变量。常量变量从来没有从他们的初始值改变。
  • 静态变量被存储在静态存储器中。这是罕见的使用静态变量以外声明为final,用作公共或私有常数。
  • 在程序启动时的静态变量被创建,在程序停止销毁。
  • 能见度类似于实例变量。然而,大多数静态变量声明为 public,因为它们必须可用于类的使用者。
  • 默认值是相同的实例变量。对于数字,默认值是0;为布尔值,它是假的,和对象引用,它为null。值可以在声明或构造函数中分配。另外值可以在特殊的静态初始化块进行分配。
  • 静态变量可以通过调用与类名来访问。 ClassName.VariableName.
  • 当定义的变量为 public static final ,那么变量的名称(常量)都是大写。如果静态变量是不公开的和最终的命名语法是相同的实例变量和局部变量。

例子:

 1 import java.io.*;
 2
 3 public class Employee{
 4    // salary  variable is a private static variable
 5    private static double salary;
 6
 7    // DEPARTMENT is a constant
 8    public static final String DEPARTMENT = "Development ";
 9
10    public static void main(String args[]){
11       salary = 1000;
12       System.out.println(DEPARTMENT+"average salary:"+salary);
13    }
14 }

这将产生以下结果:

Development average salary:1000

注意:如果变量是从外部类访问的常数应被访问 Employee.DEPARTMENT

时间: 2024-08-07 03:19:58

Java变量类型,实例变量 与局部变量 静态变量的相关文章

实例、局部、静态变量(java)

实例变量:如果在类的方法代码段之外声明且没有限定词static,则为实例变量.实例是对象的另一种叫法. 局部变量:如果在类的方法体之中声明,则为局部变量.() 静态变量:如果将一个实例变量声明为static,则为静态变量,或称之为类变量. 静态变量在类声明后就可以直接引用,但实例变量必须在实例化对象后才可以使用. 静态变量既不在栈中,也不在堆中,专门放在静态存储区中.(如书中的v2=0=200=400,最后v2的值就是400) 静态方法和类是同时出现的, 后出生的可以访问先出生的, 类名不可以访

成员变量和局部变量,静态变量的区别

成员变量和局部变量,静态变量的区别 1.成员变量和局部变量的区别 1)在类中的位置不同 成员变量:在类中方法外 局部变量:在方法定义中或者方法声明上 2)在内存中的位置不同 成员变量:在堆内存(成员变量属于对象,对象进堆内存) 局部变量:在栈内存(局部变量属于方法,方法进栈内存) 3)生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 4)初始化值不同 成员变量:有默认初始化值 局部变量:没有默认初始化值,必须定义,赋值,

java之登录实例(面向对象,静态,scanner等)

分析:抽取用户类,提取出用户的属性,方法 用户类测试:判断登陆,注册等 User : 用户类    package cn.my.login; import java.util.Scanner; /** *  分析:用户的基本信息 *  用户名,密码,邮箱,电话,地址 *  登录,注册方法 * */public class User { private String username; private String password; private String email; private S

成员变量(实例变量)&局部变量&静态变量(类变量)的区别

成员变量(实例变量)&局部变量区别: (1)作用域 成员变量:针对整个类有效. 局部变量:只在某个范围内有效.(一般指的就是方法,语句体内) (2)存储位置 成员变量:随着对象的创建而存在,随着对象的消失而消失,存储在堆内存中. 局部变量:在方法被调用,或者语句被执行的时候存在,存储在栈内存中. 当方法调用完,或者语句结束后,就自动释放. (3)初始值 成员变量:有默认初始值. 局部变量:没有默认初始值,使用前必须赋值. 成员变量(实例变量)&静态变量(类变量)区别: A:调用方式 静态变

20141223--全局使用局部变量+静态变量-01

回顾 运算符:算术,比较,逻辑,赋值,三目,错误抑制,位运算(三码),自操作,字符串 执行结构:顺序,分支(if和switch),循环(for,while,do-while,foreach) 函数:自定义函数(函数名,参数(形参,实参),函数体,返回值) 自定义函数 返回值 返回值指的当函数调用结束以后,该函数给外部调用处返回一些列的数据(数据类型任意:八个数据类型) 如果函数没有任何返回值,可以理解为函数返回的是NULL. PHP中函数可以没有返回值. 参数传值 传值方式:值传递(默认的)和引

java基础(static---静态方法和静态变量以及静态方法)

静态变量 static变量也称作静态变量,静态变量和非静态变量的区别是: 静态变量:静态变量被类中所有的对象所共享,它将变量值存储在一个公共的内存地址,因为地址公共,所以如果某个对象修改了静态变量的值,那么同一个类的所有对象都会受到影响. 非静态变量:非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响. 静态方法 静态变量和方法可以在不创建对象的情况下进行访问. 静态方法与实例方法的区别: 静态方法:静态方法会随着类的定义而被分配和装载入内存中.静态方法

Java非静态内部类中为什么不能有静态变量却可以有常量?

如:public class InnerClassDemo{ int x; class A{ static int a = 0;//这样写是不合法的. static final int b=0;//这样写是合法的    }}解答:简单说,定义一个静态的域或者方法,要求在静态环境或者顶层环境,这里静态环境具体说,你的例子里如果加上 static class A就ok.非静态内部类 依赖于一个外部类对象,而静态域/方法是不依赖与对象——仅与类相关,因此,非静态内部类中不能定义静态域/方法,编译过不了

PHP接口中的静态变量、常量与类中静态变量、常量的区别

接口: 1 不能够定义静态变量(常量除外) 2 定义的常量 const YOUCONST = VALUE,不能在子类中覆盖,在子类中以 interfaceName::YOUCONST的方式调用 3 不能使用parent::YOUCONST的方式调用接口的常量 类: 1 const 变量可以使用parent::YOUCONST的方式,className::YOUCONST的方式在子类中访问 2 const定义的变量,在子类中可以被覆盖 3 当然在类中可以定义静态成员变量了 示例: <?phpint

Java中的静态变量、实例变量和局部变量及其特征

变量类型 说明 特征 类变量(静态变量) 独立于方法之外的变量,用   static 修饰 类变量也称为静态变量,在类中以static关键字声明,但必须在方法构造方法和语句块之外.     无论一个类创建了多少个对象,类只拥有类变量的一份拷贝.     静态变量除了被声明为常量外很少使用.常量是指声明为public/private,final和static类型的变量.常量初始化后不可改变.     静态变量储存在静态存储区.经常被声明为常量,很少单独使用static声明变量.     静态变量在