黑马程序员技术交流社区
标题: 【趣味Java】面向对象三 [打印本页]
作者: 武汉分校-小舞 时间: 2016-9-2 17:51
标题: 【趣味Java】面向对象三
本帖最后由 武汉分校-小舞 于 2016-9-1 15:27 编辑
剧情回顾:
上一集讲到了一个完整的类的创建,属性需要封装,需要有构造方法,需要有get,set,方法,那么我们以不管写什么类都按照上述格式来写就可以。
本集剧情:
代码块:静态代码块:随着类加载,在类中,方法外
局部代码块:方法内
构造代码块:在类中方法外
上述三种代码块,不管怎么样他们都是代码块,
所以我们首先搞懂什么是代码块!!
代码块:被大括号括起来的都是代码块,就这么简单!!
代码块做些什么事情?之前方法是不调用不执行,那么代码快呢?
静态代码块:随着类的加载就执行
语法:static {里面你想写的代码就可以了}
局部代码块:随着方法的调用而执行
语法:方法里面写个{里面你想写的代码就可以了}就O了
构造代码块:在创建对象的时候调用
语法:在类中方法外写个{里面你想写的代码就可以了}就可以了
上面这些代码块的的区别:
位置的不同:
静态代码块:随着类加载,在类中,方法外
局部代码块:方法内
构造代码块:在类中方法外
语法不同:这里就不写了都在上面的语法中。
执行顺序不同看下面代码就知道了:
这是以上的几个代码块的写法,还加了一个构造方法,更清晰的看到先后顺序
运行结果
由此可以看出来静态在最前面,然后构造代码块在创建对象的时候调用,但是先于构造方法执行(这个需要记住),然后就局部代码块,跟方法一样不调用不执行。
静态关键字:static
先说概念:静态就是被所有类共享的。。。。。。。。概念说了还是一脸的蒙蔽
那么直接撸代码吧:往下看
一个教室的类,里面有一个饮水机,饮水机里有100L升水
然后很多学生去接水:
根据上面的代码学生2去接水的时候应该只剩99L了但是请看结果:
????不科学啊?怎么还剩100升水呢,我们推理一下,真相永远只有一个!!!
那就是因为这两个学员(对象)用的根本不是一个饮水机(属性没有共享)!!
那么我们要做的就是把饮水机让每个学员用的是一样的(属性共享)
Java中为我们提供了这样一个神奇的关键字static
概念上面也说过一次这里就不说了,直接撸代码:
//直接用static 修饰
我们再看结果:
通过上述案例我们知道static的应用,属性需要被每个对象的所共同拥有的时候就要用static修饰。
作者: 武汉分校-小舞 时间: 2016-9-3 09:34
你知道“静态关键字:static”是什么么,看完就知道啦
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |