java笔记之面向对象基础(5)

java笔记之面向对象基础(5)

ID:32585421

大小:74.72 KB

页数:14页

时间:2019-02-13

java笔记之面向对象基础(5)_第1页
java笔记之面向对象基础(5)_第2页
java笔记之面向对象基础(5)_第3页
java笔记之面向对象基础(5)_第4页
java笔记之面向对象基础(5)_第5页
资源描述:

《java笔记之面向对象基础(5)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Java中static的使用与包装类-・static变量和方法的声明及使用首先回顾一下前面的一个知识点:对于Javaz内存分为栈内存(存储对象的名字堆内存(存储对象的具体内容,如属性1全局代码区(保存所有方法1现在提出新的要求,要表示一个属性,这个属性是所有对象都具有的,这就要用到static属性。在类中写的一个属性,如果使用static声明,则表示此属性为公有属性,即所有对象都可以访问此属性。下面用一段代码来说明。为了说明方便,属性暂不封装,但是要注意,在实际开发中,所有的属性都是要封装的。classPersonstaticStringcode;Stringname;Str

2、ingshout(){return"编码:"+code+",姓名:H+name;}};publicclassoDemo05publicstaticvoidmain(Stringargs[])Personpl=newPerson();Personp2=newPerson();pl.code=n110n;pl.name=M小明:p2.code=H120H;p2.name二”小丽:System.out.println(pl.shoutO);System.out.println(p2.shout());}}这段代码似乎与我们前面写过的许多代码没什么区别,只是在声明code变量时前面多了

3、一个statico这就是static声明变量的方式。卜面我们来看一下执行结果:C:jauatestjauaobject>jauacoDeno05・jauaC:jauatestjauaobject>jauaoDeno05编码:120,姓名:/卜明编码:120;姓名:/卜丽C:jauatestjauaSobject>可以发现对象pl和p2的code属性居然相同,可是我们在设置时两者是不同的。这就是静态变量属性的特点。在内存中除了堆栈和全局代码区外,还有一块区域叫做全局数据区,专门用于存放static类型的属性。声明static属性后,此属性对所有对象共享。对于sta

4、tic类型的属性,如果需要修改,最好是通过类名称修改。这里我们对上面的代码做一些修改来说明这一问题:classPerson{privatestaticStringcode;Stringname;Stringshout(){return*1编码:,,+code+,1,姓名:H+name;}staticvoidsetCode(Stringc){code=c;}};publicclassoDemo05{publicstaticvoidmain(Stringargs[]){Person.setCode("110H);Personpl=newPerson();Personp2=newPe

5、rson();pl.name="小明:p2.name二”小丽";System.out.println(pl.shout());System.out.println(p2.shout());}从红字部分可以看出,我把code属性定义成了私有属性,然后用Person类的setCode方法去为这个静态属性赋值,赋值过程没有涉及到任何对象,赋值后所有对象的code属性将都是同样的值。运行结果如下:C:jauatestC:jauatest编码110,姓名:丿编确:110,妊玄:/C:jauatestjauaobject>jauacoDemo05.jauabject>jaua

6、oDemo05、明'丽bject>.这里需要注意的一点是在setCode方法中,不能使用"this.code二code"作为赋值语句。因为static属于所有对象共享的属性,而〃this〃只能表示当前对象,这样作用范围不匹配,程序会报错。所以在"static"方法中不要出现〃this〃。对上面说明的扩展:静态方法不能调用非静态变量,即非静态变量不能够出现在静态方法中。不过反之是可以的。—・static代码块的使用代码块是Java中的一个概念。在Java中有四种代码块,分别是:普通代码块(写在一个方法之中的语句块)构造块(直接写在类中的语句块)静态块(直接写在类中,通过stati

7、c声明的语句块)同步代码块(在学习多线程的时候会见到)#1.普通代码块首先用一个例子来介绍普通代码块,看下面代码:publicclassoDemo05publicstaticvoidmain(Stringargs[])inti=0;}inti=10;System.out.println(i);}很显然在这段代码中变量i被重复定义了,如果不在第一次定义i时加上括号,那么程序肯定会报错。加上括号,括号里面的内容就形成了一个普通代码块,它里面的变量定义只在代码块内部有效。可想而知,最后程序输出的结

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。