JAVA中成员变量、局部变量、实例变量、类变量之间有什么关系?
java易混淆概念之类变量、实例变量、局部变量类变量、实例变量、局部变量类变量是类中独立于方法之外的变量,用static 修饰。实例变量也是类中独立于方法之外的变量,不过没有static修饰。局部变量是类的方法中的变量。Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一些Java工具和Java的核心类库(Java API)。Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。
java中局部变量具体是什么,可以干什么,有什么作用,
局部变量,也称内部变量,是指在一个函数内部或复合语句内部定义的变量。局部变量的作用域:1、主函数main()中定义的变量也只在主函数中有效,而不能因为在主函数中定义在整个文件或程序中有效。主函数也不能使用其他函数中定义的变量。因为主函数也是一个函数,它与其他函数是平行关系。这一点是与其他语言不同的,应予以注意。2、不同函数中可以使用相同名字的变量,它们代表不同的对象,分配不同的单元,互不干扰。3、形式参数是属于被调函数的局部变量。4、在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效,这种复合语句也称为“分程序”或“程序块”。作用:在Java等面向对象语言中,也可能出现多个局部变量重名的情况。例如一个方法的形式参数与类成员的名字相同,这时形式参数会把类成员屏蔽,如果要访问类成员,应该用this关键字。扩展资料全局变量的存在主要有以下一些原因:1、使用全局变量会占用更多的内存(因为其生命期长),不过在计算机配置很高的今天,这个不应该算什么问题,除非使用的是巨大对象的全局变量,能避免就一定要避免。2、使用全局变量程序运行时速度更快一些(因为内存不需要再分配),同样也快不了多少。3、对于局部变量的名字空间污染,这个在不使用太多变量时是可以避免的。4、当全局变量与局部变量重名的时候,起作用的是局部变量,全局变量被屏蔽掉。5、还可以用extern在函数外对全局变量声明,使全局变量的作用域从声明处到文件的结束。6、全局变量的优先度低于局部变量。参考资料来源:百度百科——全局变量参考资料来源:百度百科——局部变量
类成员变量和实例成员变量分别指什么有什么区别(举例说明)?
例如定义一个类:class Text{public static int number;public int temp;}如果你想访问temp属性,你就必须先创建一个Text的对象,才能访问:Text b = new Text();b.temp;这就是实例成员变量。而你想 访问number的话,不用创建Text的实例就可以访问,就像这样:Text.number.这就是类成员变量。主要区别就是访问是需不需要创建对象,而对于类成员变量,所有对象是共享一个变量的。扩展资料:数据成员可以分静态变量、非静态变量两种.静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用"类名.静态成员名"访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员 函数不能访问非静态的成员..因为静态成员存在于内存,所以非静态成员函数可以直接访问类中静态的成员.非静态成员:所有没有加Static的成员都是非静态成员,当类被 实例化之后,可以通过实例化的类名进行访问..非静态成员的生存期决定于该类的生存期..而静态成员则不存在生存期的概念,因为静态成员始终驻留在 内存中..一个类中也可以包含静态成员和非静态成员,类中也包括静态 构造函数和非静态构造函数..分两个方面来总结,第一方面主要是相对于 面向过程而言,即在这方面不涉及到类,第二方面相对于 面向对象而言,主要说明 static在类中的作用。参考资料:百度百科-成员变量
当全局变量和局部变量同名的时候,在局部变量的作用范围内,起作用的是____?
局部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内, 离开该函数后再使用这种变量是非法的。使用全局变量会占用更多的存(因为其生命期长),不过在计算机配置很高的今天,这个不成为什么问题,除非使用的是巨大对象的全局变量,能避免就一定要避免。扩展资料:局部变量的生存期:从函数被调用的时刻算起到函数返回调用处的时刻结束。局部变量的作用域是定义该变量的函数或定义该变量的复合语句。也就是说,局部变量只在定义它的函数或复合语句范围内有效,只能在定义它的函数或复合语句内才能使用它们。参考资料来源:百度百科-局部变量
成员变量与局部变量的区别?
从语法形式上看:成员变量是属于类的,而局部变量是在方法中定义的变量或是方法的参数;成员变量可以被 public,private,static 等修饰符所修饰,而局部变量不能被访问控制修饰符及 static 所修饰;但是,成员变量和局部变量都能被 final 所修饰。从变量在内存中的存储方式来看:如果成员变量是使用static修饰的,那么这个成员变量是属于类的,如果没有使用static修饰,这个成员变量是属于实例的。而对象存在于堆内存,局部变量则存在于栈内存。
从变量在内存中的生存时间上看:成员变量是对象的一部分,它随着对象的创建而存在,而局部变量随着方法的调用而自动消失。成员变量如果没有被赋初值:则会自动以类型的默认值而赋值(一种情况例外:被 final 修饰的成员变量也必须显式地赋值),而局部变量则不会自动赋值。