Java千百问_03基本语法(001)_局部变量、类变量、实例变量有什么区别

局部变量、类变量、实例变量有什么区别

在聊局部变量、类变量、实例变量有什么区别之前,我们需要了解一下Java变量。

1、Java变量是什么

在数学世界中,我们知道有常量、变量。
举一个例子,小红和小蓝每个人都有带了钱,小蓝带了5元,小红的钱比小蓝多10元。对于这样一个场景,我们一般会使用方程式表达:
设小红的钱为x,小蓝的钱为y,其中x,y都是数字,得出方程式:
y=5;
x=y+10;
我们看一下这个过程,首先假设了2个x、y两个变量,然后根据逻辑写出2个为x、y赋值的方程式,方程式中有5、10两个常量。
在程序世界中,同样也有常量、变量。
与数学世界一样,我们会先声明变量(即数学中的假设变量,不同的是需要指定类型,不会占用内存),然后根据需要为变量赋值(这时会分配内存)。上面的例子用程序写出即:

[java] view plain copy

 

  1. int y=5;// 整型  
  2.   
  3. int x;  
  4. x=y+10;  

看了这个例子,可以总结出变量的定义:源于数学,是计算机语言中,能储存计算结果或能表示值的抽象概念。

在Java中,变量大体分为以下4类:类变量、常量、实例变量、局部变量

[java] view plain copy

  1. public class Test {  
  2.   
  3.     public static int classVar;// 类变量,即静态变量,关键词static  
  4.     public static final int constant = 10;// 常量,关键词static,final,是一种特殊的类变量,一定要在声明时赋值  
  5.     public int instanceVar;// 实例变量  
  6.     public void doTest() {  
  7.         int partVar;// 局部变量  
  8.     }  
  9. }  

明白了变量的概念后,我们分别看看Java中局部变量、类变量、实例变量、常量的区别。

2、类变量(静态变量)是什么:

如上面例子,类变量在类中用static关键字声明,在任意在方法、构造函数或代码块外部。

类变量在程序启动时被创建,在程序停止时被销毁。类变量被存储在静态存储器中。

类变量通过调用的类名来访问。 如:

[java] view plain copy

 

  1. public void doTest() {  
  2.     Test.classVar;  
  3. }  

类变量与对象毫无关系,无论有没有创建对象,创建了多少个对象,一个类变量永远只有一个副本。

3、常量是什么:

常量是标记为final关键字的类变量,类变量的特性常量均有,再次列出与类变量的区别。
如上面例子,声明常量时必须赋值,且赋值后不能改变其值。
常量名称一般都需要大写。

类变量被存储在常量存储器中。

4、 实例变量是什么:

如上面例子,实例变量在类中声明,在任意在方法、构造函数或代码块外部。
实例变量在一个对象"new"时创建,在对象被销毁时销毁。
实例变量是对象的一部分,同对象一样存储在堆中。
实例变量通过对象来访问。如果提供给外部对象的方法使用:

[java] view plain copy

 

  1. public void doTest() {  
  2.     Test test = new Test();  
  3.     test.instanceVar;//需要变量是public才能给外部对象使用  
  4. }  

如果提供给对象自己的方法使用:

[java] view plain copy

 

  1. public void doTest() {  
  2.     this.instanceVar;  
  3.     instanceVar;//也可以不加this直接使用  
  4. }  

5、 局部变量是什么:

如上面例子,局部变量在方法、构造函数或代码块中声明。

局部变量在进入方法、构造函数或块时创建,退出时被销毁。
局部变量在堆栈级别内部实现。
局部变量可以直接在方法中使用:

[java] view plain copy

 

  1. public void doTest() {  
  2.   int partVar;// 局部变量  
  3.     partVar = 1 + 1;  
  4. }  

原文地址:http://blog.csdn.net/ooppookid/article/details/50969733

时间: 2024-09-28 04:28:53

Java千百问_03基本语法(001)_局部变量、类变量、实例变量有什么区别的相关文章

Java千百问_03基本语法(002)_java都有哪些关键字

java都有哪些关键字 首先我们来看看什么是关键字,关键字的含义. 1.java关键字是什么意思 关键字是电脑语言里事先定义的,有特别意义的特殊标识符,又叫保留字. Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等等,Java规定关键字不能用作自定义标识符(包括变量名.方法名.类名.包名和参数等等). 2.java都有哪些关键字 目前共有50个Java关键字,如下.其中,"const"和"goto"这两个关键字在Java

