第6部分(第3/6 页)
licstaticvoidmain(Stringargs''){method(42);}}这个类被调用,所有的静态变量都被初始化,a被赋为3,然后运行static块,这将打印出一段消息,并且把b赋为a*4,即12。然后解释器调用main成员函数,它调用了成员函数method,参数x为42。这三个println语句打印了两个静态变量a、b和局部变量x。下面是运行结果:C:》javaStatic静态初始块x=42a=3b=12一个静态成员函数可以通过它所属的类名来调用。象调用实例变量一样,你可以用点操作符通过类名来调用静态成员函数和静态变量。Java就是这样实现了全局函数和全局变量。下面的例子里,我们创建了带有一个静态成员函数和两个静态变量的类。第二个类可以通过名字直接来调用第一个类的静态成员函数和静态变量。
classstaticClass{staticinta=42;staticintb=99;staticvoid
callme(){System。out。println(”a=”+a);}}
classStaticByName{publicstaticvoidmain(Stringargs'')
{StaticClass。callme();System。out。println(”b=”+staticClass。b);}}
下面是运行结果:C:》javastaticByNamea=42b=99
5。16抽象
有时你需要定义一个给出抽象结构、但不给出每个成员函数的完整实现的类。如果某个成员函数没有完整实现,必须要由子类来覆盖,你可把它声明为抽象(abstract?copy;型。含有抽象型成员函数的类必须声明为抽象的。为了把一个类声明为抽象的,你只需在类定义的class关键词前放置关键词abstract。这?copy;类不能直接用new操作符生成实例,因为它们的完整实现还没有定义。你不能定义抽象的构造函数或抽象的静态成员函数。抽象类的子类或者实现了它的超类的所有抽象的成员函数,或者也被声明为抽象的。下面例子是一个带有抽象成员函数的类,其后是一个实现了该成员函数的类。
abstractclassA{abstractvoidcallme();voidmetoo(){system。out。println(”在A的metoo成员函数里”);}}classBextendsA{voidcallme(){System。out。println(”在B的callme成员函数里”);}}classAbstract{publicstaticvoidmain(Stringargs''){Aa=newB();
a。callme();a。metoo();}}
下面是运行结果:C:》javaAbstract在B的callme成员函数里在A的metoo成员函数里
本章小结
1。类是Java语言面向对象编程的基本元素,它定义了一个对象的结构和功能。2。Java通过在类定义的大括号里声明变量来把数据封装在一个类里,这里的变量称为实例变量。3。成员函数,是类的功能接口,是类定义里的一个子程序,在类的定义里和实例变量处于同一级别。
第六章Java图形用户接口
对一个优秀的应用程序来说,良好的图形用户接口是必不可少的。缺少良好的图形用户接口,将会给用户理解和使用应用程序带来很多不便。很难想象用户为了学会使用一个应用程序,去记一大堆命令。Java提copy;了生成一个良好的图形用户接口所需要的一copy;基本元件:面板(Panelcopy;、按钮(Buttoncopy;、标copy;(Labelcopy;、画板(Canvasescopy;、滚动条(Scrollbarcopy;、列表框(Listcopy;、文本域(TextFieldcopy;、文本区(TextAreacopy;。
6。1面板
面板提copy;了建立应用程序的空间。你可以把图形元件(包括其他面板copy;放在一个面板上。Applet类提copy;了一个基本的面板。
6。1。1布局管理
本章未完,点击下一页继续。