×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
Java 8程序设计及实验

Java 8程序设计及实验

¥26.3 (3.8折) ?
00:00:00
1星价 ¥37.5
2星价¥37.5 定价¥69.5

温馨提示:5折以下图书主要为出版社尾货,大部分为全新(有塑封/无塑封),个别图书品相8-9成新、切口有划线标记、光盘等附件不全详细品相说明>>

暂无评论
图文详情
  • ISBN:9787302505747
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:364
  • 出版时间:2018-09-01
  • 条形码:9787302505747 ; 978-7-302-50574-7

本书特色

本书由多位长期从事Java教学的教师根据其实际授课经验编写,从教师和学生的角度来编写教材,并在教学环境中加以试用,不断修改完善。本书配有习题解答、电子课件及源程序。

内容简介

本书是讲述Java程序设计的教材,在一般知识的基础上增加了JDK 8中的新功能,包括在接口中声明静态方法、默认方法,还有Lambda表达式、方法引用、Stream。在图形界面部分,去掉了介绍Applet的内容,增加了用JavaFX实现图形界面的内容及案例。本书由多位长期从事Java教学的教师根据实际授课经验编写而成,通过在教学环境中的试用,具有较好的教学效果。本书适合作为普通高等学校教材使用,为了便于学习,本书配有习题解答、电子课件及源程序,在本书附录中还有相应的授课计划和实验项目,为教师备课、授课和安排实验环节的项目提供参考,为读者的学习提供引导。

目录

目录

**部分Java程序设计第1章Java入门3

1.1Java简介3

1.1.1Java的由来3

1.1.2Java的特点4

1.2Java平台5

1.2.1Java平台的构成5

1.2.2Java平台的版本6

1.2.3JRE和JDK7

1.2.4JDK的下载与安装8

1.2.5环境变量的配置9

1.3Java程序的开发流程10

1.3.1Java程序的种类10

1.3.2Java程序的开发流程10

1.4小试身手11

1.5Java API文档的使用12

1.6Java Doc文档13

1.6.1语法13

1.6.2标签简介14

1.6.3生成Java Doc文档15

本章小结16

习题117第2章Java基本语法18

2.1原始类型18

2.1.1整数类型19

2.1.2实数类型21

2.1.3字符类型21

2.1.4布尔类型22

2.1.5强制类型转换222.2引用类型23

2.3String23

2.4声明变量23

2.4.1变量的赋值24

2.4.2变量的默认值24

2.4.3常量24

2.4.4变量作用范围24

2.5命名25

2.6运算符与表达式26

2.6.1算术运算符26

2.6.2关系运算符27

2.6.3逻辑运算符27

2.6.4位运算符29

2.6.5赋值运算符31

2.6.6其他运算符31

2.7数组32

2.7.1一维数组32

2.7.2多维数组33

本章小结35

习题235第3章流程控制36

3.1分支语句36

3.1.1if…else语句36

3.1.2switch语句38

3.2循环语句40

3.2.1while语句40

3.2.2do…while语句41

3.2.3for语句42

3.2.4for…each语句43

3.2.5嵌套循环44

3.2.6循环语句对比45

3.3跳转语句45

3.3.1break语句45

3.3.2continue语句47

3.3.3return语句48

本章小结49

习题349第4章面向对象编程51

4.1面向对象编程概述51

4.2类的定义52

4.2.1类的基本结构52

4.2.2成员变量和局部变量54

4.2.3成员方法55

4.2.4Overloading62

4.2.5构造方法63

4.2.6this65

4.3对象66

4.3.1对象的创建66

4.3.2对象的使用68

4.3.3对象的清除*68

4.4static69

4.4.1类变量69

4.4.2类方法71

4.4.3静态语句块71

4.5包*72

4.5.1包的定义73

4.5.2编译和运行包中的类73

4.5.3import语句75

4.6访问权限修饰符76

4.6.1private76

4.6.2friendly77

4.6.3protected77

4.6.4public78

4.7常用类78

4.7.1Object类79

4.7.2String类与StringBuffer类80

4.7.3数值包装类83

4.7.4Math类85

4.7.5Random类*86

4.7.6处理日期的类*87

4.7.7Arrays类89

本章小结91

习题491第5章继承93

5.1继承的语法93

5.2成员变量的隐藏和方法的覆盖94

5.3super95

5.4final96

5.5多态97

5.6继承与组合99

5.7初始化顺序*102

本章小结105

习题5105第6章抽象类、接口和内部类106

