




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java语言程序设计 第1章 Java语言基础Java语言的特点。 Java语言主要有以下特点:1) 强类型:强制约束程序员必须遵守更多的编程规定,编译器能检测程序中尽可能多的错误。2) 编译和解释:用Java编写的源程序在计算机上运行必须经过编译和解释执行两个阶段。编译程序先江Java源程序翻译成与机器无关的字节码(bytecode),不是通常的编译程序将源程序翻译成特定计算机的机器代码。运行时,由Java虚拟机(JVM)中的Java解释器负责将字节码文件解释成为特定的机器码进行运行。3) 自动无用内存回收功能:垃圾收集器(garbage collector)可以自动回收程序不再使用的内存,避免程序遗漏或重复释放内存。4) 面向对象5) 与平台无关:与平台无关是对程序可移植性最直接最有效的支持,“一次编程,到处运行”。可移植性源于两方面:1. Java的编译和解释的特征(Java虚拟机);2. Java采用基于国际标准的数据类型,在任何平台上,同一种数据类型是一致的。6) 安全性:取消指针,避免因指针使用不当,访问不该访问的内存空间;提供数组下标检测机制,禁止程序越界访问内存;编译执行过程中进行比较严格的检查:在解释执行前,对字节码文件作检查,防止被恶意改动的字节码文件被解释执行而破坏系统;浏览器限制下载的小应用程序不允许访问本地文件,避免其破坏本地文件。7) 分布式计算8) 多线程:Java的运行环境采用多线程实现。Java语言提供语言级多线程支持,用Java语言能直接编写多线程程序。两种类型的Java程序。 Java程序可分为应用程序(Application)和小应用程序(Applet)两类。这两种程序的主要区别:1) 小应用程序需要嵌入在HTML网页中,当网页被浏览时,在浏览器中运行;且其运行受到严格的安全限制。2) 应用程序则独立运行,不嵌入网页,也没有那些限制。3) 另外,这两类程序在代码编写上也有差异:一个小应用程序必须定义为java.applet.Applet类的子类,而不必定义main()方法;应用程序一般不必为java.applet.Applet类的子类,而必须在一个类中定义main()方法。注释:1) 行注释/2) 块注释/* . */3) 文档注释/* */Java程序的开发过程 java编译器java编译器字节码文件.class编写源程序文件.javaJava编译器字节码文件.class由Web浏览器执行有Java解释器执行应用程序Applet通常在JDK目录下有bin、demo、lib、jre等子目录,其中bin目录保存了javac(编译器)、java(解释器)、jdb(调试器)、appletviewer(java Appelt解释器)等命令文件;Java的字符集和标识符。 Java语言使用Unicode字符集,字符采用双字节的表示方式,共有65535个字符,最前面的128个字符与标准的ASCII字符一致,包括:1) 数字字符10个(09)2) 英文大小写字母各26个(AZ, az)3) 下划线(_)、美元符号($)4) 文字字符(汉字,日文片假名、平假名,朝鲜文字等)5) 其他用于构成特殊符号的字符集标识符可以用来标识文件名、变量名、类名、接口名和成员方法名等,其构造规则如下:1) 标识符由Java字母和Java数字组成;2) 首字符必须是Java字母;3) 除去关键字、false、true和null;4) 所有标识符是区分大小写的。关键字是Java语言保留的一些英文单词,具有特殊的含义。例如:public、static和class,具有特殊用途,不能作为标识符使用。基本数据类型。 布尔型(boolean)1个字节(true或false)字符型(char)16位字节型(byte)8位短整型(short)16位整数型(int)32位长整型(long)64位单精度浮点型(float)32位双精度浮点型(double)64位Java直接量是直接显式地表示基本数据类型数据、字符串(String)值和空引用值(null)的表达式,而且在该表达式中不含运算。 布尔(boolean)直接量只有两个:true和false字符(char)直接量:如a,6,猫,u0061,n整型(byte,short,int)直接量:如-27,+0123,0x56ab长整型(long)直接量:如-27L,+0123L,0x56abL浮点数(float,double)直接量:如1.5,45.6D,100d,76.4e8,-32.0 ,1.5F, 45.6f, 76.4E-8F,-32.0F字符串(String)直接量:如“Hello World!”引用数据类型的直接量:null变量在计算机内部对应着一个存储单元,而且总是具有某种数据类型:基本数据类型或引用数据类型。每个变量均具有:名字、类型、一定大小的存储单元以及值。变量总是具有与其数据类型相对应的值。基本数据类型:变量的存储单元中存放的是具体的布尔值或数值;引用数据类型:变量的存储单元中存放的是引用值,引用值一般用来指向某个具体的对象。如果引用值是null,则该引用值不指向任何对象。在使用变量前,必须先定义该变量,而且一般要求先初始化。例如:int studentNumber; /定义单个变量studentNumber=30; /给变量赋值double velocity, distance; /定义多个变量int studentNumber=30; /定义变量,并赋初值第2章 运算和语句赋值运算。 l 简单赋值运算,格式如下:变量=表达式不是“相等”运算符(“=”)。赋值语句中的数据类型转换只能是简单类型向复杂类型转换,不能从复杂的转换成简单的。转换规则如下:byteshortintlongfloatboublel 复合赋值运算,格式如下:变量 双目算术运算符= 表达式包括:+=、-=、*=、/=、&=、|=、%=、=和=。例如:a+=b等价于a=a+b,a/=b+c等价于a=a/(b+c)。算术运算符。 算术运算符包括:+(取正), -(取负) (单目运算) +, -, *, /, % (双目运算)注意事项:1) 当操作数是定点类型数据时,应当注意运算是否会溢出int i=123456;i=i*i; /溢出2) 整数除法:截去余数,7/5结果为13) 考虑除数是否可能为0或很小的数4) 取模:返回余数,可以对定点或浮点数进行取模运算,7%5结果为2;15.25%(-0.5)结果为0.25自增自减运算。 自增(+)和自减(-):操作数必须是变量;有前置和后置两种运算int n=3;int i=n+, j=n-;/i=3,j=4,n=3int k=+n, m=-n;/k=4,m=3,n=3前缀 和后缀, 对变量本身,效果相同;但表达式的值不相同。运算对象只能是变量,不能是常量或表达式,如: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+不同。例如:当要表达“如果a不等于0”这个条件不能写作 if(a)而要写作 if(a!=0)逻辑运算符。 逻辑运算的操作数必须是布尔型,结果也是布尔型。可以有3种基本操作:与(&)、或(|)、非(!)。短路规则:一旦能够明确无误的确定整个表达式的值,就不再计算表达式余下的部分了。因此,整个逻辑表达式靠后的部分可能不会计算。比较:(birthday = true) & (+age = 65)(birthday = true) | (+age = 65)! 优先于 双目算术运算符 优先于 关系运算符 优先于 & 优先于|条件运算符。 条件运算符是一个三目运算符,一般形式为:逻辑表达式 ? 表达式1 : 表达式2例如: int i = 5; int k = (i=0) ? 1 : -1;条件运算符的结合性为“自右至左”。例如: x y ? x : u v ? u : v 等价于x y ? x : (u v ? u : v)位运算和位移运算。 位运算符包括:&、|、移位运算符有 : 、和 带符号右移:左端空出的位填原符号位不带符号右移(逻辑右移):左端空出的位填0(C或C+中无此运算符)位运算操作是:先将整数写成二进制形式(补码),然后按位操作,最后产生一个新的数注意: 只用于定点类型数据(整型)基本语句。 表达式语句:k=k+2;空语句 ;break语句:break; 用于循环或选择continue语句:continue; 同上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.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; break;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语句的执行规则:1) 求出表达式的值;2) 找出给定值与表达式相符的case语句,执行此case标号后的所有语句(除非遇到break语句),直到switch语句结束;3) 若没有匹配的case语句,则转向defalult语句,执行default标号后的所有语句,直到switch语句结束。4) 若没有匹配的case语句,也没有defalult语句,则switch语句的这次执行立即结束。trycatch语句。 try 语句块/执行该语句块,可能会发生异常 catch (异常类型e) 异常发生时要执行的语句块 finally 无论异常发生与否,都要执行的语句块说明:1) Catch和 finally 必须和一个try相关联2) try至少要有一个catch, 可以有多个3) finally语句块是可选的while语句。 while语句的格式:while (布尔表达式) 语句或语句块当条件(布尔表达式)为true ,则不断地执行语句或语句块。“while” 循环的中止条件是布尔表达式变为false,如果布尔表达式一开始就为false,则不执行循环体。有时循环条件很难写出,可以直接使用true, 格式如下:While (true) If( 条件表达式) break;do-while语句。 do-while语句的格式是:do 语句或语句块while (布尔表达式);do-while和while结构唯一的区别就是do-while中的语句至少会执行一次,即便布尔表达式第一次就被计算为false。注意最后的分号,一定不能省略。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+10; i 5; i+, j=i*2) System.out.println(“i = ” + i + “ j = ” + j); 注意:通过逗号操作符,可以在初始化部分定义多个变量,但这些变量必须具有相同的类型。无论在初始化还是更新部分,表达式都是顺序执行的。嵌套的循环结构。 for循环的嵌套while循环的嵌套do.while循环的嵌套以上三个任意之间的嵌套continue语句。 格式:continue;功能:跳过continue之后的语句,重新判断循环控制条件,决定是否继续循环。说明:(1) continue语句只能用在三种循环语句的循环体中。(2) continue语句通常和if语句联合使用,从而构成其后的部分循环体是否执行的单分支结构。break语句。 格式:break;功能:强制结束当前的循环,不再执行循环体中break后面的语句。说明:(1) break语句只能在三种循环语句的循环体和switch语句中使用。(2) 在循环语句中break通常和if语句联合使用,用于构成第二个退出循环的机会。Package语句。 程序包相当于其它语言的函数库,系统提供大量的程序包,自己编写的类也可以组成程序包,但一定要用package语句声明。格式: package 包名;包名是一个目录名,可以有路径。import 语句。 用来引入所需要的类格式:import 包名.类名;例如: import java.util.Date;/引入Date类如果从一个包中引入多个类,可以用通配符“*”, 如: import java.awt.*;一个java源程序中可以有多个import语句, 它们必须出现在package语句之后;类的定义之前。Java程序的基本结构。 package 包名;import 包名.类名; / 更多的import语句public class 类名int val= /变量定义语句Public static void main( String args )/ 方法定义 / 变量定义和控制语句构成的方法体 第3章 面向对象编程基础抽象 抽象是程序设计最经常使用的技术之一,是有效控制程序复杂性的重要手段。在面向对象程序设计中:把一系列复杂的属性与动作组织到单个模块中,然后把该模块当作一个整体(对象)来对待,就是一种抽象形式。把一个问题分解成构成它的对象,也是一种抽象形式。对象(object)万物皆为对象,它存储数据,还可以要求它在自身上执行操作。对象具有状态、行为和标识。这意味着每一个对象可以拥有内部数据(它们给出该对象的状态)和方法(它们产生行为),并且每一个对象都可以唯一地与其他对象区分开来(每一个对象在内存中都有唯一一个地址)。消息(message)在面向对象框架中,对象之间通过相互发送消息来进行交互。在Java里,通过调用方法来传递消息。类(class)类定义了某种类型的所有对象所具有的属性与行为,是用来创建对象的蓝图或模板;对象是某个确切类的实例。在创建一个类的实例(对象)之前必须定义这个类。继承性(inheritance) 多态性(polymorphism)类 (1)类的声明类的定义格式如下:类修饰词 class 类名 extends 父类名 implements 接口名称列表 类体 / 通常先定义成员变量,再定义构造方法,最后编写成员方法(2)成员变量成员变量的定义格式如下:修饰词列表 类型 变量名或带初始化的变量名列表;例如:private float height, weight; private String name, sex, no;(3)方法类的成员方法:简称方法,用来实现类的各种功能。方法的定义格式如下: 方法修饰词列表 返回类型 方法名(方法的参数列表) 方法体 例如: public int mb_method() public static void main(String args) 例3.2(若某方法的参数名或局部变量名与类的成员变量名相同,则成员变量名在这个方法内部暂时被隐藏。)例3.3(关键字this:对当前对象的引用) (4)构造方法构造方法用来创建类的实例,并对对象初始化。构造方法的声明和一般方法声明非常相似,但是它必须和类同名,并且不能声明返回值类型。构造方法的一般形式: public ( ) 默认的构造方法:当一个类没有包含构造方法时,Java将自动提供一个默认的构造方法。对象 (1)声明对象声明一个对象只是命名一个引用变量,这个引用变量和对象关联,可以用来引用该对象。声明一个对象的格式如下: 类名 变量名(对象名); 例如,声明对象: Point p1,p2;不要把声明一个对象和创建一个对象混淆起来。声明对象并不会为这个对象分配内存。(2)创建对象创建对象:使用new操作符和构造方法。构造方法是在对象实例化过程中使用的特殊方法;操作符new为新的对象分配一片内存并将它存储在那里,然后返回对象的地址。格式为: new 构造方法名(构造方法的调用参数列表) 例如: p1 = new Point(); p2 = new Point(30,40);声明和创建对象也可以一起完成,例如: Point p3 = new Point(), p4 = new Point(60,70);(3)对象的内存模型在Java中有两种类型的变量:基本类型与引用类型。基本类型的变量总是存放一个该类型的值;引用变量实际上存放的是它所引用的对象的地址,而不是存放对象本身。在Java中,主要有数组和类类型是引用类型。 (4)使用对象程序使用对象:访问对象的成员变量,一般形式为: 对象名.成员变量名调用对象的方法,一般形式为: 对象名.方法名(参数表)实例变量和类变量 被关键字static修饰的变量为类变量(静态变量),未被关键字static修饰的变量为实例变量。 例如: class D float x; / 实例变量 static int y; /类变量 每个对象都有自己的实例变量,不同对象的实例变量也将被分配不同的内存空间。类变量则被一个类的所有对象共享,在内存中也只有一处。可以通过类名或对象名引用类变量。实例方法和类方法 被关键字static修饰的方法为类变量(静态方法),未被关键字static修饰的方法为实例方法。例3.7注意:类中的实例方法可以互相调用,并可调用类方法。类方法也能相互调用,但不能直接调用实例方法,而要通过在类方法中引入局部对象,通过对象名调用实例方法。类中的实例方法中可以直接使用实例变量,也可直接使用类变量。但类方法能直接使用类变量,却必须通过在类方法中引入的局部对象,用对象名引用实例变量。类方法可以通过类名或对象名调用。例3.8访问权限 设置访问权限实现访问控制,为类的成员设置访问权限,保护类的成员不在非期望的情况下被引用。在类的声明中,除了类的方法总能访问类的成员变量外,为其他类的方法访问本类的成员变量和方法,提供了四种访问权限:public:无访问限制,其他类的方法都能访问private:最强访问限制,其他类的方法都不能访问protected:仅限子类或同一包中的类的方法访问:只允许同一包中的类的方法访问继承 继承性 - 软件重用的一种方法继承使得一个类可通过扩展现有类来定义扩展声明的新类称为子类,原有的类称为超类(父类)子类继承超类的变量和方法;子类可以增加新的变量和方法;子类可以重写(第51页)从超类中继承的方法。子类对父类的继承性,Java语言有以下规定:子类自然地继承其父类中非private的成员变量作为自己的成员变量子类自然地继承其父类中非private的成员方法作为自己的成员方法多态性 静态的多态性:重载,在编译时就能够被识别针对的是同一个类内的同名方法(重载的方法)。动态的多态性:重写,在程序运行时才被识别(动态联编)重写父类的方法(同样签名)。多层继承 继承关系具有传递性。继承声明的新类,又可被其他类再继承,从而构成多层继承。 Java面向对象的其他机制 (1) final类、final方法和final变量关键字final的含义为“最终的”,“不能改变的”。用final修饰类,表明此类不能派生出子类,例如:final class C 用final修饰方法,表明此方法不能被子类的方法重写(覆盖) 例如:final int f( int x, int y ) 用final修饰变量,表明此变量一旦赋值,则不能再被改变,相当于一个常量 例如:final int FINALVAR = 100;(2)abstract类和abstract方法关键自abstract的含义为“抽象”,用abstract修饰类,此类称为抽象类,抽象类不能被实例化;用abstract修饰方法,此方法称为抽象方法,抽象方法没有实现的代码(方法首部; )包含抽象方法的类一定是抽象类,但抽象类可以没有抽象方法。(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.applet 包中的Applet类。 java. applet. Applet类是所有Java applet的基类,所有的Java applet都必须继承该类。(1)小应用程序的建立和运行 Java applet程序从建立到运行的步骤如下:1) 选用写字板或文本编辑器等工具建立Java applet源程序。(其中必须有一个类继承java.applet.Applet类,这个类是小应用程序的主类,用关键字public修饰。)2) 把Java applet的源程序编译为字节码文件。3) 编制HTML文件,通过标记将字节码文件嵌入HTML文件中。4) 在支持Java的浏览器上运行。(2)Applet类的基本方法 public void init( )public void start( )public void paint( )public void stop( )public void destroy( )public void repaint( )public void update( )(4)小应用程序数据输入与输出 小应用程序的数据输入有多种方式:从图形用户界面的文本框、文本区域中输入;采用系统标准输入;由HTML文件中的参数导入。第4章 数组和字符串1. 数组 数组是连续存储区域的命名集合,这些存储区域彼此相邻,存放着相同类型的数据元素。一维数组 (1)声明一维数组一维数组变量的声明格式有如下两种:数组元素的数据类型 数组名;数组元素的数据类型 数组名 ;(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, 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)创建二维数组创建二维数组的方法也有多种:l 直接分配(适用于平衡二维数组,即矩阵)格式:类型 数组名 = new 类型长度1长度2;例如: double rainfall = new double1231;l 从最高维开始,分别对每一维分配不等长空间(适用于非平衡数组)例如: int a = new int3 ; int a0 = new int4; int a1 = new int5; int a2 = new int2;l 直接赋值创建(适用于元素较少的数组)例如:int x = 5,6,7, 8,9,10,11, 18,19,20,15, 2,9 ;(3)引用二维数组元素书中示例的非平衡二维数组x中,x23值为15(4)使用二维数组要注意的问题二维数组名下标1是一维数组。二维数组名.length是二维数组的子数组个数;二维数组名下标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 = 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 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true(x = y 具有值 true)。方法:public boolean equalsIgnoreCase(StringanotherString)功能:将此 String 与另一个 String 比较,不考虑大小写。如果两个字符串的长度相同,并且其中的相应字符都相等(忽略大小写),则认为这两个字符串是相等的。方法:public int compareTo(Stringstr)功能:按字典顺序比较两个字符串的大小。该比较基于字符串中各个字符的 Unicode 值。如果此 String 对象小于参数字符串,则返回一个负整数。如果此 String 对象大于参数字符串,则返回一个正整数。如果这两个字符串相等,则返回 0。方法:public int compareToIgnoreCase(Stringstr)功能:按字典顺序比较两个字符串,不考虑大小写。 (5)字符串检索String的实例方法indexOf( ) 可以 用于在字符串中查找一个字符或子串的索引位置。indexOf( )方法在一个String里从左到右查找一个字符或子串,它有几种版本:public int indexOf( String string );public int indexOf( String string, int startingIndex );(6)取字符串的子串方法substring( )可以用 来从一个String里检索一个字符子串。 public String substring( int startIndex ) 例如: String str = “HelloWorld”; str.substring( 5 ); / “World” str.substring( 9 ); / ”d”(7)替换字符串中的某字符得到一个新字符串方法:public String replace(charoldChar, charnewChar)功能:返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。(8)去掉前后空格得到一个新字符串方法:public String trim() 功能:返回字符串的副本,去掉前后空白。(9)基本类型值的字符串表示String的类方法valueOf( )用于把某种基本类型的值转换成一个String对象。(10)字符串得到基本类型对象每种基本类(包装类,除Character)都有类方法能将字符串转换成基本类的对象,形如: public static Type valueOf(String s) 其中,Type代表任何基本类,包括Boolean、Integer、Double等。(11)字符串得到基本类型值每种基本类(包装类,除Character)都有类方法能从字符串中解析出基本类型的值,形如: public static type parseType(Strings) 其中,type代表任何基本数据类型,包括boolean、int、double等,Type代表相应的包装类。StringTokenizer类 java.util.StringTokenizer类用来把字符串分解为标记。常用构造方法1:public StringTokenizer(Stringstr) /为指定字符串构造一个 string tokenizer。使用默认的分隔符集 “tnrf”,即:空格字符、制表符、换行符、回车符和换页符。 常用构造方法2:public StringTokenizer(Stringstr, Stringdelim) /为指定字符串构造一个 string tokenizer。delim 参数中的字符都是分隔标记的分隔符。 常用方法:public int countTokens() / 返回使用当前分隔符集的字符串中剩余的标记数 public String nextToken() /返回此 string tokenizer 的下一个标记。 public boolean hasMoreElements() /测试此 string tokenizer 的字符串中是否还有更多的可用标记。如果此方法返回 true,那么后续调用无参数的 nextToken 方法将成功地返回一个标记。 字符串与字节数组 可以使用String构造方法,利用字节数组创建字符串:public String(byte bytes) /通过使用默认字节字符对应表,由字节数组构造一个新的 String。新 String 的长度是字符集的函数,因此可能不等于 byte 数组的长度。 public String(byte bytes, intoffset, intlength) /通过使用默认字节字符对应表,由字节数组起始位置offset开始取length个字节构造一个新的 String。String类也提供实例方法将字符串转化为字节数组:public byte getBytes() / 使用默认字节字符对应表将字符串转化为字节数组对象的字符串表示 根类Object中定义了实例方法 public String toString() 此方法的功能描述为:返回该对象的字符串表示。第5章 图形界面设计(一)1. 图形界面设计基础AWT和Swing AWT:Abstract Windowing Toolkit,抽象窗口工具包Swing:与AWT相比功能更加强大、完善,平台相关性较小组件和容器组件( Component )组件是Java图形用户界面的最基本组成部分,是一个可以以图形化的方式显示在屏幕上、并能与用户进行交互的对象,组件不能独立地显示出来,必须将组件放在一定的容器中才可以显示出来。容器( Container )容器是可以容纳其他组件的组件,是图形界面的复合元素。Container类有 add()方法,可以向容器添加组件。 类java.awt.container的成员方法:public Component add( component comp ) / 将组件comp添加到当前容器中Component、Container和Graphics类是AWT库中的关键类。事件驱动程序设计基础 (1)事件、监视器和监视器注册在Java里,每当某件事发生在一个GUI组件(事件源或源对象)里,会生成一个事件对象(event)并传给为处理该事件而注册的事件监视器(event listener)。(2)实现事件处理的途征事件处理模型的三个基本要素:事件源(An event source) 事件对象(An event object)事件监视器(event listener(s)事件源(源对象)可供用户进行交互的GUI组件事件对象包装相应的事件记录事件源以及处理该事件所需要的各种信息事件对象对应的类一般位于包java.awt.event和包javax.swing.event中事件监视器(事件监听器)在事件源中注册事件监视器,当有事件发生时,事件源接收事件对象,并交由相应的事件监听器处理事件监听器对应的接口和适配器类一般位于包java.awt.event和包javax.swing.event中(3)事件类型和监视器接口常用的事件:动作事件(ActionEvent)、项事件(ItemEvent)、列表选择事件(ListSelectionEvent)、文档事件(DocumentEvent)类javax.swing.Frame的成员方法:public Container getContentPane( ) / 返回当前Frame的内容窗格类java.awt.container的成员方法:public Component add( component comp ) / 将组件comp添加到当前容器中对于顶层容器,是向其内容窗格添加组件;对于其他容器,则可直接添加组件。为顶层容器添加组件的另一种方法:建立JPanel对象作为中间容器,将组件添加到这个容器中,再用方法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 JLabel( 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( ) /返
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 通信行业智能化光传输网络覆盖与升级方案
- 通讯设备通讯设备技术创新与市场拓展策略研究
- 多式联运下城市配送智能化改造方案
- 三农村旅游产业规划方案
- 餐饮业食品安全追溯系统解决方案
- 三农产品深加工与综合利用技术手册
- 化工工艺流程优化与设计试题及答案
- 吉安市城投公司及下属子公司2024年公开招聘线下及实操笔试参考题库附带答案详解
- 赣州2025年江西赣南医科大学高层次人才招聘50人笔试历年参考题库附带答案详解
- 贵州2025年中共贵州省委办公厅所属事业单位招聘15人笔试历年参考题库附带答案详解
- 基于大数据的电商平台用户行为分析系统研究与实现
- 标准化法及相关知识课件
- 新视野大学英语(第四版)读写教程1(思政智慧版)课件 Unit 6 Winning is not everything Section B
- 意识障碍诊疗规范2023版
- 仪表检修规程
- 2023年10月自考03706思想道德修养与法律基础试题及答案含评分标准
- 工厂组织架构图
- 全国IP地址段中国IP地址段各省IP段IP段最全
- 读书分享读书交流会《人生海海》
- 中医养生技术ppt
- 国家电网有限公司十八项电网重大反事故措施
评论
0/150
提交评论