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

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

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

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

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

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

7.1基本概念 7.2用类实现抽象数据类型:时间 7.3成员访问控制 7.4创建包 7.5初始化类对象:构造方法 7.6static类成员7.1基本概念 类中的数部分被称为实例变量,而用户自定义类型(即类)的实例被称为对象。在Java中,注意力放在对象而不是方法上,在系统需求文档中的名词有助于Java程序员确定用一组什么样的类开始设计过程。 如何创建和使用对象,这一范畴称为基于对象的编程(Object-BasedProgrammingOBP); 引入了继承性和多态性这两种关键技术,才能真正实现面向对象编程(Object-OrientedProgrammingOOP)。7.2用类实现抽象数据类型:时间 例7.1建立时间类Time1和使用时间类的TimeTest1类。由于Time1类和TimeTest1类都是public类,因此要把他们定义在不同的文件中。 //Fig.8.1:Time1.java importjava.text.DecimalFormat; publicclassTime1extendsObject{ privateinthour;//0-23 privateintminute;//0-59 privateintsecond;//0-59 publicTime1(){ setTime(0,0,0); } publicvoidsetTime(inth,intm,ints){ hour=((h>=0&&h<24)?h:0); minute=((m>=0&&m<60)?m:0); second=((s>=0&&s<60)?s:0); } publicStringtoUniversalString(){ DecimalFormattwoDigits=newDecimalFormat("00"); returntwoDigits.format(hour)+":"+twoDigits.format(minute)+":"+twoDigits.format(second); } publicStringtoString(){ DecimalFormattwoDigits=newDecimalFormat("00"); return((hour==12||hour==0)?12:hour%12)+":"+ twoDigits.format(minute)+“:”+twoDigits.format(second)+(hour<12?"AM":"PM"); } }//endclassTime1说明:1.Java中的每个类都是Object的子类(直接或间接)。因此,每个类都继承了Object类定义的11个方法,其中一个关键方法是toString。 2.Java中定义的每个类都必须是另一个类的子类。如果在类定义中不显式使用关键字extends,这个类就隐式继承Object类。 3.与类有相同名字的方法是类的构造方法,构造方法是类中一个特殊的方法,用于初始化类对象的实例变量。当实例化类的对象时构造方法会被自动调用。 4.一个类中通常可以有几个构造方法,这是通过方法重载实现的。构造方法也可以带参数,但不能返回值。构造方法和其他方法的一个重要差异是构造方法不允许指定返回值的数据类型(void也不行)。 5.Java允许类中的其他方法与类同名,并指明返回值类型,但这样的方法不是构造方法,并且当类的对象初始化时也不会被自动调用。//Fig.8.2:TimeTest1.java importjavax.swing.JOptionPane; publicclassTimeTest1{ publicstaticvoidmain(Stringargs[]) { Time1time=newTime1();//callsTime1constructor Stringoutput="Theinitialuniversaltimeis:"+time.toUniversalString()+ "\nTheinitialstandardtimeis:"+time.toString()+ "\nImplicittoString()call:"+time; time.setTime(13,27,6); output+="\n\nUniversaltimeaftersetTimeis:"+time.toUniversalString()+ "\nStandardtimeaftersetTimeis:"+time.toString(); time.setTime(99,99,99); output+="\n\nAfterattemptinginvalidsettings:"+"\nUniversaltime:"+ time.toUniversalString()+"\nSt