实例全局变量和实例变量类变量的区别

The following error occurred:
The requested URL was not found on this server.
Please check the URL or contact the webmaster.推荐这篇日记的豆列
&&&&&&&&&&&&15:21 提问
Ruby中实例变量与类变量有什么区别?
初次涉猎Ruby on Rails ,只有c和c++的基础,对于Ruby中实例变量和类变量的区别和用处不太清楚,希望大牛指导!
按赞数排序
以@开始的变量是【实例变量】,实例变量属于特定的对象。
class Person
def initialize(name, gender, age)
@name = name
@gender = gender
@age = age
上面的例子中,@name, @gender,@age都是实例变量。可以在类或子类的方法中引用实例变量。若引用尚未被初始化的实例变量的话,其值为nil。
【类变量】被一个类的所有实例对象共享,也可以被类方法访问到。类变量名以‘@@’,开始,例如‘@@number’。和全局变量,实例变量不同,类变量在使用前必须初始化:
class Person
@@number = 0 #使用前必须有初值
def initialize(name, gender, age)
@name = name
@gender = gender
@age = age
@@number += 1
类变量是私有的,在类外无法直接访问,你只能通过实例方法和类方法去访问它。
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
关于实例变量,类变量,局部变量,参数参照以下Java代码,以下四个叙述中最确切的是( )class A{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{
即 i 就是该Test类的静态成员变量.
那y就应该是静态变量,即类变量啊
实在是对不起,我自己没认真的思维罗列,然后误导你了,今天我去认认真真的看了java中对于
成员变量,实例变量,类变量,局部变量,参数的如何定义以及它们的作用范围。
咱们从头再来分析,这次我保证一定正确。
成员变量和局部变量
成员变量是在类中定义,是在堆内存中,有默认的初始值。
例如 变量类型
局部变量是定义在方法中,方法上也就是指的
方法名(局部变量,也叫参数列表)
定义main方法中的,方法上的,for循环语句的变量都是局部变量。
局部变量是在栈内存的,方法出栈了,局部变量也就消失了。
没有默认的初始值,必须初始化,不然无法访问。
成员变量中又分了了实例变量与类变量(static所修饰的成员变量)。
它们的区别:
实例变量的特点:
实例变量取决于类的实例。
每创建一个实例,java虚拟机就会为该类的实例变量分配一次内存。
类变量(静态成员变量)的特点:
类的静态成员变量在内存中只有一个。
可以直接通过类名来调用
静态成员变量随着类的加载而加载
静态变量位于方法区,被类的所有实例共享。
综上所述,那么这道题应该是这样的
// 该类的实例变量 默认值为0 // 该类的类变量(被static所修饰的成员变量) ,默认值为0
void fac(String s) // s为局部变量,即对象在调用该方法时需要传递给该方法的参数
Syatem. out. println("字符串:"+s);
那么应该选B。
之前的答案实在不好意思,搞乱你的思路了。
为您推荐:
扫描下载二维码}

我要回帖

更多关于 全局变量和实例变量 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信