关于实例变量,类变量,局部变量,参数

问题描述:

关于实例变量,类变量,局部变量,参数
参照以下Java代码,以下四个叙述中最确切的是( )
class A{
int x; static int y;
void fac(String s){Syatem.out.println("字符串:"+s);}
}
A.x、y和s都是成员变量
B.x是实例变量、y是类变量、s是局部变量
C.x和y是实例变量、s是参数
D.x、y和s都是实例变量

选C
首先你得知道java中数据类型分为基本数据类型与引用数据类型.
基本数据类型:btye short int long float double char boolean
引用数据类型:String Array 等等等...(简单理解,需要new的就是引用数据类型)
int类型的数据就是基本数据类型.
不管它是不是添加了static静态修饰符的变量,它都是基本数据类型.(不要把被static修饰的变量理解错误了.)
定义在类里面的就叫做实例变量,实例变量也叫成员变量,还叫全局变量,说白了都是一个意思.
定义在方法体里面的就叫做局部变量,也就是方法名()括号里面的东西就叫做方法体.
看下面的例子,希望你理解能深刻些.
class 类名{
// 实例变量(成员变量,全局变量)
void 方法名(参数){ // 参数可以一个或多个或不写,主要看需求
// 局部变量
// 方法体 System.out.println("");
}
}
都是手写的.还有楼主你的问题分类,应该分在java比较好.那静态变量是怎么定义的静态变量说白了就是添加static修饰符而已。例如:class Test{static int i; }即 i 就是该Test类的静态成员变量.那y就应该是静态变量,即类变量啊实在是对不起,我自己没认真的思维罗列,然后误导你了,今天我去认认真真的看了java中对于成员变量,实例变量,类变量,局部变量,参数的如何定义以及它们的作用范围。咱们从头再来分析,这次我保证一定正确。成员变量和局部变量成员变量是在类中定义,是在堆内存中,有默认的初始值。例如 变量类型初始值 Stringnull int 0 booleanfalse局部变量是定义在方法中,方法上也就是指的方法名(局部变量,也叫参数列表) 例如:定义main方法中的,方法上的,for循环语句的变量都是局部变量。局部变量是在栈内存的,方法出栈了,局部变量也就消失了。没有默认的初始值,必须初始化,不然无法访问。成员变量中又分了了实例变量与类变量(static所修饰的成员变量)。它们的区别: 实例变量的特点:实例变量取决于类的实例。每创建一个实例,java虚拟机就会为该类的实例变量分配一次内存。 类变量(静态成员变量)的特点:类的静态成员变量在内存中只有一个。可以直接通过类名来调用静态成员变量随着类的加载而加载静态变量位于方法区,被类的所有实例共享。综上所述,那么这道题应该是这样的class A{int x;// 该类的实例变量 默认值为0static int y; // 该类的类变量(被static所修饰的成员变量) ,默认值为0void fac(String s) // s为局部变量,即对象在调用该方法时需要传递给该方法的参数{Syatem. out. println("字符串:"+s);}}那么应该选B。 之前的答案实在不好意思,搞乱你的思路了。