预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共42页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

本章内容 .static关键字 .final关键字 .抽象类(abstract关键字) .接口(interface关键字) .内部类 本章内容 .static关键字 .静态属性 .静态初始化 .静态方法 .单子模式 .理解main方法的语法 .final关键字 .抽象类(abstract关键字) .接口(interface关键字) .内部类 关键字static 当我们编写一个类时,其实就是在描述其对象的属性和行 为,而并没有产生实质上的对象,只有通过new关键字才会 产生出对象,这时系统才会分配内存空间给对象,其方法才 可以供外部调用。我们有时候希望无论是否产生了对象或无 论产生了多少对象的情况下,某些特定的数据在内存空间里 只有一份,例如所有的中国人都有个国家名称,每一个中国 人都共享这个国家名称,不必在每一个中国人的实例对象中 都单独分配一个用于代表国家名称的变量。 关键字static .classCircle { privatedoubleradius; publicCircle(doubleradius){this.radius=radius;} publicdoublefindArea(){returnMath.PI*radius*radius;} } .创建两个Circle对象 .Circlec1=newCircle(2.0);//c1.radius=2.0 .Circlec2=newCircle(3.0);//c2.radius=3.0 .Circle类中的变量radius是一个实例变量(instance variable),它属于类的每一个对象,不能被同一个类的 不同对象所共享。 .上例中c1的radius独立于c2的radius,存储在不同的空 间。c1中的radius变化不会影响c2的radius,反之亦然。 如果想让一个类的所有实例共享数据,请用类变量 关键字static .在Java类中声明变量、方法和内部类时,可使用关 键字static做为修饰符。 .static标记的变量或方法由整个类(所有实例)共享, 如访问控制权限允许,可不必创建该类对象而直接 用类名加‘.’调用。 .static成员也称类成员或静态成员,如:类变量、 类方法、静态方法等。 类变量(classVariable) .类变量(类属性)由该类的所有实例共享 publicclassPerson{ Person privateintid; +total:int=0publicstaticinttotal=0; -id:int publicPerson(){ total++; <<instanceOf>> <<instanceOf>>id=total; } p1:Personp2:Person} id=1id=2 类属性类似于全局变量 Personp1=newPerson();Personp2=newPerson(); 类属性应用举例 classPerson{ privateintid; publicstaticinttotal=0; publicPerson(){ total++; id=total; } publicstaticvoidmain(Stringargs[]){ PersonTom=newPerson() Tom.id=0; total=100;//不用创建对象就可以访问静态成员 } } publicclassOtherClass{ publicstaticvoidmain(Stringargs[]){ Person.total=100;//不用创建对象就可以访问静态成员 //访问方式:类名.类属性类名.类方法 System.out.println(Person.total); Personc=newPerson(); System.out.println(c.total);//输出101 } } 类方法(classMethod) .没有对象的实例时,可以用类名.方法名()的形式访问由static标记的类方法。 classPerson{ privateintid; privatestaticinttotal=0; publicstaticintgetTotalPerson(){ returntotal;Theoutputis: }Numberoftotalis0 publicPerson(){ total++;Numberoftotalis1 id=total; } } publicclassTestPerson{ publicstaticvoidmain(String[]args){ System.out.println("Numberoftotalis