Static

static

所有static关键字修饰的都是类相关的,类级别的,都是采用”类名."的方式访问。

一、静态变量和实例变量

变量根据声明的位置进行划分:

  • 在方法体当中声明的变量叫做局部变量。
  • 在方法体外声名的叫做:成员变量。

成员变量又可以分为:

  • 实例变量
  • 静态变量。

变量在内存上的存储:

方法区
局部变量实例变量静态变量

静态变量在类加载时初始化,不需要new对象,静态变量的空间就开出来了。静态变量使用类名.的方式访问。

实例变量必须先new对象,通过“引用.”访问。

二、静态方法和实例方法

静态方法:不需要new对象,直接使用“类名.”来访问。但是也可以使用“引用.”来访问,不建议用。(因为其他程序员会困惑。)

实例方法:需要new对象,使用“引用.”来访问。

以后开发中,大部分情况下,如果是工具类的话,工具当中的方法一般都是静态的。(因为静态方法不需要new对象,直接使用“类名.”来访问,很方便。)

三、内部类

1、在使用内部类前我们先想想为什么需要内部类?java内部类有什么好处?

首先举一个简单的例子,如果你想实现一个接口,但是这个接口中的一个方法和你构想的这个类中的一个方法的名称,参数相同,你应该怎么办?这时候,你可以建一个内部类实现这个接口。由于内部类对外部类的所有内容都是可访问的,所以这样做可以完成所有你直接实现这个接口的功能。

不过你可能要质疑,更改一下方法的不就行了吗?

的确,以此作为设计内部类的理由,实在没有说服力。真正的原因是这样的,java中的内部类和接口加在一起,可以的解决常被C++程序员抱怨java中存在的一个问题 没有多继承。实际上,C++的多继承设计起来很复杂,而java通过内部类加上接口,可以很好的实现多继承的效果。

2、内部类

内部类有三种:

  • 静态内部类
  • 实例内部类
  • 局部内部类,匿名内部类是局部内部类的一种。不建议使用匿名内部类,因为一个类没有名字,没有办法重复,另外代码太乱,可读性太差。

使用内部类编写的代码,可读性很差,能不用尽量不用。

四、类的初始化顺序

初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。

实例语句块在什么时候执行?
只要是构造方法执行,必然在构造方法执行之前,自动执行“实力语句块”中的代码。
实际上这也是sun公司为Java程序员准备一个特殊的时机,叫做对象构建时机。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值