版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选精选.精选.?Java语言程序设计? Java语言根底Java语言的特点。 Java语言主要有以下特点:强类型:强制约束程序员必须遵守更多的编程规定,编译器能检测程序中尽可能多的错误。编译和解释:用Java编写的源程序在计算机上运行必须经过编译和解释执行两个阶段。编译程序先江Java源程序翻译成与机器无关的字节码bytecode,不是通常的编译程序将源程序翻译成特定计算机的机器代码。运行时,由Java虚拟机JVM中的Java解释器负责将字节码文件解释成为特定的机器码进行运行。自动无用内存回收功能:垃圾收集器garbage collector可以自动回收程序不再使用的内存,防止程序遗漏或重复
2、释放内存。面向对象与平台无关:与平台无关是对程序可移植性最直接最有效的支持,“一次编程,到处运行。可移植性源于两方面:1. Java的编译和解释的特征Java虚拟机;2. Java采用基于国际标准的数据类型,在任何平台上,同一种数据类型是一致的。平安性:取消指针,防止因指针使用不当,访问不该访问的内存空间;提供数组下标检测机制,禁止程序越界访问内存;编译执行过程中进行比较严格的检查:在解释执行前,对字节码文件作检查,防止被恶意改动的字节码文件被解释执行而破坏系统;浏览器限制下载的小应用程序不允许访问本地文件,防止其破坏本地文件。分布式计算多线程:Java的运行环境采用多线程实现。Java语言提
3、供语言级多线程支持,用Java语言能直接编写多线程程序。两种类型的Java程序。 Java程序可分为应用程序Application和小应用程序Applet两类。这两种程序的主要区别:小应用程序需要嵌入在HTML网页中,当网页被浏览时,在浏览器中运行;且其运行受到严格的平安限制。应用程序那么独立运行,不嵌入网页,也没有那些限制。另外,这两类程序在代码编写上也有差异:一个小应用程序必须定义为java.applet.Applet类的子类,而不必定义main()方法;应用程序一般不必为java.applet.Applet类的子类,而必须在一个类中定义main()方法。注释:行注释/块注释/* . */
4、文档注释/* */Java程序的开发过程 java编译器java编译器字节码文件.class编写源程序文件.javaJava编译器字节码文件.class由Web浏览器执行有Java解释器执行应用程序Applet通常在JDK目录下有bin、demo、lib、jre等子目录,其中bin目录保存了javac编译器、java解释器、jdb调试器、appletviewerjava Appelt解释器等命令文件;Java的字符集和标识符。 Java语言使用Unicode字符集,字符采用双字节的表示方式,共有65535个字符,最前面的128个字符与标准的ASCII字符一致,包括:数字字符10个09英文大小写
5、字母各26个AZ, az下划线_、美元符号$文字字符汉字,日文片假名、平假名,朝鲜文字等其他用于构成特殊符号的字符集标识符可以用来标识文件名、变量名、类名、接口名和成员方法名等,其构造规那么如下:标识符由Java字母和Java数字组成;精选精选.精选.首字符必须是Java字母;除去关键字、false、true和null;所有标识符是区分大小写的。关键字是Java语言保存的一些英文单词,具有特殊的含义。例如:public、static和class,具有特殊用途,不能作为标识符使用。根本数据类型。 布尔型boolean1个字节true或false)字符型char16位字节型byte8位短整型sho
6、rt16位整数型int32位长整型long64位单精度浮点型float32位双精度浮点型double64位Java直接量是直接显式地表示根本数据类型数据、字符串String值和空引用值null的表达式,而且在该表达式中不含运算。 布尔(boolean)直接量只有两个:true和false字符(char)直接量:如a,6,猫,u0061,n整型(byte,short,int)直接量:如-27,+0123,0 x56ab长整型(long)直接量:如-27L,+0123L,0 x56abL浮点数(float,double)直接量:如1.5,45.6D,100d,76.4e8,-32.0 ,1.5F,
7、 45.6f, 76.4E-8F,-32.0F字符串(String)直接量:如“Hello World!引用数据类型的直接量:null变量在计算机内部对应着一个存储单元,而且总是具有某种数据类型:根本数据类型或引用数据类型。每个变量均具有:名字、类型、一定大小的存储单元以及值。变量总是具有与其数据类型相对应的值。根本数据类型:变量的存储单元中存放的是具体的布尔值或数值;引用数据类型:变量的存储单元中存放的是引用值,引用值一般用来指向某个具体的对象。如果引用值是null,那么该引用值不指向任何对象。在使用变量前,必须先定义该变量,而且一般要求先初始化。例如:int studentNumber;
8、/定义单个变量studentNumber=30; /给变量赋值double velocity, distance; /定义多个变量int studentNumber=30; /定义变量,并赋初值运算和语句赋值运算。 简单赋值运算,格式如下:变量=表达式不是“相等运算符“=。赋值语句中的数据类型转换只能是简单类型向复杂类型转换,不能从复杂的转换成简单的。转换规那么如下:byteshortintlongfloatbouble复合赋值运算,格式如下:变量 双目算术运算符= 表达式包括:+=、-=、*=、/=、&=、|=、%=、=和=。例如:a+=b等价于a=a+b,a/=b+c等价于a=a/(b+c
9、)。算术运算符。 算术运算符包括:+取正, -取负 单目运算 +, -, *, /, % 双目运算本卷须知:当操作数是定点类型数据时,应当注意运算是否会溢出int i=123456;i=i*i; /溢出整数除法:截去余数,7/5结果为1考虑除数是否可能为0或很小的数取模:返回余数,可以对定点或浮点数进行取模运算,7%5结果为2;15.25%(-0.5)结果为0.25自增自减运算。 自增(+)和自减(-):操作数必须是变量;有前置和后置两种运算int n=3;int i=n+, j=n-;/i=3,j=4,n=3精选精选.精选.int k=+n, m=-n;/k=4,m=3,n=3前缀 和后缀,
10、 对变量本身,效果相同;但表达式的值不相同。运算对象只能是变量,不能是常量或表达式,如:7+;(i+j)-都是非法的。关系运算符。 关系运算符包括: 、=、= 和 !=,关系运算生成一个布尔结果。例如:1 2;/false3.5 != 1; /true 51.5 = 23.0; /true540 = 654; /true24 = 3*8; /trueboolean test1=(10 10); /test1=false;关系运算符的优先级:、=优先于=、!=;、=优先级相同,结合性是自左向右;=、!= 优先级相同,结合性是自左向右。【注意】Java不允许将一个数字作为布尔值使用,这与c或c+不
11、同。例如:当要表达“如果a不等于0这个条件不能写作 if(a)而要写作 if(a!=0)逻辑运算符。 逻辑运算的操作数必须是布尔型,结果也是布尔型。可以有3种根本操作:与&、或|、非!。短路规那么:一旦能够明确无误确实定整个表达式的值,就不再计算表达式余下的局部了。因此,整个逻辑表达式靠后的局部可能不会计算。比较:(birthday = true) & (+age = 65)(birthday = true) | (+age = 65)! 优先于 双目算术运算符 优先于 关系运算符 优先于 & 优先于|条件运算符。 条件运算符是一个三目运算符,一般形式为:逻辑表达式 ? 表达式1 : 表达式2
12、例如: int i = 5; int k = (i=0) ? 1 : -1;条件运算符的结合性为“自右至左。例如: x y ? x : u v ? u : v 等价于x y ? x : u v ? u : v位运算和位移运算。 位运算符包括:&、|、移位运算符有 : 、和 带符号右移:左端空出的位填原符号位不带符号右移逻辑右移:左端空出的位填0C或C+中无此运算符位运算操作是:先将整数写成二进制形式补码,然后按位操作,最后产生一个新的数注意: 只用于定点类型数据整型根本语句。 表达式语句:k=k+2;空语句 ;break语句:break; 用于循环或选择continue语句:continue;
13、 同上return语句:return;, return 表达式;,该语句的执行将结束方法的执行,只能出现在方法体中。复合语句。 用花括号引起来的两条或两条以上语句,顺序执行但作为一个整体。在复合语句中可以定义自己专用的临时变量。if语句。 if语句的格式是:if (布尔表达式) 语句或if (布尔表达式) 一条或多条语句例如:精选精选.精选.if(score = 60) System.out.println(Passed);if-else语句。 if-else语句的格式是:if (布尔表达式) 语句1或语句块1else 语句2或语句块2例如:if (score = 60) System.out
14、.println(Passed!);else System.out.println(Failed!);标准嵌套if-else控制结构可实现多路选择,用在想从多个候选项中选择且只选出一项时。例如:if (score90) System.out.println(“A) ;else if (score=80) System.out.println(“B) ;else if (score=60) System.out.println(“C) ;else System.out.println(“F) ;switch语句。 switch语句的格式是:switch (表达式)case 值1: 语句组1; b
15、reak;case 值2: 语句组2; break; case 值n: 语句组n; break;default: 语句组(n+1);switch表达式的数据类型可以是根本类型char、byte、short、int;或是这四种根本类型相对应的包装类java.lang.Character、java.lang.Byte、java.lang.Short、java.lang.Integer或enum枚举类型。跟在case后的必须是常量表达式,其值的类型应当与switch表达式的数据类型相匹配。Switch语句的执行规那么:求出表达式的值;找出给定值与表达式相符的case语句,执行此case标号后的所有语
16、句除非遇到break语句,直到switch语句结束;假设没有匹配的case语句,那么转向defalult语句,执行default标号后的所有语句,直到switch语句结束。假设没有匹配的case语句,也没有defalult语句,那么switch语句的这次执行立即结束。trycatch语句。 try 语句块/执行该语句块,可能会发生异常 catch (异常类型e) 异常发生时要执行的语句块 finally 无论异常发生与否,都要执行的语句块说明:Catch和 finally 必须和一个try相关联try至少要有一个catch, 可以有多个finally语句块是可选的精选精选.精选.while语句
17、。 while语句的格式:while (布尔表达式) 语句或语句块当条件(布尔表达式)为true ,那么不断地执行语句或语句块。“while 循环的中止条件是布尔表达式变为false,如果布尔表达式一开始就为false,那么不执行循环体。有时循环条件很难写出,可以直接使用true, 格式如下:While (true) If( 条件表达式 break;do-while语句。 do-while语句的格式是:do 语句或语句块while (布尔表达式);do-while和while结构唯一的区别就是do-while中的语句至少会执行一次,即便布尔表达式第一次就被计算为false。注意最后的分号,一定
18、不能省略。for语句。 for语句的格式是: for (初始化表达式; 条件表达式; 更新表达式) 语句或语句块例如: int counter, sum; for(counter=1,sum=0; counter=100; counter+) sum+=counter; System.out.println(“counter=“ + counter + , sum= + sum);注意变量counter和sum的作用域,假设将它们改在for语句内部定义,会有何不同。在for语句的初始化和更新局部,可以使用多个由逗号分隔的表达式,这些表达式都会独立执行。例如: for(int 1=1, j=i+
19、10; i 5; i+, j=i*2) System.out.println(“i = + i + “ j = + j); 注意:通过逗号操作符,可以在初始化局部定义多个变量,但这些变量必须具有相同的类型。无论在初始化还是更新局部,表达式都是顺序执行的。嵌套的循环结构。 for循环的嵌套while循环的嵌套do.while循环的嵌套以上三个任意之间的嵌套continue语句。 格式:continue;功能:跳过continue之后的语句,重新判断循环控制条件,决定是否继续循环。说明:continue语句只能用在三种循环语句的循环体中。continue语句通常和if语句联合使用,从而构成其后的局
20、部循环体是否执行的单分支结构。break语句。 格式:break;功能:强制结束当前的循环,不再执行循环体中break后面的语句。说明:break语句只能在三种循环语句的循环体和switch语句中使用。在循环语句中break通常和if语句联合使用,用于构成第二个退出循环的时机。Package语句。 程序包相当于其它语言的函数库,系统提供大量的程序包,自己编写的类也可以组成程序包,但一定要用package语句声明。格式: package 包名;精选精选.精选.包名是一个目录名,可以有路径。import 语句。 用来引入所需要的类格式:import 包名.类名;例如: import java.ut
21、il.Date;/引入Date类如果从一个包中引入多个类,可以用通配符“*, 如: import java.awt.*;一个java源程序中可以有多个import语句, 它们必须出现在package语句之后;类的定义之前。Java程序的根本结构。 package 包名;import 包名.类名; / 更多的import语句public class 类名int val= /变量定义语句Public static void main( String args )/ 方法定义 / 变量定义和控制语句构成的方法体 面向对象编程根底抽象 抽象是程序设计最经常使用的技术之一,是有效控制程序复杂性的重要手段
22、。在面向对象程序设计中:把一系列复杂的属性与动作组织到单个模块中,然后把该模块当作一个整体对象来对待,就是一种抽象形式。把一个问题分解成构成它的对象,也是一种抽象形式。对象object万物皆为对象,它存储数据,还可以要求它在自身上执行操作。对象具有状态、行为和标识。这意味着每一个对象可以拥有内部数据它们给出该对象的状态和方法它们产生行为,并且每一个对象都可以唯一地与其他对象区分开来每一个对象在内存中都有唯一一个地址。消息message在面向对象框架中,对象之间通过相互发送消息来进行交互。在Java里,通过调用方法来传递消息。类class类定义了某种类型的所有对象所具有的属性与行为,是用来创立对
23、象的蓝图或模板;对象是某个确切类的实例。在创立一个类的实例对象之前必须定义这个类。继承性inheritance 多态性polymorphism类 1类的声明类的定义格式如下:类修饰词 class 类名 extends 父类名 implements 接口名称列表 类体 / 通常先定义成员变量,再定义构造方法,最后编写成员方法2成员变量成员变量的定义格式如下:修饰词列表 类型 变量名或带初始化的变量名列表;例如:private float height, weight; private String name, sex, no;3方法类的成员方法:简称方法,用来实现类的各种功能。方法的定义格式如下
24、: 方法修饰词列表 返回类型 方法名(方法的参数列表) 方法体 例如: public int mb_method() 精选精选.精选. public static void main(String args) 例3.2假设某方法的参数名或局部变量名与类的成员变量名相同,那么成员变量名在这个方法内部暂时被隐藏。例3.3关键字this:对当前对象的引用 4构造方法构造方法用来创立类的实例,并对对象初始化。构造方法的声明和一般方法声明非常相似,但是它必须和类同名,并且不能声明返回值类型。构造方法的一般形式: public ( ) 默认的构造方法:当一个类没有包含构造方法时,Java将自动提供一个默认
25、的构造方法。对象 1声明对象声明一个对象只是命名一个引用变量,这个引用变量和对象关联,可以用来引用该对象。声明一个对象的格式如下: 类名 变量名对象名; 例如,声明对象: Point p1,p2;不要把声明一个对象和创立一个对象混淆起来。声明对象并不会为这个对象分配内存。2创立对象创立对象:使用new操作符和构造方法。构造方法是在对象实例化过程中使用的特殊方法;操作符new为新的对象分配一片内存并将它存储在那里,然后返回对象的地址。格式为: new 构造方法名(构造方法的调用参数列表) 例如: p1 = new Point(); p2 = new Point(30,40);声明和创立对象也可以
26、一起完成,例如: Point p3 = new Point(), p4 = new Point(60,70);3对象的内存模型在Java中有两种类型的变量:根本类型与引用类型。根本类型的变量总是存放一个该类型的值;引用变量实际上存放的是它所引用的对象的地址,而不是存放对象本身。在Java中,主要有数组和类类型是引用类型。 4使用对象程序使用对象:访问对象的成员变量,一般形式为: 对象名.成员变量名调用对象的方法,一般形式为: 对象名.方法名(参数表)实例变量和类变量 被关键字static修饰的变量为类变量静态变量,未被关键字static修饰的变量为实例变量。 例如: class D float
27、 x; / 实例变量 static int y; /类变量 每个对象都有自己的实例变量,不同对象的实例变量也将被分配不同的内存空间。类变量那么被一个类的所有对象共享,在内存中也只有一处。可以通过类名或对象名引用类变量。实例方法和类方法 被关键字static修饰的方法为类变量静态方法,未被关键字static修饰的方法为实例方法。例3.7注意:类中的实例方法可以互相调用,并可调用类方法。类方法也能相互调用,但不能直接调用实例方法,而要通过在类方法中引入局部对象,通过对象名调用实例方法。类中的实例方法中可以直接使用实例变量,也可直接使用类变量。但类方法能直接使用类变量,却必须通过在类方法中引入的局部
28、对象,用对象名引用实例变量。精选精选.精选.类方法可以通过类名或对象名调用。例3.8访问权限 设置访问权限实现访问控制,为类的成员设置访问权限,保护类的成员不在非期望的情况下被引用。在类的声明中,除了类的方法总能访问类的成员变量外,为其他类的方法访问本类的成员变量和方法,提供了四种访问权限:public:无访问限制,其他类的方法都能访问private:最强访问限制,其他类的方法都不能访问protected:仅限子类或同一包中的类的方法访问:只允许同一包中的类的方法访问继承 继承性 - 软件重用的一种方法继承使得一个类可通过扩展现有类来定义扩展声明的新类称为子类,原有的类称为超类父类子类继承超类
29、的变量和方法;子类可以增加新的变量和方法;子类可以重写第51页从超类中继承的方法。子类对父类的继承性,Java语言有以下规定:子类自然地继承其父类中非private的成员变量作为自己的成员变量子类自然地继承其父类中非private的成员方法作为自己的成员方法多态性 静态的多态性:重载,在编译时就能够被识别针对的是同一个类内的同名方法重载的方法。动态的多态性:重写,在程序运行时才被识别动态联编重写父类的方法同样签名。多层继承 继承关系具有传递性。继承声明的新类,又可被其他类再继承,从而构成多层继承。 Java面向对象的其他机制 1 final类、final方法和final变量关键字final的含
30、义为“最终的,“不能改变的。用final修饰类,说明此类不能派生出子类,例如:final class C 用final修饰方法,说明此方法不能被子类的方法重写覆盖 例如:final int f( int x, int y ) 用final修饰变量,说明此变量一旦赋值,那么不能再被改变,相当于一个常量 例如:final int FINALVAR = 100;2abstract类和abstract方法关键自abstract的含义为“抽象,用abstract修饰类,此类称为抽象类,抽象类不能被实例化;用abstract修饰方法,此方法称为抽象方法,抽象方法没有实现的代码方法首部; 包含抽象方法的类一
31、定是抽象类,但抽象类可以没有抽象方法。3关键字super关键字super的用途:在子类型的非静态成员方法中访问其父类型的成员变量4关键字this关键字this的用途:在当前类的非静态成员方法中访问当前类的成员变量5类之间的is-a和has-a关系例:类A继承自类B,子类A与父类B之间有is-a关系例:类A的某个成员变量的类型是B,类A和类B之间是has-a关系6内部类inner class定义在其它类内部的类称为内部类。接口(interface)Java小应用程序根底 Java Applet主要功能:显示图形、动画、播放声音、响应用户事件等。Java applet 的实现主要依靠java.ap
32、plet 包中的Applet类。 java. applet. Applet类是所有Java applet的基类,所有的Java applet都必须继承该类。1小应用程序的建立和运行 Java applet程序从建立到运行的步骤如下:选用写字板或文本编辑器等工具建立Java applet源程序。其中必须有一个类继承java.applet.Applet类,这个类是小应用程序的主类,用关键字public修饰。把Java applet的源程序编译为字节码文件。精选精选.精选.编制HTML文件,通过标记将字节码文件嵌入HTML文件中。在支持Java的浏览器上运行。2Applet类的根本方法 public
33、 void init( )public void start( )public void paint( )public void stop( )public void destroy( )public void repaint( )public void update( )4小应用程序数据输入与输出 小应用程序的数据输入有多种方式:从图形用户界面的文本框、文本区域中输入;采用系统标准输入;由HTML文件中的参数导入。数组和字符串1. 数组 数组是连续存储区域的命名集合,这些存储区域彼此相邻,存放着相同类型的数据元素。一维数组 1声明一维数组一维数组变量的声明格式有如下两种:数组元素的数据类型
34、数组名;数组元素的数据类型 数组名 ;2创立一维数组Java数组是引用类型,可以通过new 操作符来创立;在创立一个数组时必须指明数组的元素类型和它的长度。先声明后创立 格式:数组名 = new 数组元素类型元素个数 例如: char c; / 声明数组 c = new char5; / 创立数组,并分配内存在声明时创立 例如: char c = new char5;对于较小的数组,可以使用直接赋值创立,即在声明数组时赋给它初值。数组初始化表达式写成一组用逗号分开的扩在花括号里的表达式。例如:int arr = 2, -9, 15, -2, 0, 80, 7; char c = h, e, l
35、, l, o;3引用一维数组元素数组的每个元素通过它在数组里的位置来引用:数组名 下标 ,例如:arr7数组下标必须是0到N-1之间的整数,或值在0到N-1之间的整数表达式,其中N是数组里元素的个数。例如:arr7、arri+j其中i=1, j=6使用一个不在0到N-1范围内的下标值系统将发生运行时异常,这是由于Java运行系统会对数组下标自动进行范围越界检查。例如:arr-1、arr15多维数组 1声明二维数组声明二维数组的形式有以下三种:数据元素类型 数组名 数据元素类型 数组名数据元素类型 数组名 2创立二维数组创立二维数组的方法也有多种:直接分配适用于平衡二维数组,即矩阵格式:类型 数
36、组名 = new 类型长度1长度2;例如: double rainfall = new double1231;从最高维开始,分别对每一维分配不等长空间适用于非平衡数组例如: int a = new int3 ; int a0 = new int4; int a1 = new int5; int a2 = new int2;直接赋值创立适用于元素较少的数组例如:int x = 5,6,7,精选精选.精选. 8,9,10,11, 18,19,20,15, 2,9 ;3引用二维数组元素书中例如的非平衡二维数组x中,x23值为154使用二维数组要注意的问题二维数组名下标1是一维数组。二维数组名.len
37、gth是二维数组的子数组个数;二维数组名下标1.length是指定子数组的元素个数。2. 字符串 字符串常量 双引号括起来的字符序列。例如:“student、“你好 或“123.456字符串声明和创立 String name1 = new String( );String name2 = new String(“Hello World);char a = 1,2,3,4,5,6,7;String name3 = new String(a);String name4 = new String(a,2,4);字符串根本操作 1字符串连接String s1 = “sweet;String s2 =
38、new String( “you + “are + s1);2获取字符串长度方法:public int length() 功能:返回此字符串的长度3字符串前缀或后缀的比较方法:public boolean startsWith(Stringprefix)功能:测试此字符串是否以指定的前缀开始方法:public boolean endsWith(Stringsuffix)功能:测试此字符串是否以指定的后缀结束 4比较两个字符串是否相同方法:public boolean equals(Objectobj)功能:比较两个引用变量是否引用同一个对象,例如x.equals(y),对于任何非空引用值 x
39、和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 truex = y 具有值 true。方法:public boolean equalsIgnoreCase(StringanotherString)功能:将此 String 与另一个 String 比较,不考虑大小写。如果两个字符串的长度相同,并且其中的相应字符都相等忽略大小写,那么认为这两个字符串是相等的。方法:public int compareTo(Stringstr)功能:按字典顺序比较两个字符串的大小。该比较基于字符串中各个字符的 Unicode 值。如果此 String 对象小于参数字符串,那么返回一个负整数。如果此 S
40、tring 对象大于参数字符串,那么返回一个正整数。如果这两个字符串相等,那么返回 0。方法:public int compareToIgnoreCase(Stringstr)功能:按字典顺序比较两个字符串,不考虑大小写。 5字符串检索String的实例方法indexOf( ) 可以 用于在字符串中查找一个字符或子串的索引位置。indexOf( )方法在一个String里从左到右查找一个字符或子串,它有几种版本:public int indexOf( String string );public int indexOf( String string, int startingIndex );6
41、取字符串的子串方法substring( )可以用 来从一个String里检索一个字符子串。 public String substring( int startIndex ) 例如: String str = “HelloWorld; str.substring( 5 ); / “World str.substring( 9 ); / d7替换字符串中的某字符得到一个新字符串方法:public String replace(charoldChar, charnewChar)功能:返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。8去掉前后空格得到
42、一个新字符串方法:public String trim() 精选精选.精选.功能:返回字符串的副本,去掉前后空白。9根本类型值的字符串表示String的类方法valueOf( )用于把某种根本类型的值转换成一个String对象。10字符串得到根本类型对象每种根本类包装类,除Character都有类方法能将字符串转换成根本类的对象,形如: public static Type valueOf(String s) 其中,Type代表任何根本类,包括Boolean、Integer、Double等。11字符串得到根本类型值每种根本类包装类,除Character都有类方法能从字符串中解析出根本类型的值,
43、形如: public static type parseType(Strings) 其中,type代表任何根本数据类型,包括boolean、int、double等,Type代表相应的包装类。StringTokenizer类 java.util.StringTokenizer类用来把字符串分解为标记。常用构造方法1:public StringTokenizer(Stringstr) /为指定字符串构造一个 string tokenizer。使用默认的分隔符集 “tnrf,即:空格字符、制表符、换行符、回车符和换页符。 常用构造方法2:public StringTokenizer(Stringst
44、r, Stringdelim) /为指定字符串构造一个 string tokenizer。delim 参数中的字符都是分隔标记的分隔符。 常用方法:public int countTokens() / 返回使用当前分隔符集的字符串中剩余的标记数 public String nextToken() /返回此 string tokenizer 的下一个标记。 public boolean hasMoreElements() /测试此 string tokenizer 的字符串中是否还有更多的可用标记。如果此方法返回 true,那么后续调用无参数的 nextToken 方法将成功地返回一个标记。 字
45、符串与字节数组 可以使用String构造方法,利用字节数组创立字符串:public String(byte bytes) /通过使用默认字节字符对应表,由字节数组构造一个新的 String。新 String 的长度是字符集的函数,因此可能不等于 byte 数组的长度。 public String(byte bytes, intoffset, intlength) /通过使用默认字节字符对应表,由字节数组起始位置offset开始取length个字节构造一个新的 String。String类也提供实例方法将字符串转化为字节数组:public byte getBytes() / 使用默认字节字符对应
46、表将字符串转化为字节数组对象的字符串表示 根类Object中定义了实例方法 public String toString() 此方法的功能描述为:返回该对象的字符串表示。图形界面设计一1. 图形界面设计根底AWT和Swing AWT:Abstract Windowing Toolkit,抽象窗口工具包Swing:与AWT相比功能更加强大、完善,平台相关性较小组件和容器组件 Component 组件是Java图形用户界面的最根本组成局部,是一个可以以图形化的方式显示在屏幕上、并能与用户进行交互的对象,组件不能独立地显示出来,必须将组件放在一定的容器中才可以显示出来。容器 Container 容器
47、是可以容纳其他组件的组件,是图形界面的复合元素。Container类有 add()方法,可以向容器添加组件。 类java.awt.container的成员方法:public Component add( component comp ) / 将组件comp添加到当前容器中Component、Container和Graphics类是AWT库中的关键类。事件驱动程序设计根底 精选精选.精选.1事件、监视器和监视器注册在Java里,每当某件事发生在一个GUI组件事件源或源对象里,会生成一个事件对象event并传给为处理该事件而注册的事件监视器event listener。2实现事件处理的途征事件处理
48、模型的三个根本要素:事件源(An event source) 事件对象(An event object)事件监视器(event listener(s)事件源源对象可供用户进行交互的GUI组件事件对象包装相应的事件记录事件源以及处理该事件所需要的各种信息事件对象对应的类一般位于包java.awt.event和包javax.swing.event中事件监视器事件监听器在事件源中注册事件监视器,当有事件发生时,事件源接收事件对象,并交由相应的事件监听器处理事件监听器对应的接口和适配器类一般位于包java.awt.event和包javax.swing.event中3事件类型和监视器接口常用的事件:动作
49、事件ActionEvent、项事件ItemEvent、列表选择事件ListSelectionEvent、文档事件DocumentEvent类javax.swing.Frame的成员方法:public Container getContentPane( ) / 返回当前Frame的内容窗格类java.awt.container的成员方法:public Component add( component comp ) / 将组件comp添加到当前容器中对于顶层容器,是向其内容窗格添加组件;对于其他容器,那么可直接添加组件。为顶层容器添加组件的另一种方法:建立JPanel对象作为中间容器,将组件添加到
50、这个容器中,再用方法public void setContentPane(Container contentPane)把此中间容器设置为内容面板。 JPanel contentPane = new JPanel(); / 添加组件到contentPane中 mw = setContentPane(contentPane); / mw为之前创立的某JFame对象 3. 标签、按钮和按钮事件 标签javax.swing.JLabel是用于短文本字符串或图像或二者的显示区。标签不对输入事件作出反响。标签类javax.swing.JLabel的构造方法:public JLabel( )public J
51、Label( String text )public JLabel( String text, int align ) / 参数text指定标签的文字信息;参数align指定文字在水平方向上的对齐方式。常见对齐方式:javax.swing.JLabel.LEFT左对齐、javax.swing.JLabel.CENTER中对齐、javax.swing.JLabel.RIGHT右对齐JLabel的常用成员方法:public void setText( String text ) / 设置标签的文字信息public void getText( ) /返回该标签所显示的文本字符串 public voi
52、d setBackground(Color bg) / 设置标签的背景色,默认为容器的背景色 public void setForeground(Color fg) / 设置标签的前景色,即标签上的文字的颜色,默认为黑色 按钮 :命令式按钮在界面设计中用于激发动作事件。命令式按钮类javax.swing.JButton的构造方法:public JButton ( )public JButton ( String text)JButton的成员方法详见课本92页。public void addActionListener( ActionListener a )/ 为按钮注册由参数a指定的动作事件
53、监视器动作事件监视器一般是实现接口java.awt.event.ActionListener的类的实例对象。接口java.awt.event.ActionListener的定义如下: public interface ActionListener extends EventListener public void actionPerformed( ActionEvent e ); 动作事件对象动作事件对象的具体类型为java.awt.event.ActionEvent。类java.awt.event.ActionEvent的常用成员方法包括:public Object getSource( )
54、 / 返回当前事件的事件源public String getActionCommand( ) / 返回当前动作事件相关的字符串精选精选.精选.类JButton中定义了成员方法:public void setActionCommand(StringactionCommand) /设置此按钮的动作命令 按钮动作事件处理程序的根本内容包括:定义一个类,实现接口ActionListener,即在此类中实现actionPerformed()方法4. 面板 JPanel见课本94-95页面板是一种常用容器,常被用作中间容器。面板类javax.swing.JPanel的构造方法:public JPanel
55、( )public JPanel(LayoutManager layout) /创立具有指定布局管理器的JPanel使用JPanel的两种途径:(1) 直接创立JPanel的实例对象,在其中添加组件,再将其放入另一个容器中如JFrame(2)定义JPanel类的子类,在其构造方法中向其中添加组件,再通过创立这个子类的实例对象,并将这个对象参加另一个容器中 JPanel的常用成员方法:public void setPreferredSize( Dimension preferredSize )/ 将面板大小设置为参数preferredSize所指定的尺寸类java.awt.Dimension的构
56、造方法:public Dimension( int width, int height) /参数width指定宽度,参数height指定高度public void setBackground( Color bg ) /将面板背景颜色设置为参数bg所指定的颜色JScrollPane见课本95-96页:带有滚动条的面板,它也是java.awt.container类的子类,但规定只能向其中添加一个组件。当一个容器的显示区域缺乏,导致无法同时显示其中的所有组件时,如果让容器带有滚动条,那么通过移动滚动条的滑块,就可以看到所有位置上的组件。为容器添加滚动条的工作,可以通过将容器添加到一个JScrollP
57、ane中实现。滚动窗格javax.swing.JScrollPane的构造方法:public JScrollPane( ) / 可以先创立JScrollPane对象,再用其成员方法setViewportView(Componentview)设置需要加上滚动条功能的组件public JScrollPane( Component view) / 参数view指定需要加上滚动条功能的组件,只要组件的内容超过视图大小就会显示水平和垂直滚动条 设置JScrollPane滚动条属性的成员方法:public void setHorizontalScrollBarPolicy(intpolicy) / 确定水
58、平滚动条何时显示在滚动窗格上。选项有: ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED 水平滚动条需要时才显现 ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER 水平滚动条总是不可见ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS 水平滚动条总是可见public void setVerticalScrollBarPolicy(int policy) / 确定垂直滚动条何时显示在滚动窗格上。选项有: ScrollPaneConstants.VERTICA
59、L_SCROLLBAR_AS_NEEDED垂直滚动条需要时才显现 ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER 垂直滚动条总是不可见ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS 垂直滚动条总是可见5. 布局设计课本96-102页,综合应用FlowLayout布局 流布局管理器java.awt.FlowLayout是 java.awt.Applet、java.awt.Panel 和 javax.swing.JPanel的默认布局方式。特点:在容器中,从左到右依次排列组件,当组件排满一行时,那么从下一行开始继
60、续排列组件。可以设置每行组件的对齐方式为: 左对齐、中间(默认对齐方式)和右对齐。类java.awt.FlowLayout的构造方法:public FlowLayout( )public FlowLayout( int align )public FlowLayout( int align, int hgap, int vgap) / 参数hgapvgap指定同一行相邻两组件之间的水平竖直间隙,单位为像素,默认值均为5;参数align指定行对齐方式:java.awt.FlowLayout.LEFT左对齐、java.awt.FlowLayout.CENTER中对齐、java.awt.FlowLa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化学品泄漏培训课件
- 《牛顿第一定律》物理授课课件
- 《探索勾股定理》数学课件教案
- 《商是几位数》数学课件教案
- 2026年呼吸康复训练器规范使用与效果评估
- 2026年手术室护士无菌操作规范与安全实训
- 《GAT 2078-2023法庭科学 固体物证制样 离子束法》专题研究报告
- 元宇宙平台搭建协议2026年
- 2026银河金融控股校招题库及答案
- 2026标准版离婚协议书(有子女有财产)
- 中药外洗治疗化疗导致外周神经毒课件
- 2025-2026学年人教版(新教材)小学数学三年级下册(全册)教学设计(附目录P208)
- 2025版中国慢性乙型肝炎防治指南
- 2026年及未来5年市场数据中国草酸行业发展前景预测及投资战略数据分析研究报告
- 感染科结核病防治培训指南
- 金属水幕施工方案(3篇)
- 2025美国心脏协会心肺复苏(CPR)与心血管急救(ECC)指南解读
- 2024-2025学年浙江省金华市兰溪市一年级(上)期末数学试卷
- 广东省珠海市香洲区2023-2024学年八年级上学期语文期末试卷(含答案)
- 2025年青海省辅警考试公安基础知识考试真题库及参考答案
- 2025南航机械复试试题及答案
评论
0/150
提交评论