6.1抽象类106

6.1.1声明抽象类106

6.1.2继承抽象类106

6.1.3抽象类的应用106

6.2接口109

6.2.1声明接口109

6.2.2实现接口110

6.2.3default方法和static方法110

6.3内部类111

6.3.1什么是内部类111

6.3.2匿名内部类112

6.4Lambda表达式114

6.4.1定义114

6.4.2常见函数式接口116

6.4.3方法引用116

本章小结117

习题6117第7章枚举*118

本章小结120

习题7120第8章异常121

8.1异常121

8.1.1异常信息121

8.1.2异常的处理122

8.1.3异常的类型124

8.2finally124

8.3throws125

8.4自定义异常*125

8.5异常进一步的处理126

8.5.1在何处处理异常126

8.5.2同时处理父、子类异常127

8.5.3同时处理多个异常128

本章小结129

习题8129第9章输入输出130

9.1File130

9.1.1创建一个File对象130

9.1.2访问File对象的方法131

9.1.3列出目录下的文件132

9.1.4列出目录下满足条件的文件132

9.1.5Path135

9.2输入流136

9.2.1字节输入流136

9.2.2try…with…resources语句141

9.2.3字符输入流141

9.2.4Scanner145

9.2.5从控制台输入147

9.3输出流150

9.3.1字节输出流151

9.3.2字符输出流154

9.3.3格式化输出156

9.4数字字节输入输出流157

9.4.1DataInputStream和DataOutputStream157

9.4.2RandomAccessFile*158

9.5对象输入输出流*160

9.6压缩、解压缩流*161

9.6.1压缩162

9.6.2解压缩163

9.7读写Excel文件*164

9.7.1读取已有的工作簿164

9.7.2生成新的工作簿166

9.7.3修改已有的工作簿168

9.7.4应用168

9.8Files工具类171

本章小结172

习题9172第10章图形用户界面174

10.1AWT包与Swing包174

10.1.1辅助类176

10.1.2组件类176

10.1.3容器类176

10.2版面布局管理器180

10.2.1FlowLayout181

10.2.2BorderLayout182

10.2.3GridLayout184

10.2.4CardLayout*185

10.2.5无布局管理器186

10.3事件处理187

10.3.1事件处理机制187

10.3.2事件处理示例190

10.3.3事件适配器196

10.4Swing常用组件198

10.4.1标签198

10.4.2按钮199

10.4.3文本框203

10.4.4文本区205

10.4.5列表*205

10.4.6组合框*206

10.4.7对话框*211

10.4.8计时器*215

10.4.9菜单组件*215

10.5Swing组件应用217

10.5.1图片浏览器217

10.5.2文本编辑器221

本章小结226

习题10226第11章JavaFX227

11.1JavaFX概述227

11.1.1JavaFX的发展227

11.1.2JavaFX架构图227

11.2JavaFX程序228

11.2.1场景Scene228

11.2.2JavaFX应用程序的生命周期228

11.2.3JavaFX应用程序228

11.3Java FX布局229

11.3.1FlowPane229

11.3.2BorderPane230

11.3.3HBox232

11.3.4VBox233

11.3.5GridPane235

11.3.6StackPane236

11.4事件处理237

11.4.1事件238

11.4.2事件分发流程239

11.4.3事件处理240

11.5JavaFX UI组件247

11.5.1标签247

11.5.2按钮247

11.5.3文本框249

11.5.4文本区249

11.5.5菜单组件251

11.5.6文件选择器253

11.6在UI控件上使用CSS257

11.6.1创建样式257

11.6.2JavaFX CSS选择器257

11.6.3美化UI控件258

11.6.4使用setStyle()方法设置样式260

本章小结260

习题11260第12章JDBC261

12.1驱动程序下载262

12.2创建到数据库的连接262

12.3使用Statement执行SQL语句263

12.3.1executeUpdate263

12.3.2executeQuery266

12.4使用PreparedStatement执行SQL语句267

12.4.1executeUpdate267

12.4.2executeQuery269

12.5事务*269

12.6得到ResultSet中的记录数*272

12.6.1执行另一条SQL语句272

12.6.2操作游标272

12.7验证登录*273

本章小结274

习题12274第13章集合类*275

13.1用Java实现一个链式堆栈276

13.2List277

13.2.1自动包装和解包279

13.2.2Stack280

13.3Set281

13.3.1SortedSet282

13.3.2equals()、hashCode()和Comparable283

