java类的实例变量
A. java中如何理解类属性、实例属性、类成员变量、实例变量、类变量、field这些名称概念呢
这是在做题还是干嘛。。
实际上会用就行,没必要死抠概念。java中没有内置的属性概念,只有get set方法包装。
C#里默认有属性。
B. JAVA中的实例变量,嗯百度变量,和类变量,都有什么不同,能详细解释吗
java类的成员变量有俩种:
一种是被static关键字修饰的变量,叫类变量或者静态变量;
另一种没有static修饰,为实例变量。
类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享。静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期。
而实例变量取决于类的实例。每创建一个实例,java虚拟机就会为实例变量分配一次内存,实例变量位于堆区中,其生命周期取决于实例的生命周期。
public class Temp {
int t; //实例变量
public static void main(String args[]){
int t=1; //局部变量
System.out.println(t); //打印局部变量
Temp a= new Temp(); //创建实例
System.out.println(a.t); //通过实例访问实例变量
}
}
结果为:
1
0 (成员变量具有缺省值 而局部变量则没有)
把代码改为
public class Temp {
static int t; //类变量
public static void main(String args[]){
System.out.println(t); //打印类变量
int t=1; //局部变量
System.out.println(t); //打印局部变量
Temp a= new Temp(); //创建实例
System.out.println(a.t); //通过实例访问实例变量
}
}
结果则为
0
1
0
不知道你的实例变量和网络变量啥意思啊
C. 在JAVA中什么是实例变量
在java变量分为实例变量和静态变量
方法实例方法和静态方法
如
class Example{
int data;//定义实例变量,也叫成员变量
public void method(){
.....
}
static int count = 0;//定义静变量
public static func(){ //静态方法
......
}
public void static main(String arg[]){
Example e = new Example();//实例化一个对象
e.data = 0;//若要调用实例变量,则必须通过对象e来调用
count++;//要调用静态变量,则在这里直接调用
//同样,实例方法和静态方法也是如此
}
}
如果要在其它类中调用实例变量,则用 类.对象.实例变量,(如果实例变量是public)
若调用静态方法,用 类.方法 调用。
实例变量和实例方法是 对象的属性,
而静态变量和静态方法是 类的属性。
D. java中类变量、实例变量和局部变量有何区别
类变量:
比较特殊的实例变量,用static修饰的,一个类共用这个变量,所有由这类生成的对象都共用这个变量,类装载时就分配存储空间。一个对象修改了变量,则所以对象中这个变量的值都会发生改变。
实例变量:
从属于类,由类生成对象时,才分配存储空间,各对象间的实例变量互不干扰,能通过对象的引用来访问实例变量。
局部变量:
方法中或者某局部块中声明定义的变量或方法的参数被称为局部变量
E. java 中,什么是实例变量(Instance Variables)
实例变量就是实例化该类对象才调用的非静态变量!
class A{
int i;//实例变量
public void mack() {
int m =1;//局部变量
}
}
单你new 一个A的对象的时候!对象就会在内存中为i分配一个内存!你就可以调用该变量!单你调用mack方法时候才会为m分配内存进行调用!
F. JAVA中成员变量、局部变量、实例变量、类变量之间有什么关系
java易混淆概念之类变量、实例变量、局部变量
类变量、实例变量、局部变量类变量是类中独立于方法之外的变量,用static 修饰。
实例变量也是类中独立于方法之外的变量,不过没有static修饰。
局部变量是类的方法中的变量。
G. 实例变量的java中的实例变量:
实例变量:定义在类中但在任何方法之外。(New出来的均有初始化)
当一个对象被实例化之后,每个实例变量的值就跟着确定;
实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息;
实例变量可以声明在使用前或者使用后;
访问修饰符可以修饰实例变量;
实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见;
实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;
实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObejectReference.VariableName。 局部变量:定义在方法之中的变量。
1. 局部变量要先赋值,再进行运算,而实例变量均已经赋初值。(这是局部变量和实例变量的一大区别)
2. 实例变量的对象赋值为null。
3. 局部变量不允许范围内定义两个同名变量。实例变量的作用域在本类中完全有效,当被其他的类调用的时候也可能有效。
4. 实例变量和局部变量允许命名冲突。 public class Sample
{
private int a=1; //实例变量
public void b()
{
int a=2; //局部变量
System.out.println(局部变量:a=+a);
System.out.println(实例变量:a=+this.a);//局部变量的作用域内引用实例变量:this.变量名
}
public static void main(String[] args)
{
new Sample().b();
}
}
运行输出:
局部变量:2
实例变量;1
H. JAVA中静态变量和实例变量的区别
Java类的成员变量有2种:一种是被static关键字修饰的变量,叫类变量或者静态变量;另一种没有static修饰,为实例变量。
在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。
在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。
类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享。静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期。
而实例变量取决于类的实例。每创建一个实例,java虚拟机就会为实例变量分配一次内存,实例变量位于堆区中,其生命周期取决于实例的生命周期。
I. java中什么是实例变量,类变量,局部变量
类变量是在类中定义和存储的,它们的值适用于类及其所有实例。而当类被实例化成为一个实例化对象的时候,对象中的变量将会成为实例变量。
每个实例都将有实例变量的一个拷贝,它们可以修改实例变量的值,而不会影响其他的实例;而类变量只有一个拷贝,修改它的值将影响所有的实例。
只在特定的过程或函数中可以访问的变量,被称为局部变量。与局部变量相对应的,是全局变量。全局变量就是从定义的位置起,作用域覆盖整个程序范围的变量。
局部变量可以和全局变量重名,但是局部变量会屏蔽全局变量。在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。
J. java里类变量和实例变量的区别
每次创建一个类的对象的时候,系统为它创建了类的每一个实例变量的副本。我们就可以从对象中访问该实例变量。
类变量或说静态变量跟实例变量是不一样的,不管为一个类创建了多少个对象,系统只为每个类变量分配一次存储空间。系统为类变量分配的内存是在执行main方法时马克-to-win, 就是在程序最最开始的时候(见下面StaticDemo的例子)。所有的对象共享了类变量。可以通过对象或者通过类本身来访问类变量。
Staticfields
Afielddefineasstatic,
Instancefields
Afielddefinewithoutstatic,
顺便提一句:通常用下面的形式,定义类的常量。(类或实例都可以访问)
staticfinaldoublePI=3.14159;
静态方法(方法前冠以static)和实例方法(前面未冠以static)的区别
调用静态方法或说类方法时,可以使用类名做前缀,也可以使用某一个具体的对象名;通常使用类名。
非static的方法是属于某个对象的方法,而static的方法是属于整个类的,不被任何一个对象单独拥有;
由于static方法是属于整个类的,所以它不能操纵和处理属于某个对象的成员变量,而只能处理属于整个类的成员变量,也即,static方法只能处理static域或静态方法。实例方法可以访问实例域, 静态域或静态方法, 记住都行。
声明为static的方法有以下几条限制: 1.它们仅能调用其他的static方法。
2.它们只能访问static数据。
3.它们不能以任何方式引用this或super(关键 字super与继承有关,在下一章中描述)。
—this
So,
Static
methodcan’;itcanonlyinvoke
otherstaticclassmembers.Itcanaccessclassmembersonly.
instancecanusestaticmethod.
Instancemethods:
,
.Instancemethods
areassociatedwithobjects–notclasses.
.
classStaticExa{
staticinta=4;
staticintb=9;
staticvoidcall(){
System.out.println("a="+a);//静态方法可以访问静态属性
}
}
publicclassTest{
staticintc=43;
publicstaticvoidmain(Stringargs[]){
/*刚运行到这一步时,debug观察,StaticExa.a的值就等于42,Test.c的值就等于43,
说明系统在我们的程序一开始时,就会给所有的类变量赋值。如果是对象参考,就是null,
见photoshop的例子*/
System.out.println("开始观察StaticExa.a和Test.c");
详情网上找“马克-to-win”,参考他的网站或他的网络空间:java第2章的内容