资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Java,基础知识,类的继承,子类及其定义,类之间的继承关系是面向对象程序设计语言,(OOP),的基本特征之一。继承是类之间的“,is a”,关系,反映出一个类(子类)是另一个类(父类)的特例。,例,一个学校中的学生,Student,和教师,Teacher,是人,People,的特例,即,A Student is a People,;,A Teacher is a people,。,在,OOP,中,继承反映了现实世界实体的这种本质联系,而另一个重要意义是实现了代码的重用。,例,2-2,程序清单:,StudentTest.java,/*,*,这个程序主要用来测试类名与文件名的一致性的问题,*,/,class,StudentTest,public static void,main(String,args,),Student,aStudent,=new Student();,aStudent.setName,(,张楠,);,aStudent.setStudentNum(20030408);,System.out.println,(,学生的姓名是:,+,aStudent.getName,()+,,学号是:,+,aStudent.getStudentNum,();,class People,private String name;,public String,getName,(),return name;,public void,setName(String,strName,),name=,strName,;,class Student extends People,private String,studentNum,;,public String,getStudentNum,(),return,studentNum,;,public void,setStudentNum(String,strStudentNum,),studentNum,=,strStudentNum,;,在,Java,,子类声明的具体格式如下:,class,SubClass,extends,SuperClass,/,定义自己特有的变量与方法,而与父类相同的变量和方法不需要再定义,类的继承,如果省略,extends,关键字,则所定义的类为,java.lang.Object,的子类。,Java,中只支持单继承,即只能从一个类继承,,extends,关键字后类名只能有一个。,Java API,Java APIJava,应用程序编程接口,是,Sun,提供的使用,Java,语言开发的类集合,是,Java,平台的重要组成部分。,Java API,中的类被分成许多包,每个包可以包含若干相关类。,Java API,包括三类包:核心包,java,、各种扩展功能的类库,javax,和,org,。,java.lang,:由,Java,语言的核心类组成。包含了许多常用类,如,System,、,String,、,Object,等。,Java,默认每个程序都引用此包。,java.io,:,Java,语言的标准输入,/,输出库,提供系统通过数据流、串行化和文件系统的输入和输出。,java.util,:包含集合(,collection,)类,如日期与时间相关的类等。,用户界面的类型,有二类用户界:字符用户界面(,CUI,)和图形用户界面(,GUI,)。,字符用户界面:通过键入命令与系统交互。需要记住所有的命令和完整的语法。如,MS-DOS,。,图形用户界面:提供“面向画面的”或“图形的”界面让用户与系统交互。多数命令用鼠标执行,如,Microsoft Windows,。,图形用户界面设计,在介绍具体的图形设计之前,先介绍两个不同的图形界面设计组件:,Java.awt,包和,Javax.swsing,包。,1.Java.awt,包,在,Java 1.0,中,设计了抽象窗口工具包(,Abstract Window,Tookit,)即,AWT,包。包含了建立,GUI,的各种组件与事件处理机制。,2.Javax.swing,包,Swing,包作为,JDK1.1,的可选插件出现,完全由,Java,语言实现,具有平台独立的,API,。比,AWT,提供了更加丰富的组件,并且增加了很多新的特性与功能。,基于,Swing,的应用程序一般结构,例:在,JFrame,中显示“,Hello World!”,import,javax.swing,.*;,public class,HelloWorldSwing,public static void,main(String,args,),JFrame,frame=new,JFrame(Hello,);,final,JLabel,label=new,JLabel(Hello,World!);,frame.getContentPane().add(label,);,frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE,);,frame.setSize(200,70);,frame.setVisible(true,);,基于,Swing,的应用程序,一般包括如下部分:,引入,Swing,包及其他程序包,创建并设置窗口容器,创建,GUI,的顶层容器并进行布局管理器等设置。,创建与添加,Swing,组件,创建所需的,Swing,组件,进行相应设置,并添加到容器中。,显示顶层容器,将整个,GUI,显示出来。,设置顶层容器,Swing GUI,形成顶层容器,中层层容,基本组件的层次包容关系。具有,Swing GUI,的应用必须有至少一个顶层容器。,顶层,Swing,容器一般是,JFrame,、,JDialog,或,JApplet,的实例。,中间容器是由通用容器构成,主要是为了简化组件的布局,常用的组件为,JPannel,。,在设置,Swing,顶层容器时要特别注意:,Swing,组件不能直接添加到顶层容器中,必须添加到一个与顶层容器相关联的内容窗格(,ContentPane,)上。为了便于组件位置的规划,一般建立一个中间层容器(如,JPanel,),存放所有组件,然后把该中间容器放入顶层容器的内容面板中。,JFrame,ContentPane,JPanel,JButton,JLabel,GUI,组件层次关系示例,对,JFrame,添加组件时注意:,用,getContentPane,(),方法获得,JFrame,的内容面板,再使用,add(),方法向其中加入组件。例如,,frame.getContentPane().add(new,Jlabel(“Hello,!”);,顶层容器类组件,框架,JFrame,JFrame,一般作为,Java Application,的主窗口,,JFrame,的创建与设置可以使用如下方法。,构造方法:,JFrame,();,JFrame(String,title);,创建了初始不显示的窗口,使用,setVisible(true,),显示窗口。,其他常用方法:,setSize(height,,,width),:设置框架窗口的大小。,setVisible(true,),:显示框架窗口。,设置单击关闭窗口按钮操作,Public void,setDefaultCloseOperation(int,operation),对于应用程序参数是,JFrame.EXIT_ON_CLOSE,:退出应用系统。,Swing,包中的常用基本组件,JLabel,标签(,JLabel,),所谓标签就是一段文字,该文字显示在背景上,且不能被用户编辑。,JLabel,类的常用构造方法如下:,(,1,),JLabel,(),:生成一个,JLabel,对象。,(,2,),JLabel(Icon,icon),:生成一个包含图标的,JLabel,对象。,(,3,),JLabel(String,text),:生成一个包含文字的,JLabel,对象。注意这里的字符串只能显示单行文字。,(,4,),JLabel(String,text,Icon,icon,int,alignment),:生成一个包含文字和图标的,JLabel,对象,并制定其水平对齐方式。,按钮(,JButton,),所谓,JButton,可以生成包含文字或图标(或两者)的按钮,,JButton,继承,AbstractButton,,常用的构造方法如下:,(,1,),JButton,(),:生成一个,JButton,对象。,(,2,),JButton(Icon,icon),:生成一个以图标表示的,JButton,对象。,(,3,),JButton(String,text),:生成一个使用指定文本报,JButton,对象。,(,4,),JButton(String,text,Icon,icon),:生成一个包含文字和图标的,JButton,对象。,Swing,包中的常用基本组件,JButton,文本字段(,JTextField,),文本字段允许输入或显示单行文字进行人机交互。,JTextField,的构造方法如下:,(,1,),JTextField,(),:生成一个,JTextField,对象。,(,2,),JTextField(int,cols),:生成一个大小为,cols,列的文本框。,(,3,),JTextField(String,text),:生成一个文本框,并指定文本框的默认文字。,(,4,),JTextField(String,text,int,cols),:生成一个大小,cols,列的文本框,并指定其默认文本为,text.,Swing,包中的常用基本组件,JTextField,文本区域(,JTextArea,),文本区域允许输入或显示多行文字,可以设置行和列的大小。,JTextArea,的构造方法如下:,(,1,),JTextArea,():,(,2,),JTextArea(int,rows,int,columns),:,(,3,),JTextArea(String,text),:,(,4,),JTextArea(String,text,int,rows,int,columns),:,JTextArea,默认情况下将所有的信息都在一行上显示,不自动折行。可以调用,setLineWrap(true,),方法设置自动换行,并调用,setWrapStyleWord(true,),方法设置折行以单词而不是字符为边界。,Swing,包中的常用基本组件,JTextArea,Swing,包中的常用基本组件,JComboBox,选择框(,JComboBox,),选择框(组合框)是一种弹出式列表,平时只显示选中的选项。当单击一个选择框后,会列出一串项目以供选择,用户可以在弹出的列表条目选择一个条。,JComboBox,的构造方法如下:,(,1,),JComboBox,(),:生成一个,JComboBox,。,(,2,),JComboBox(Object,items),:生成包含数组内所有元素的,JComboBox,对象。,常用的方法有:,addItem(Object,item),:在组合框内添加一个项目。,setSelectedItem(int,index),:可以选择,JComboBox,中索引为,index,的项目。,setEditable(boolean,flag),:设定该组合框是否可以编辑。,课堂练习:,
展开阅读全文