13.3.3Comparator285

13.4Map286

13.4.1SortedMap289

13.4.2Properties289

13.5Stream292

13.5.1什么是Stream292

13.5.2常用方法292

本章小结294

习题13294第14章Java相关框架*295

14.1Spring295

14.1.1DI295

14.1.2JDBC297

14.1.3事务支持302

14.2Hibernate305

本章小结309

习题14310第二部分实验实验ⅠJDK安装、配置及Java程序的编译和运行313实验ⅡJava基本语法313实验ⅢJava的类继承机制、接口314实验ⅣJava的输入机制315实验ⅤJava的输出机制315实验Ⅵ综合性程序设计——简单学生信息管理系统(序列化版)*316实验Ⅶ综合性程序设计——简单学生信息管理系统(GUI版)317实验Ⅷ综合性程序设计——简单学生信息管理系统(数据库版)318实验Ⅸ综合性程序设计——简单学生信息管理系统(集合版)*319附录附录A进行输入和输出323附录BSQL语句简单介绍325

B.1Java中数据类型和SQL类型的对应关系325

B.2SQL中对表的操作325

B.3SQL中对表中记录的操作325附录CHsqldb使用指南328

C.1启动Hsqldb数据库服务器328

C.2用图形界面管理Hsqldb数据库服务器328

C.3编译、运行JDBC程序329

C.4几个SQL语句的例子329

C.5几个JDBC的例子330附录D连接SQL Server 2016 Express数据库341附录EEclipse使用指南343

E.1设置Workspace目录343

E.2建立工程344

E.3编辑、编译、运行Java类345

E.4调试349

E.5在工程中使用第三方类库350

E.6使用技巧352附录F使用Ant354

F.1下载、设置354

F.2定义property、target355

F.3编译、运行Java程序356

F.4打包Java程序357

F.5启动、管理、停止Hsqldb数据库服务器357

F.6备份358

F.7在Eclipse使用Ant358附录G授课计划和方法359参考文献364


展开全部

节选

