成员变量 局部变量 类变量

成员变量和局部变量的区别

成员变量:

1、成员变量定义在类中,在整个类中都可以被访问。

2、成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。

3、成员变量有默认初始化值。

局部变量:

1、局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。

2、局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。

3、局部变量没有默认初始化值

在使用变量时需要遵循的原则为:就近原则

首先在局部范围找,有就使用;接着在成员位置找。

由static修饰的变量称为静态变量,其实质上就是一个全局变量。如果某个内容是被所有对象所共享,那么该内容就应该用静态修饰;没有被静态修饰的内容,其实是属于对象的  特殊描述。

成员变量和静态变量的区别:

1、成员变量所属于对象。所以也称为实例变量。

静态变量所属于类。所以也称为类变量。

2、成员变量存在于堆内存中。

静态变量存在于方法区中。

3、成员变量随着对象创建而存在。随着对象被回收而消失。

静态变量随着类的加载而存在。随着类的消失而消失。

4、成员变量只能被对象所调用 。

静态变量可以被对象调用,也可以被类名调用。

所以,成员变量可以称为对象的特有数据,静态变量称为对象的共享数据。

成员分两种:

1、成员变量。(数据共享时静态化)

该成员变量的数据是否是所有对象都一样:

如果是,那么该变量需要被静态修饰,因为是共享的数据。

如果不是,那么就说这是对象的特有数据,要存储到对象中。

2、成员函数。(方法中没有调用特有数据时就定义成静态)

如果判断成员函数是否需要被静态修饰呢?

只要参考,该函数内是否访问了对象中的特有数据:

如果有访问特有数据,那方法不能被静态修饰。

如果没有访问过特有数据,那么这个方法需要被静态修饰。

时间: 2024-10-05 06:16:02

成员变量 局部变量 类变量的相关文章

成员变量&&局部变量

一.相同点:1.都遵循变量的声明格式:(修饰符) 数据类型  变量名=初始化值 2.都有各自的作用域 二.不同点:1.声明的位置不同      成员变量:声明在类内,方法外. 局部变量:声明在方法内.方法的形参部分.代码块内 2.成员变量的修饰符有四个:public    private     protected     缺省 局部变量没有修饰符,硬要说有的话,与他的所在方法的修饰符相同 3.初始化值 成员变量:在声明的时候如果没有显示的赋值,各自数据类型有自己的默认初始化值 byte sho

成员变量、类变量、局部变量的区别

一:成员变量和局部变量的区别 1.范围: 员变量定义在类中,在整个类中都可以被访问. 局部变量定义在局部范围内,如:函数内,语句内等. 2.存储: 成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中. 局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放. 3.默认值: 成员变量有默认初始化值: 局部变量没有默认初始化值 . 二:成员变量和静态变量的区别: 1.成员变量存在于堆内存中. 静态变量存在于方法区中. 2.成员变量所属于对象.所以也称为实例变量. 静态变

成员变量,局部变量,栈,堆的关系

变量主要有类变量.成员变量.局部变量三种. 变量主要有类变量.成员变量.局部变量三种. 类变量的的格式如下 class ClassA: static int age; 也就是说,类变量是定义在类中(而不是方法中)并且有static 修饰的变量. 成员变量的格式如下: class ClassB: int age; 也就是说,成员变量是定义在类中,但是没有static 修饰的变量. 局部变量呢,则是定义在方法中的(注意:JAVA中不怎么用函数这种说法的).比如最常见的. class ClassC:

成员变量 局部变量

java局部变量和成员变量 在java中,局部变量必须初始化:成员变量可以不用初始化,系统自动初始化. class A{ int a; //成员变量 public static void main (String args){ int b; //局部变量 } } 区别: 1)成员变量在类中,局部变量在方法中 2)声明成员变量时可以不初始化(被final修饰且没有static的必须显式赋值),而局部变量必须手动初始化 3)成员变量可以被public.protected.private.static

java中的成员变量、类变量,成员方法、类方法 属性和方法区别

成员变量:包括实例变量和类变量,用static修饰的是类变量,不用static修饰的是实例变量,所有类的成员变量可以通过this来引用. 类变量:静态域,静态字段,或叫静态变量,它属于该类所有实例共有的属性.而且所有的实例都可以修改这个类变量的值(这个类变量没有被final修饰的情况),而且访问类变量的时候不用实例,直接用类名.的方式就可以. 成员方法:包括实例方法和类方法,用static的方法就是类方法,不用static修饰的就是实例方法.实例方法必须在创建实例之后才可以调用. 类方法:和类变

面向对象-类-成员变量-局部变量-this

1.能够理解面向对象的思想     面向对象是基于面向过程的编程思想,强调的是对象,由对象去调用功能.它是一种更符合人类习惯的编程思想,可以将复杂的事情简单化,将我们的角色从执行者变成了指挥者. 2.能够明确类与对象关系     类是客观世界中相关事物的基本特征抽象.对象是该类事物的具体体现.比如手机是一个类,而iphone7就是一个对象. 3.定义学生类 public class Student{     //成员变量     String name;     int age; //成员方法 

Java基础——成员变量、局部变量和静态变量的区别

之前在刚开始学习Java的时候,就谈了谈Java基础中的变量,虽然知道这货以后会经常用到,但没想到了基本语法这里,竟然有冒出来了成员变量.局部变量和静态变量.变来变去太容易让人搞晕了,挑拣出来梳理一下喽! 要想区分这哥仨,首先,我们得知道它们分别是什么.先从成员变量下刀. 成员变量 我们来研究一个事物: 属性:外在特征:例如人的身高,体重 行为:能够做什么:例如人有说话,打球等行为. 而在Java语言中,最基本的单位是类,类就是用来体现事物的. 用类class来描述事物也是如此: 属性:对应类中

实例变量和类变量的区别

类体的定义包括成员变量的定义和方法的定义,并且成员变量又分为实例变量和类变量,用 static 修饰的变量是类变量.那么类变量和实例变量有什么区别呢 我们已经知道 一个类通过使用 new 运算符可以创建多个不同的对象,这些对象将被分配不同的内存空间,现在再说得准确些就是 不同的对象的实例变量将被分配不同的内存空间,如果类中的成员变量有类变量,那么所有的对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其它对象的这个类变量.也就是说对象共享类变量. 如 class Take

java 成员变量、局部变量、静态变量、类变量、非静态变量、实例变量、向前引用、非法向前引用、静态代码块、非静态代码块

①java类的成员变量有俩种: 一种是被static关键字修饰的变量,叫类变量或者静态变量 另一种没有static修饰,为成员变量 ②通俗点说: 类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享.静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期. 而实例变量取决于类的实例.每创建一个实例,java虚拟机就会为实例变量分配一次内存,实例变量位于堆区中,其生命周期取决于实例的生命周期. 注意点: 1.JAVA中初始化