Java千百问_03基本语法(004)_java中的运算符都有哪些

java中的运算符都有哪些 Java提供了丰富的运算符来操纵变量.如果不知道什么是变量,看这里:局部变量.类变量.实例变量有什么区别 我们可以把所有的Java操作符为以下几组(除位运算和其它运算符之外,其他几种操作无几乎是java中使用频率最高的语法): 算术运算符.关系运算符.逻辑运算符.赋值运算符.位运算符.其它运算符 下面来仔细说明.运算符的优先级看这里:java运算符的优先级是怎样的 1.算术运算符 算术运算符用于在数学表达式中,他们是在代数中使用的方法相同.假设整型变量a=20,b=1

Java千百问_03基本语法(010)_break与contine分别如何使用

break与contine分别如何使用 break,contine都是使用在循环体中的语句,都有终止执行的作用,具体不同看下面详解.循环语句看这里: 1.break关键字是如何使用的: break是用来停止整个循环.必须在循环体中或switch语句中(switch语法看这里:switch如何使用).它将停止本层循环的执行(多层循环只会停止break这一层,跳出后继续父级循环),并开始执行后续的代码.语法 break语法是任何循环中一个单独的语句: [java] view plain copy  

Java千百问_03基本语法(008)_switch如何使用

switch如何使用 switch允比对一个变量的值,来执行不同情况的代码. switch语句和if else语句类似,switch能够实现的功能if else完全可以实现,区别在于使用switch逻辑更为清晰.if else详情看这里:if else如何使用 语法: [java] view plain copy   switch(expression){   case value :   //Statements   break; //optional   case value :   //S

Java千百问_03基本语法(007)_if else如何使用

if else如何使用 Java中if else语句,是用来做逻辑判断的语法(另一种逻辑判断语句switch看这里:switch如何使用).使用方式非常简单,可以用if做单独判断,可以用if...else if...else做多逻辑判断,还可以嵌套使用.可以说是java中使用最为广泛的语句.下面来说明这个语句具体如何使用. 1.if语句如何单独使用: 首先,if语句的语法为: [java] view plain copy   if(Boolean flag)   {   //如果flag为tru

Java千百问_03基本语法(009)_java中如何循环执行

java中如何循环执行 首先,我们看看循环是什么 1.循环是什么 当我们需要多次执行同样的代码段,通常被称为一个循环.伴随循环经常出现的关键字:break与contine分别如何使用 Java有非常灵活的三种循环机制:while 循环do...while 循环for 循环 2.什么是while循环 while循环可以按照特定的次数重复执行任务. 语法: [java] view plain copy   while(Boolean flag)   {   //代码段   }   在执行时,如果fl

Java千百问_03基本语法(005)_二进制是怎样做位运算的

二进制是怎样做位运算的 程序中的所有数在计算机内存中都是以二进制的形式储存的.位运算说白了,就是直接对整数在内存中的二进制位进行操作.其他运算符看这里:java种的运算符都有哪些 大部分运算流程都是先将整数转换为二进制,然后进行相应二进制操作.常见的操作有如下几种: 下面我们详细说明,运算符的优先级看这里:java运算符的优先级是怎样的 1.按位与 and 两个二进制数进行按位与操作:相同位的两个数字都为1,则为1:若有一个不为1,则为0. 例如:00101 & 11100 = 00100 通常

Java千百问_03基本语法(003)_public、privite、protected有什么区别

public.privite.protected有什么区别 首先,public.privite.protected都是Java的修饰符,我们先看看Java修饰符是什么 1.java修饰符是什么 Java修饰符是用来修饰Java中的标识符(包括变量名.方法名.类名.包名和参数名等等)的,用来改变它们的含义的关键词. Java语言有各种各样修饰符,大体分为两类:访问控制修饰符.非访问控制修饰符.如图: [java] view plain copy   public class className {

Java千百问_05面向对象(001)_类、对象到底有什么秘密

1.类.对象的概念是什么 Java是目前应用最为广泛的面向对象特的语言,它具有以下基本概念: 类 对象 方法 抽象化 多态性 继承 封装 我们首先看看类和对象的概念. 类 类是一个模版.是一个可以定义一类具有相同属性.行为的模版.  例如:狗是一个类,它具有四肢.尾巴.头.脊椎等属性,具有吠叫.吃.繁殖等行为. 对象 对象是一个具体实例.根据是一个类的具体实例.  例如:我家对门养的一只狗,具体到了某一只. 2.Java如何定义类 类的定义如下︰ public class Dog{ String