Java考试重点.doc_第1页
Java考试重点.doc_第2页
Java考试重点.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章环境变量设置:PATH=C:program files javajdk1.5.0binCLASSPATH=.;C:program filesjavajdk1.5.0LIBJava程序分为两种:Java Application(java应用程序)和Java Applet(java小程序)。编译时错误1.Command not found (路径变量设置不正确) 2.用“(反了)”指示系统找不到的方法名。标识符是以字母、下划线或美元符开头,由字母、数字、下划线或美元符组成的字符串。第三章3.2.4 常量与变量常量就是指在程序执行期间其值不能发生变化的数据。如整型常量123,字符常量A,布尔常量true等。变量的值则是可以变化的,它的定义包括变量名、变量类型和作用域几个部分。注意以下几点:(3)声明一个变量的同时也就指明了变量的作用域。按作用域来分,变量可以有下面几种:局部变量、类变量、方法参数、例外处理参数。局部(local)变量是在一个方法内定义的变量, 也被称作自动(automatic)、临时(temporary)或栈(stack)变量。3.3 运算符 基本的运算符分包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符等。 在算术运算中,有以下值得注意的地方:(2)整数除法会直接砍掉小数,而不是进位。(3)对取模运算符%来说,其操作数可以为浮点数。如:37.2%10=7.2。(6)前缀+、-与后缀+、-的区别: +i(前缀+)在使用i之前,使i的值加1, 3.3.4 位运算 在Java语言中,位运算符有按位与运算符(&)、按位或运算符(|)、按位异或运算符()、按位取反运算符()、左移位运算符()。1按位与运算(&) 参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0。2按位或运算(|) 参与运算的两个值,如果两个相应位都是0,则该位结果为0,否则为1。 即:0|0=0,0|1=1,1|0=1,1|1=13按位异或运算() 参与运算的两个值,如果两个相应位的某一个是1,另一个是0,那么按位异或()在该位的结果为1。也就是说如果两个相应位相同,输出位为0,否则为1。即:00=0,01=1,10=1,11=04按位取反运算() 按位取反运算()属于一元运算符,它只对一个自变量进行操作(其他所有运算符都是二元运算符)。按位取反生成与输入位的相反的值若输入0,则输出1;输入1,则输出0。 即:0=1,1=05左移位运算符()运算符执行一个左移位。作左移位运算时,右边的空位补0。在不产生溢出的情况下,数据左移1位相当于乘以2。例如 int a=64,b; b=a与)运算符执行一个右移位(带符号),左边按符号位补0或1例如: int a=16,b; b=a2;/b=4运算符同样是执行一个右移位,只是它执行的是不带符号的移位。也就是说对以补码表示的二进制数操作时,在带符号的右移中,右移后左边留下的空位中添入的是原数的符号位(正数为0,负数为1);在不带符号的右移中,右移后左边留下的空位中添入的一律是03.3.5 类型转换 类型转换有两种:自动类型转换(或称隐含类型转换)和强制类型转换。 “比int小”的数据(char、byte、short)在正式执行运算之前,那些值会自动转换成int, 整型、实型、字符型数据可以混合运算。不是所有的数据类型都允许隐含自动转换。例如,下面的语句把long型数据赋值给int型数据,在编译时就会发生错误: 这是因为当把占用位数较长的数据转化成占用位数较短的数据时,会出现信息丢失的情况,因而不能够自动转换。这时就需要利用强制类型转换,执行非兼容类型之间的类型转换。上面的语句写成下面的形式就不会发生错误: long i=10; int j=(int)i; 强制类型转换的格式是:(数据类型)变量名 将占用位数较长的数据转化成占用位数较短的数据时,可能会造成数据超出较短数据类型的取值范围,造成“溢出”。 3.3.6 其他运算符3对象运算符(instanceof) 对象运算符instanceof用来判断一个对象是否是某一个类或者其子类的实例。如果对象是该类或者其子类的实例,返回ture;否则返回flase。 对象是类的一个实例,类是同种对象的抽象,是创建对象的模板。在程序中创建个对象将在内存中开辟一块空间,其中包括该对象的属性和方法。4.2.4 构造函数-构造函数的一般概念要使用对象,首先必须构造它们,并指定它们的初始状态,然后将方法应用于对象。使用构造函数(constructor)来构造新的实例。一个构造函数是一个新的方法,它的作用是构造并初始化对象。构造函数是类的一种特殊方法,它的特殊性主要体现在如下的几个方面:(1)构造函数的方法名与类名相同。(2)构造函数没有返回类型。(3)构造函数的主要作用是完成对类对象的初始化工作。(4)构造函数不能由编程人员显式地直接调用。(5)在创建一个类的新对象的同时,系统会自动调用该类的构造函数为新对象初始化。4.2.4 构造函数-创建自己的构造函数构造函数的名字和类的名字是相同的。当构造Employee类的对象时,此构造函数被启动,实例字段赋初值,在Java中,定义和初始化是统一的两者缺一不可。 例如,用下面的代码创建Employee类的一个实例时,new Employee (“James Bond”,100000,1950,1,1);构造函数的特点有:(1)构造函数和类具有相同的名字。(2)一个类可以有多个构造函数。(3)构造函数可以有0个、1个或多个参数。(4)构造函数没有返回值。(5)构造函数总是和new运算符一起被调用。4.2.4 构造函数-构造函数的作用(1)对象初始化(2)引入更多的灵活度(变量赋值或更复杂的操作)(3)Java中可以不定义构造函数 Java中可以不定义构造函数,此时系统会自动为 该系统生成一个默认的构造函数。这个构造函数的名字与类名相同,它没有任何形式参数,也不完成任何操作。 为了避免失去控制,一般将构造函数的声明与创建分开处理。 4.3.4 Java API中的方法-Math方法的调用实例调用方法的一般格式是先写方法名,然后是左括号,接着是参数(argument)或由逗号分隔的参数表,最后是右括号。例如,要计算并且打印出900的平方根,调用方法的语句格式:Java推出了“访问控制修饰符”的概念,允许库创建者声明哪些东西是客户程序员可以使用的,哪些是不可使用的。这种访问控制的级别在“最大访问”和“最小访问”的范围之间,分别包括:public、“default”(无关键字),protected以及private。下面的列表说明访问控制修饰符含义:Public公共访问protected保护访问private protected私有保护访问private私有访问7.1 图形用户界面概述 Java1.0的出现带来了抽象窗口工具箱(AWT)。设计目标是希望构建一个通用的GUI,Swing提供了四种顶层容器:JFrame(独立窗口)、JApplet、JDialog(对话框)、JWindow(不带标题行和控制按钮的窗口)。Component类是所有GUI对象的祖先,Window类是Frame类的父类,JFrame类直接从Frame继承而来。对于框架外观的操作比较重要的方法如下:setIconImage窗口最小化(在Java中称为图标化)时,把一个Image对象用作图标。setTitle设置窗口中标题栏的文字。setResizable设置用户是否可以改变框架大小。dispose方法关闭窗口,并回收该窗口的所有资源。setLocation设置组件的位置。setBounds重新设置组件的大小和位置。 7.2.4 文本和字体 通过Font类对象设置字体。Font StringFont = new Font (“宋体”, Font.ITALIC, 20 ); 不同的系统中安装了不同的字体,为了得到本系统中所有已安装的字体,我们可以通过GraphicsEnvironment类的getAvailableFontFamilyNames方法来实现。该方法返回一个字符串数组,数组内包含所有可用的字体名。7.2.6 颜色 Graphics类提供了与颜色相关的方法:getColor返回当前颜色设置。setColor设置当前颜色。setColor方法的调用格式为:void setColor(Color c) 我们可以选用Color类提供的13种标准颜色的预定义常数,也可以采用Color构建器来创建Color对象:Color(int redness, int greenness, int blueness)参数redness,greenness,blueness分别表示红、绿、蓝的值,它们的值在0至255范围内。JFrame类的超类Component类提供的颜色操作的相关方法:setBackground设置背景色。setForeground设置在组件上进行绘制的默认颜色。_重点简答 7.3.1 事件处理原理 如果用户在用户界面执行了一个动作,这将导致一个事件的发生。事件是描述发生了什么的对象。在Java中,定义了各种不同类型的事件类,用来描述各种类型的用户操作。事件是由事件源产生的,事件的产生者称为事件源。例如,在Button组件上点击鼠标会产生以这个Button为源的一个事件:ActionEvent。 事件源拥有自己的方法,我们通过它向其注册事件监听器。事件监听器是一个类的实例,这个类实现了一个特殊的接口,称为Lintener interface。当事件源产生了一个事件以后,事件源就会发送通知给相应的事件监听器,监听器对象根据事件对象内封装的信息,决定如何响应这个事件。 7.3.2 处理按钮点击事件 创建按钮:JButton MyButton = new JButton(“Java”); 通过Container类的Add方法,将组件加入到该容器中:class MyPanel extends JPanelpublic MyPanel()JButton MyButton = new JButton(“Java”);add(MyButton);为按钮设置监听器。指定的监听器必须实现ActionListener接口的actionPerformed方法:public void actionPerformed(ActionEvent event)WindowListener接口实现方法一:定义一个类来实现WindowListener接口,在感兴趣的方法中添加我们需要的代码,然后让其他方法为空即可:class QuitWindow implements WindowListenerpublic void windowClosing(WindowEvent e)System.exit(0);void windowOpened(WindowEvent e) void windowClosed(WindowEvent e) void windowIconified(WindowEvent e) void windowDeiconified(WindowEvent e) void windowActivated(WindowEvent e) void windowDeactivated(WindowEvent e) AWT将事件分为两类:语义(Semantic)事件ActionEvent:对应按钮点击、菜单选择、列表框选择、在文本域中按回车键等。AdjustmentEvent:用户调整滚动条。ItemEvent:用户从一组选择框或者列表项中进行选择。TextEvent:文本域或者文本框中的内容发生改变。7.4.2布局管理器 在Java中,提供了布局工具以支持用户界面元素的自动定位。容器中的所有组件都由一个布局管理器进行动态管理。 流布局管理器在一行上水平排列组件,直到该行没有足够的空间为止,然后另起一行继续排列。当用户缩放容器时,布局管理器将进行自动控制,重新排列。我们可以指定流布局管理器的组件排列方式,如居中(默认)、左对齐、右对齐等。如:setLayout(new FlowLayout(FlowLayout.LEFT); /左对齐setLayout(new FlowLayout(FlowLayout.RIGHT); /右对齐setLayout(new FlowLayout(FlowLayout.CENTER); /居中 边界布局管理器边界布局管理器的布局分为五个位置:CENTER、EAST、WEST、NORTH、SOUTH,我们可以把组件放在这五个位置的任意一个,如果未指定位置,则缺省的位置是CENTER。采用边界管理器进行布局时,四周的组件先被放置,剩余的空间由位于中间的组件占用;当容器的大小改变时,四周组件的厚度不会被改变,而中间组件的大小需要改变4.4.1 公共访问控制符publicJava中类的访问控制符只有一个:public,即公共的。一个类被声明为公共类,表明它可以被所有的其他类所访问和引用,这里的访问和引用是指这个类作为整体是可见和可使用的,程序的其他部分可以创建这个类的对象、访问这个类内部可见的成员变量和调用它的可见的方法一个类作为整体对程序的其他部分可见,并不能代表类内的所有属性和方法也同时对程序的其他部分可见,前者只是后者的必要条件,类的属性和方法能否为所有其他类所访问,还要看这些属性和方法自己的访问控制符。 4.4.2 缺省访问控制符default假如一个类没有访问控制符,说明它具有缺省的访问控制特性。这种缺省的访问控制权规定该类只能被同一个包中的类访问和引用,而不可以被其他包中的类使用, 4.4.3 私有访问控制符private用private修饰的属性或方法只能被该类自身所访问和修改,而不能被任何其他类,包括该类的子类,来获取和引用。 4.4.4 保护访问控制符protected 用protected修饰的成员变量可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类。使用protected修饰符的主要作用是允许其他包中的它的子类来访问父类的特定属性。 protected关键字为我们引入了一种名为“继承”的概念,它以现有的类为基础,并在其中加入新的成员,同时不会对现有的类产生影响我们将这种现有的类称为“基础类”或者“基本类”(Base Class)。亦可改变那个类现有成员的行为。对于从一个现有类的继承,我们说自己的新类“扩展”(extends)了那个现有的类。 4.4.5 私有保护访问控制符private和protected按顺序连用构成一个完整的访问控制符:私有保护访问控制符。用private protected修饰的成员变量可以被两种类访问和引用,一种是该类本身,一种是该类的所有子类,不论这些子类是与该类在同一个包里,还是处于其他的包中。 相对于protected,private protected修饰符把同一包内的非子类排除在可访问的范围之外,使得成员变量更专有于具有明确继承关系的类,而不是松散地组合在一起的包。 4.5.1 静态修饰符static称为静态修饰符,它可以修饰类中的属性和方法。使用static(静态)关键字,可满足两方面的要求:(1)一种情形是只想用一个存储区域来保存一个特定的数据无论要创建多少个对象,甚至根本不创建对象;被static修饰的属性称为静态属性,这类属性一个最本质的特点是:它们是类的属性,而不属于任何一个类的具体对象。换句话说,对于该类的任何一个具体对象而言,静态属性是一个公共的存储单元,任何一个类的对象访问它时,取到的都是相同的数值,同样任何一个类的对象去修改它时,也都是在对同一个内存单元做操作。2)另一种情形是我们需要一个特殊的方法,它没有与这个类的任何对象关联。也就是说,即使没有创建对象,也需要一个能调用的方法。 static一项重要的用途就是帮助我们在不必创建对象的前提下调用那个方法。 5.3.3父类对象与子类对象的使用与转化现介绍程序里父类对象与子类对象间的指代使用和转化。this和super是常用来指代父类对象与子类对象的关键字. 1this this表示的是当前对象本身,更准确地说,this代表了当前对象的一个引用。对象的引用可以理解为对象的另一个名字,通过引用可以顺利地访问对象,包括修改对象的属性、调用对象的方法。 super表示的是当前对象的直接父类对象,是当前对象的直接父类对象的引用。所谓直接父类是相对于当前对象的其他“祖先”而言的。 提供一个构造函数:public Manager(String n,double s,int year,int month,int day)super(n,s,year,month,day);bonus=0;这里关键字super具有不同的意义。代码:super(n,s,year,month,day);的意思是“调用Employee父类的构造函数,同时带有n、s、year、month以及day参数”。父类对象与和子类对象的转化需要注意如下的原则:(1)子类对象可以被视为是其父类的一个对象;(2)父类对象不能当成是其某一个子类的对象;(3)如果一个方法的形式参数定义的是父类对象,那么调用这个方法时,可以使用子类对象作为形式参数;(4)如果父类对象引用指向的实际是一个子类对象,那么这个父类对象的引用可以用强制类型转换转化成子类对象的引用。 5.3.4 多态性在工资系统中的应用下面给出了一个根据员工类型利用抽象方法和多态性完成工资单计算的程序。Employee是抽象(abstract)父类,Employee的子类有经理Boss,每星期发给他固定工资,而不计工作时间;普通雇员CommissionWorker,除基本工资外还根据销售额发放浮动工资;对计件工人PieceWorker,按其生产的产品数发放工资;对计时工人HourlyWorker,根据工作时间长短发放工资。该例的Employee的每个子类都声明为final,因为不需要再由它们生成子类。(1)对所有员工类型都使用earnings方法,但是每个人挣的工资按他所属的员工类计算,所有员工的类都是从父类Employee继承出的。(2)如果一个子类是从一个具有abstract方法的父类继承的,子类也是一个abstract类并且必须被显式声明为abstract类。(3)一个abstract类可以有实例数据和非abstract方法,而且它们遵循一般的子类继承规则。(4)现在分析一下Employee类,其中public方法包括:构造函数,以及一个abstract方法earnings。为什么earnings方法应是abstract呢?因为在Employee类中为这个方法提供实现是没有意义的,谁也不能为一个抽象的员工发工资,而必须先知道是哪种员工。(5)Boss类是从Employee中继承出来的,其中public方法包括一个以名、姓和每周工资作为参数的构造函数(6)CommissionWorker类从Employee中继承出来。(7)PieceWorker类,也是从Employee继承。(8)HourlyWorker类亦从Employee继承。(9)Test应用程序的main方法首先声明了ref为Employee引用。构造函数的作用是来定义对象的初始状态。然而由于对象的构造如此重要,Java还另外提供了一些不同的机制来编写构造函数。5.4.1 默认字段初始化如果在构造函数中没有明确地给某个字段赋值,那么此字段会被自动地赋值以一个默认值:若是数字则被赋值以0,若是布尔类型则被赋值以false,若是对象引用则被赋值以null。但使用默认值被认为是一种糟糕的编程做法。因为,如果字段以不可见的形式被初始化会使得别人很难读懂程序。5.4.2 默认构造函数默认构造函数是指没有参数的构造函数(这种构造函数有时也称作无参数构造函数)。例如,下面是个Employee类的默认构造函数:public Employee()name=”;salary=0;hireDay=new Date();如果编写了一个没有构造函数的方法,则系统会自动为此方法提供一个默认构造函数。此默认构造函数将所有的实例字段初始化为默认值。5.4.3 显式字段初始化由于在类中可以重载构造函数方法,所以可以采用多种方式来设置类中实例字段的初始状态不管什么样的构造函数调用,确保每个实例字段都被设置为某个有意义的值是一种很好的习惯。 在类的定义中,可以简单地把一个值赋值给任何字段。例如,private String name=”lili” 在执行构造函数前,此赋值会被执行。当类中所有的构造函数都需要把某一特定的实例字段赋值以相同的值时,此语法非常有用。 5.4.5 调用另一个构造函数关键字this指向隐式参数。此外,此关键字还有另一种含义。如果构造函数第一个语句具有形式this(),那么此构造函数调用此类中的另一个构造函数。下面是一个典型的实例:public Employee(double s)/calls Employee(String,double)this(“Employee #”+nextId,s);nextId+;5.5.1 包

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论