第5章继承 继承是面向对象程序设计(OOP)的三大特征之一,描述了类不同抽象级别之间的关系: “is a”的关系,即“特殊与一般”的关系。换句话说,一般(父类)是特殊(子类)更高级别的抽象。子类可以继承父类所有的非private类型的属性和方法,也可以具有自己独有的属性和方法。通过类的继承关系,使公共的特性能够共享,提高了软件的重用性。但在Java中只允许单继承。 5.1继承的语法 在Java中描述两个类之间的继承关系时,使用关键字extends,格式如下: class SubClass extends SuperClass{ … }其中SubClass为子类,SuperClass为父类(或超类)。 在第4章中定义了Person类: class Person{ private String name; private char sex='M'; Person(String name){ this.name=name; } Person(String name,char sex){ this.name=name; this.sex=sex; } public void show(){ String str="下面展示姓名和性别"; System.out.println(str); System.out.println("姓名: "+name+" 性别: "+sex); } }现在要定义一个学生类(Stu),由于“学生是人”,所以学生类和Person类之间是“is a”的关系,即“继承”关系,那么就可以这样来定义Stu类: 例5.1Stu类的定义(ch05\\Stu.java)。class Stu extends Person { long id; private String name;//仅为演示用,实际编程中无须声明该变量 private char sex='M'; public Stu (String name, long id, char sex){ super(name,sex); this.id=id; } }前面讲过子类可以继承父类的非private类型的属性和方法,在这个例子中可以看到: 虽然在Person类中定义了name、sex属性,但它们是private类型的数据,如果Stu也想拥有这些属性的话,就必须重新定义,不能继承于父类,也可以定义这些属性为protected;但show方法,在Person类中是以public的身份定义的,所以Stu类虽然没有显式地定义该方法,但却拥有该方法,因为它继承了父类的show()方法,编写测试类如下: class UseStu{ public static void main(String\[\] args){ Stu s=new Stu("王强",20094140213L,'M'); s.show(); } }运行结果: 下面展示姓名和性别 姓名: 王强 性别: M另外,还可以在子类中定义子类独有的属性和方法,例如本例中的id。 在这里需要说明以下几点: (1) 父类的构造函数不能被子类继承。 (2) 子类不能继承或访问父类中的private属性和方法。 (3) 父类中的friendly(包访问权限)的属性和方法只有在父类和子类在同一包中时,才能被子类继承和访问。 (4) 父类中由protected或public修饰的属性和方法,都可以被子类继承访问(无论子类是否与父类在同一包中)。 5.2成员变量的隐藏和方法的覆盖 当子类和父类中定义的成员变量的名字相同时,子类可以隐藏父类的成员变量。同样,子类也可以通过方法重写(或称为覆盖,Overriding)来隐藏从父类继承的方法。方法覆盖是指子类中定义的方法的头部(方法的名字、返回类型、参数个数和类型)与父类的方法完全相同,而方法体可以不同。但在进行方法覆盖时,请注意: 在覆盖时访问权限只能放大或相同,不能缩小;覆盖方法不能抛出新的异常(关于异常,将在第8章介绍)。 例5.2成员变量的隐藏和方法的覆盖(ch05\\OverriddingTest.java)。class Father{ String s="Father"; int i=1; public void f(){ System.out.println("Father s="+s); System.out.println("Father i="+i); } } class Child extends Father{ String s="Child";//隐藏了父类的成员变量s public void f(){//覆盖了父类的f()方法,但访问权限只能是public System.out.println("Child s="+s); System.out.println("Child i="+i); } } class OverriddingTest{ public static void main(String\[\] args){ Father f=new Father(); Childc=new Child(); f.f(); c.f(); } }运行结果:Father s=Father Father i=1 Child s=Child Child i=1方法覆盖与方法重载的区别如下: 方法覆盖发生在父类和子类之间,即子类重写了父类的某个方法,子类中定义的方法的头部(方法的名字、返回类型、参数个数和类型)与父类的方法完全相同,而方法体可以不同;重载是在同一类中出现的现象,是指一个类中可以有多个方法具有相同的名字,但这些方法的参数不同。 5.3super 如果想在子类中使用父类的非private类型的变量和方法(特别是被隐藏变量和方法),可以使用super关键字。例如,要在例5.2中访问父类的变量s,就要使用super.s,请试验在子类Child的f()方法中加入如下的代码,查看输出结果。System.out.println("Father s="+super.s); super.f();如果要在子类的构造方法中访问父类的构造方法,也要使用super关键字,例如例5.1中的super(name,sex);但要注意,该调用语句必须出现在子类构造方法非注释语句的**行。 注意: 如果在子类的构造方法中,没有使用super调用父类的构造方法,编译器将自动添加: super();即调用父类不带参数的构造方法,此时就应保证父类中有不带参数的构造方法(当父类未定义任何构造方法时,系统会自动合成;一旦父类定义了一个或多个构造方法,系统将不再提供默认的构造方法,必须手工定义),否则就会产生错误。如例5.1中,由于父类Person未定义无参的构造方法,所以必须用super(name,sex)显式地调用父类中某个已定义的构造方法。 5.4final final关键字可以用来修饰类、方法、变量(包括成员变量和局部变量及方法中的参数)。 (1) 当final修饰类时,意味着该类不能被继承,即该类不能有String类等子类。 例5.3final修饰类(ch05\\FinClass .java)。final class FinClass{//*终类 int i; FinClass(){ System.out.println("This is a final class."); } } class SubFinClass extends FinClass{//错误,不能从*终类继承 }编译时会出现下面的出错信息: FinClass.java:7: 无法从*终 FinClass 进行继承 class SubFinClass extends FinClass{(2) 当final修饰方法时,代表该方法不能被重写。 (3) 当final修饰成员变量时,该变量可以理解为常量,必须赋以初值(可在声明时赋值,或在类的构造方法中赋值),并且该变量的值不能再改变;当final修饰局部变量时,该局部变量只能被赋一次值;当final修饰方法中的参数时,该参数的值不能被改变。 例5.4final修饰方法和变量(ch05\\UseFinal.java)。class UseFinal{ final int i=1; final int j;//*终变量若不在声明时赋值,就要在其所属的类的构造方法中赋值 int k; UseFinal(){ j=2; } final void f(){//*终方法,在子类中不能被覆盖 System.out.println("This is a final method."); } void g(){ //i++;错误,不能重新指定*终变量的值 //j++;错误,不能重新指定*终变量的值 k++; final String s="Hello "; //s="Hi";错误,当final修饰局部变量时,该变量只能被赋一次值 final String str; str="Java"; System.out.println(s+str+"i="+i+"j="+j+"k="+k); } void h(final int a){ //a++;错误,不能指定*终参数 System.out.println("a="+a); } public static void main(String\[\] args){ UseFinal uf=new UseFinal(); uf.f(); uf.g();

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航