java中的各个变量解析和类的可见修饰符.docx

java中的各个变量解析和类的可见修饰符.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java 中的 成员变量、局部变量、静态变量以及可见修饰符的限定这属于 java 的基础知识,你可以不了解,也可以不拿它当一回事,代码也一样能敲的顺畅;这是很久之前,我从 C++ 转 java 刚入门那会的看法,那会我坚持自己的理念:??? 重实践,讲运用,轻理论。当然,对同一样事物,在不同阶段也会有不一样的看法,这理念在某个时段已经不适合我,早就被抛弃了。不扯淡了,直接进入主题。java 中的变量大致分为 成员变量 和 局部变量 两大类。成员变量:??? 在类体里面定义的变量称为成员变量;??? 如果该成员变量有 static 关键字修饰,则该成员变量称为 静态变量 或 类变量;??? 如果该成员变量没有 static 关键字修饰,则该成员变量被称为 非静态变量 或 实例变量。局部变量:??? 形参、方法内定义的变量、代码块中定义的变量,都属于局部变量。类变量 (静态变量)??? 1. 可以向前引用??? 2. 变量属于类本身(即静态变量本身属于全局变量,如果局部变量变成静态变量则需要在前面加上final)??? 3. 类变量(静态变量)不依赖类的实例,类变量只在初始化时候在栈内存中被分配一次空间(公共空间),无论类的实例被创建几次,都不再为类变量分配空间??? 4. 通过类的任意一个实例来访问类变量,底层都将将其转为通过类本身来访问类变量,它们的效果是一样的??? 5. 一旦类变量的值被改变,通过类或类的任意一个实例来访问类变量,得到的都将是被改变后的值??? 6. 将在类的初始化之前初始化实例变量(非静态变量)??? 1. 不能向前引用,如果向前引用,则称为非法向前引用,这是不允许的??? 2. 变量属于类的实例对象??? 3. 随着类的实例被创建而分配内存空间(根据其构造函数)非静态代码块??? 直接由 { } 包起来的代码,称为非静态代码块静态代码块??? 直接由 static { } 包起来的代码,称为静态代码块类变量(静态变量)、实例变量(非静态变量)、静态代码块、非静态代码块 的初始化时机??? 由 static 关键字修饰的(如:类变量[静态变量]、静态代码块)将在类被初始化创建实例对象之前被初始化,而且是按顺序从上到下依次被执行;??? 没有 static 关键字修饰的(如:实例变量[非静态变量]、非静态代码块)初始化实际上是会被提取到类的构造器中被执行的,但是会比类构造器中的??? 代码块优先执行到,其也是按顺序从上到下依次被执行。类的修饰符整合一.类类的修饰符:Public:可以在其他任何类中使用,默认为统一包下的任意类。Abstract:抽象类,不能被实例化,可以包含抽象方法,抽象方法没有被实现,无具体功能,只能衍生子类。Final:不能被继承。二.变量变量修饰符:一个类的成员变量的声明必须在类体中,而不能在方法中,方法中声明的是局部变量。1.?????? 可访问修饰符:2.?????? static:类变量:一个类所拥有的变量,不是类的每个实例有的变量。类变量是指不管类创建了多少对象,系统仅在第一次调用类的时候为类变量分配内存,所有对象共享该类的类变量,因此可以通过类本身或者某个对象来访问类变量。3.?????? final:常量。4.?????? volatile:声明一个可能同时被并存运行的几个线程所控制和修改的变量。实例变量:和类变量对应,即每个对象都拥有各自独立的实例变量。三.方法:(和变量对象分为实例方法和类方法,并用有无static修饰区别)类方法:使用static关键字说明的方法1.第一次调用含类方法的类是,系统只为该类创建一个版本,这个版本被该类和该类的所有实例共享。2.类方法只能操作类变量,不能访问实例变量。类方法可以在类中被调用,不必创建实例来调用,当然也可以通过对象来调用。实例方法:实例方法可以对当前对象的实例变量操作,而且可以访问类变量。方法可以重载,要求:方法名相同,但是参数必须有区别。(参数不同可以使类型不同,顺序不同,个数不同)方法的返回类型:若无返回类型,则声明为void.方法中的变量作用域:1.?????? 成员变量:整个类。2.?????? 局部变量:定义起到方法块结束为止。3.?????? 方法参数:整个方法或者构造方法。4.?????? 异常处理参数:参数传递给异常处理方法。构造方法:和类同名的方法。为新建对象开辟内存空间后,用于初始化新建的对象。不能用对象显式的调用。静态初始化器:格式:static{赋值语句组}静态初始化器与构造方法的区别: 静态初始化器构造方法对类的静态域初始化对新建的对象初始化类进入内存后,系统调用执行执行new后自动执行属特殊语句(仅执行一次)属特殊方法方法的修饰符:抽象方法:用abstract修饰,只有声明部分,方法体为空,具体在子

文档评论(0)

dashewan + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档