成员变量、类变量、局部变量的区别_第1页
成员变量、类变量、局部变量的区别_第2页
成员变量、类变量、局部变量的区别_第3页
成员变量、类变量、局部变量的区别_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、成员变量、类变量、局部变量的区别 变量名写字母使写,如果由多个单词组成,从第2个单词开始的其他单词的写字母使写。 如果局部变量的名字和成员变量的名字相同, 要想在该法中使成员变量,必须使关键字this class People String name = 类体重定义的name; /类中的成员变量并赋值 People() public void speak() String name = 类体法中定义的name; /在法speak中定义和成员变量名字相同的name并赋值 System.out.println(name); System.out.println(); /通过thi

2、s来访问类中的成员变量 public class TestThis /源件中只能有个类是public类,并且源件的名字必须与这个类的名字完全相同,如 /果没有public类,那么源件的名字只要和某个类的名字相同就可以了。 public static void main(String args) People myPeople = new People(); myPeople.speak(); 输出结果: 成员变量和局部变量的区别 成员变量: 1、成员变量定义在类中,在整个类中都可以被访问。 2、成员变量随着对象的建建,随着对象的消失消失,存在于对象所在的堆内存中。 3、成员变量有默认初始化值。

3、 局部变量: 1、局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。 2、局部变量存在于栈内存中,作的范围结束,变量空间会动释放。 3、局部变量没有默认初始化值 在使变量时需要遵循的原则为:就近原则 先在局部范围找,有就使;接着在成员位置找。 成员变量和类变量的区别 由static修饰的变量称为静态变量,其实质上就是个全局变量。如果某个内容是被所有对象所共享,那么该内容就应该静 态修饰;没有被静态修饰的内容,其实是属于对象的特殊描述。 不同的对象的实例变量将被分配不同的内存空间, 如果类中的成员变量有类变量,那么所有对象的这个类变量都分配给相同 的处内存,改变其中个对象的这

4、个类变量会影响其他对象的这个类变量,也就是说对象共享类变量。 class MyAdd int count = 0; /成员变量计数器 static int sum = 0; /静态变量计数器 String name; MyAdd(String name) = name; public void myAddMethod() count+; System.out.println(name+调成员变量后的值:+count); public void staticAddMethod() sum+; System.out.println(name+调类后变量的值:+sum); pub

5、lic class TestThis public static void main(String args) MyAdd add1 = new MyAdd(add1); MyAdd add2 = new MyAdd(add2); add1.myAddMethod(); add2.myAddMethod(); add1.myAddMethod(); add1.staticAddMethod(); add2.staticAddMethod(); add1.staticAddMethod(); 输出结果: 成员变量和类变量的区别: 1、两个变量的命周期不同 成员变量随着对象的创建存在,随着对象的回

6、收释放。 静态变量随着类的加载存在,随着类的消失消失。 2、调式不同 成员变量只能被对象调。 静态变量可以被对象调,还可以被类名调。 3、别名不同 成员变量也称为实例变量。 静态变量也称为类变量。 4、数据存储位置不同 成员变量存储在堆内存的对象中,所以也叫对象的特有数据。 静态变量数据存储在法区(共享数据区)的静态区,所以也叫对象的共享数据。 static: 关键字,是个修饰符,于修饰成员(成员变量和成员函数)。 特点: 1、想要实现对象中的共性数据的对象共享。可以将这个数据进静态修饰。 2、被静态修饰的成员,可以直接被类名所调。也就是说,静态的成员多了种调式。类名.静态式。 3、静态随着类

7、的加载加载。且优先于对象存在。 弊端: 1、有些数据是对象特有的数据,是不可以被静态修饰的。因为那样的话,特有数据会变成对象的共享数据。这样对事物的 描述就出了问题。所以,在定义静态时,必须要明确,这个数据是否是被对象所共享的。 2、静态法只能访问静态成员,不可以访问静态成员。 因为静态法加载时,优先于对象存在,所以没有办法访问对象中的成员。 3、静态法中不能使this,super关键字。 因为this代表对象,静态在时,有可能没有对象,所以this法使。 什么时候定义静态成员呢?或者说:定义成员时,到底需不需要被静态修饰呢? 成员分两种: 1、成员变量。(数据共享时静态化) 该成员变量的数据是否是所有对象都样: 如果是,那么该变量需要被静态修饰,因为是共享的数据。 如果不是,那么就说这是对象的特有数据,要存储到对象中。 2、成员函数。(法中没有调特有数据时就定义成静态) 如果判断成员函数是否需要被静态修饰呢? 只要参考,该函数内是否访问了对象中的特有数据: 如果有访问特有数据,那法不能被静态修饰。 如果没有访问过特有数据,那么这个法需要被静态修饰。 成员变量和静态变量的区别: 1、成员变量所属于对象。所以也称为实例变量。 静态变量所属于类。所以也称为类变量。 2、成员变量存在于堆内存中。 静态变量存在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论