java局部变量
㈠ java中可以通过对象调用局部变量吗
是可以的,用final修饰的变量的值或者引用就不能再改变了。
比如你要把一个新开一个线程要用到一个局部变量,那这个变量就必须用final修饰。
㈡ java局部变量和全局变量,看我的补充说明
先看这个例子
--------------------------------------------------------------
public
class
Variable
{
//
成员变量
String
name
=
"成员变量";
public
static
void
main(String[]
args)
{
//
新建类对象
Variable
variable
=
new
Variable();
//
调用对象的方法local方法
variable.local();
}
void
local()
{
//
局部变量
String
name
=
"局部变量";
//
在方法体内打印变量name
System.out.println(name);
//
用this指向对象本身.this.name,为对象(Variable类对象)
System.out.println("打印:"
+
this.name);
}
}
---------------------------------------------------------
再看这个例子
----------------------------------------------------
public
class
Variable
{
//
成员变量
String
name
=
"成员变量";
public
static
void
main(String[]
args)
{
//
新建类对象
Variable
variable
=
new
Variable();
//
调用对象的方法local方法
variable.local();
variable.local2("不知道");
}
void
local()
{
//
局部变量
String
name
=
"局部变量";
//
在方法体内打印变量name
System.out.println(name);
//
用this指向对象本身.this.name,为对象(Variable类对象)
System.out.println("打印:"
+
this.name);
}
void
local2(String
name)
{
//
成员变量name的值,等于传进来的namn值
//
也就是方法传参,这个参数名实际上是可以随意改变的
//
this同样指向了当前对象,比如main方法中实例化的variable对象
//
在这里只是改变了当前对象中name变量的值,但是并没有影响到局部变量name的值
this.name
=
name;
//
这里打印的name还是局部变量
//也就是方法传入的参数
System.out.println("我打印的还是局部变量的值"
+
name);
}
}
----------------------------------------------------------
分析一下你给的例子
----------------------------------------------
import
java.io.*;
public
class
A
{
int
i
=
1;
void
Fun()
{
int
i
=
0;
i
=
this.i;
//
A
q=new
A();
//
System.out.println(this.i);
System.out.println(i);
}
public
static
void
main(String
args[])
{
A
a=new
A();
a.Fun();
}
}结果为1
㈢ java中什么叫局部变量
局部变量时只有局部可见的变量,比如定义在方法中的变量,只有这个方法可以使用,同一个类的其他方法或者其他的类都不可见。动态多态,我不懂,多态倒是知道一点点,多态是面向对象编程的巨大优势,多态其实就是多种形态或者多种状态的意思,比如狗这种动物,他们都会跑,会叫,会吃饭,但是狗的概念太泛泛了,太大了,某一种狗,比如泰迪,雪纳瑞,他们都会狗的跑、叫、吃饭,但他们又都自己有自己的属性,比如毛发等,同一种泰迪也有不同,比如毛色,年龄等等,这其实就是java以及所有面向对象语言最具有特点的抽象和多态。从每一只狗到狗,这是抽象,抽象出所有狗都具有的特点,从狗到每一只狗就是多态,他们都是狗,但是却是用自己的不同形态来显示在我们眼前的。
㈣ java局部变量和全局变量的区别
全局变量说错了吧,应该是成员变量。
成员变量:定义在类中,其类中的所有方法都可以调用。
局部变量:定义在方法中,只有方法自身可以调用,同类其他方法不可以访问。
比如:
class
Person{
//定义一个Person类
String
name;
//定义一个成员变量name
public
void
Study(){
//定义一个Study方法
int
age;
//定义一个Study方法中的局部变量age
name="张三";
//可以给成员变量赋值
age=12;
//可以给方法自身的局部变量赋值
}
public
void
Student(){
//定义一个Student方法
name="李四";
//可以给成员变量赋值
age=12;
//错误,不可以给Study方法中的局部变量age赋值;
}
}
㈤ JAVA中局部变量和成员变量的区别
根据定义变量位置的不同,可以将变量分为成员变量和局部变量
成员变量是在类范围内定义的变量
局部变量是在一个方法内定义的变量
成员变量可以分为:
实例属性 (不用static修饰):随着实例属性的存在而存在
类属性 (static修饰):随着类的存在而存在
成员变量无需显式初始化,系统会自动对其进行默认初始化
局部变量可分为:
形参(形式参数): 在整个方法内有效
方法局部变量 (方法内定义):从定义这个变量开始到方法结束这一段时间内有效
代码块局部变量 (代码块内定义):从定义这个变量开始到代码块结束这一段时间内有效
局部变量除了形参外,都必须显示初始化,也就是要指定一个初始值,否则不能访问。
还有,在内存中的位置也不一样。成员变量在所在类被实例化后,存在堆内存中;局部变量在所在方法调用时,存在栈内存空间中。
㈥ java中成员变量和局部变量的区别
成员变量:
1、成员变量定义在类中,在整个类中都可以被访问。
2、成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。
3、成员变量有默认初始化值。
局部变量:
1、局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。
2、局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。
3、局部变量没有默认初始化值
在使用变量时需要遵循的原则为:就近原则
首先在局部范围找,有就使用;接着在成员位置找。
㈦ 什么是java的局部变量、成员变量和全局变量
1、局部变量:在方法内定义的变量称为“局部变量”或“临时变量”,方法结束后局部变量占用的内存将被释放。
2、成员变量:在类体的变量部分中定义的变量,也称为字段。
3、全局变量:全局变量,又称“外部变量”,它不是属于哪个方法,作用域从定义的地址开始到源文件结束。