關(guān)于我們
書(shū)單推薦
新書(shū)推薦
|
Java語(yǔ)言程序設(shè)計(jì)(基礎(chǔ)篇)(英文版·原書(shū)第11版)
本書(shū)是Java語(yǔ)言的經(jīng)典教材,多年來(lái)暢銷(xiāo)不衰。本書(shū)全面整合了Java 8的特性,采用“基礎(chǔ)優(yōu)先,問(wèn)題驅(qū)動(dòng)”的教學(xué)方式,循序漸進(jìn)地介紹了程序設(shè)計(jì)基礎(chǔ)、解決問(wèn)題的方法、面向?qū)ο蟪绦蛟O(shè)計(jì)、圖形用戶(hù)界面設(shè)計(jì)、異常處理、I/O和遞歸等內(nèi)容。此外,本書(shū)還全面且深入地覆蓋了一些高級(jí)主題,包括算法和數(shù)據(jù)結(jié)構(gòu)、多線(xiàn)程、網(wǎng)絡(luò)、國(guó)際化、高級(jí)GUI等內(nèi)容。
第1章 計(jì)算機(jī)、程序和Java概述 1
1.1 引言 2 1.2 什么是計(jì)算機(jī) 2 1.3 編程語(yǔ)言 7 1.4 操作系統(tǒng) 9 1.5 Java、萬(wàn)維網(wǎng)以及其他 10 1.6 Java語(yǔ)言規(guī)范、API、JDK、JRE和IDE 11 1.7 一個(gè)簡(jiǎn)單的Java程序 12 1.8 創(chuàng)建、編譯和執(zhí)行Java程序 15 1.9 程序設(shè)計(jì)風(fēng)格和文檔 18 1.10 程序設(shè)計(jì)錯(cuò)誤 20 1.11 使用NetBeans開(kāi)發(fā)Java程序 23 1.12 使用Eclipse開(kāi)發(fā)Java程序 25 第2章 基本程序設(shè)計(jì) 33 2.1 引言 34 2.2 編寫(xiě)簡(jiǎn)單的程序 34 2.3 從控制臺(tái)讀取輸入 37 2.4 標(biāo)識(shí)符 40 2.5 變量 40 2.6 賦值語(yǔ)句和賦值表達(dá)式 42 2.7 命名常量 43 2.8 命名習(xí)慣 44 2.9 數(shù)值數(shù)據(jù)類(lèi)型和操作 45 2.10 數(shù)值型字面值 48 2.11 表達(dá)式求值以及操作符優(yōu)先級(jí) 50 2.12 示例學(xué)習(xí):顯示當(dāng)前時(shí)間 52 2.13 增強(qiáng)賦值操作符 54 2.14 自增和自減操作符 55 2.15 數(shù)值類(lèi)型轉(zhuǎn)換 57 2.16 軟件開(kāi)發(fā)過(guò)程 59 2.17 示例學(xué)習(xí):整錢(qián)兌零 63 2.18 常見(jiàn)錯(cuò)誤和陷阱 65 第3章 選擇 75 3.1 引言 76 3.2 boolean數(shù)據(jù)類(lèi)型 76 3.3 if語(yǔ)句 78 3.4 雙分支if-else語(yǔ)句 80 3.5 嵌套的if語(yǔ)句和多分支if-else語(yǔ)句 81 3.6 常見(jiàn)錯(cuò)誤和陷阱 83 3.7 產(chǎn)生隨機(jī)數(shù) 87 3.8 示例學(xué)習(xí):計(jì)算身體質(zhì)量指數(shù) 89 3.9 示例學(xué)習(xí):計(jì)算稅率 90 3.10 邏輯操作符 93 3.11 示例學(xué)習(xí):判定閏年 97 3.12 示例學(xué)習(xí):彩票 98 3.13 switch語(yǔ)句 100 3.14 條件操作 103 3.15 操作符的優(yōu)先級(jí)和結(jié)合規(guī)則 104 3.16 調(diào)試 106 第4章 數(shù)學(xué)函數(shù)、字符和字符串 119 4.1 引言 120 4.2 常用數(shù)學(xué)函數(shù) 120 4.3 字符數(shù)據(jù)類(lèi)型和操作 125 4.4 String類(lèi)型 130 4.5 示例學(xué)習(xí) 139 4.6 格式化控制臺(tái)輸出 145 第5章 循環(huán) 159 5.1 引言 160 5.2 while循環(huán) 160 5.3 示例學(xué)習(xí):猜數(shù)字 163 5.4 循環(huán)設(shè)計(jì)策略 166 5.5 使用用戶(hù)確認(rèn)或者標(biāo)記值控制循環(huán) 168 5.6 do-while循環(huán) 170 5.7 for循環(huán) 173 5.8 采用哪種循環(huán) 176 5.9 嵌套循環(huán) 178 5.10 最小化數(shù)值錯(cuò)誤 180 5.11 示例學(xué)習(xí) 182 5.12 關(guān)鍵字break和continue 186 5.13 示例學(xué)習(xí):判斷回文 189 5.14 示例學(xué)習(xí):顯示素?cái)?shù) 191 第6章 方法 205 6.1 引言 206 6.2 定義方法 206 6.3 調(diào)用方法 208 6.4 void方法與返回值方法 211 6.5 按值傳參 214 6.6 模塊化代碼 217 6.7 示例學(xué)習(xí):將十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù) 219 6.8 重載方法 221 6.9 變量的作用域 224 6.10 示例學(xué)習(xí):生成隨機(jī)字符 225 6.11 方法抽象和逐步求精 227 第7章 一維數(shù)組 247 7.1 引言 248 7.2 數(shù)組的基礎(chǔ)知識(shí) 248 7.3 示例學(xué)習(xí):分析數(shù)字 255 7.4 示例學(xué)習(xí):一副牌 256 7.5 復(fù)制數(shù)組 258 7.6 將數(shù)組傳遞給方法 259 7.7 方法返回?cái)?shù)組 262 7.8 示例學(xué)習(xí):統(tǒng)計(jì)每個(gè)字母出現(xiàn)的次數(shù) 263 7.9 可變長(zhǎng)參數(shù)列表 266 7.10 數(shù)組的查找 267 7.11 數(shù)組的排序 271 7.12 Arrays類(lèi) 272 7.13 命令行參數(shù) 274 第8章 多維數(shù)組 289 8.1 引言 290 8.2 二維數(shù)組基礎(chǔ) 290 8.3 處理二維數(shù)組 293 8.4 將二維數(shù)組傳遞給方法 295 8.5 示例學(xué)習(xí):多選題測(cè)驗(yàn)評(píng)分 296 8.6 示例學(xué)習(xí):找出距離最近的點(diǎn)對(duì) 298 8.7 示例學(xué)習(xí):數(shù)獨(dú) 300 8.8 多維數(shù)組 303 第9章 對(duì)象和類(lèi) 323 9.1 引言 324 9.2 為對(duì)象定義類(lèi) 324 9.3 示例:定義類(lèi)和創(chuàng)建對(duì)象 326 9.4 使用構(gòu)造方法構(gòu)造對(duì)象 331 9.5 通過(guò)引用變量訪(fǎng)問(wèn)對(duì)象 332 9.6 使用Java庫(kù)中的類(lèi) 336 9.7 靜態(tài)變量、常量和方法 339 9.8 可見(jiàn)性修飾符 344 9.9 數(shù)據(jù)域封裝 346 9.10 向方法傳遞對(duì)象參數(shù) 349 9.11 對(duì)象數(shù)組 353 9.12 不可變對(duì)象和類(lèi) 355 9.13 變量的作用域 357 9.14 this引用 358 第10章 面向?qū)ο笏伎? 367 10.1 引言 368 10.2 類(lèi)的抽象和封裝 368 10.3 面向?qū)ο蟮乃枷? 372 10.4 類(lèi)的關(guān)系 375 10.5 示例學(xué)習(xí):設(shè)計(jì)Course類(lèi) 378 10.6 示例學(xué)習(xí):設(shè)計(jì)棧類(lèi) 380 10.7 將基本數(shù)據(jù)類(lèi)型值作為對(duì)象處理 382 10.8 基本類(lèi)型和包裝類(lèi)類(lèi)型之間的自動(dòng)轉(zhuǎn)換 385 10.9 BigInteger和BigDecimal類(lèi) 386 10.10 String類(lèi) 388 10.11 StringBuilder類(lèi)和StringBuffer類(lèi) 394 第11章 繼承和多態(tài) 411 11.1 引言 412 11.2 父類(lèi)和子類(lèi) 412 11.3 使用super關(guān)鍵字 418 11.4 方法重寫(xiě) 421 11.5 方法重寫(xiě)與重載 422 11.6 Object類(lèi)及其toString()方法 424 11.7 多態(tài) 425 11.8 動(dòng)態(tài)綁定 425 11.9 對(duì)象轉(zhuǎn)換和instanceof操作符 429 11.10 Object類(lèi)的equals方法 433 11.11 ArrayList類(lèi) 434 11.12 關(guān)于列表的一些有用方法 440 11.13 示例學(xué)習(xí):自定義棧類(lèi) 441 11.14 protected數(shù)據(jù)和方法 442 11.15 防止繼承和重寫(xiě) 445 第12章 異常處理和文本I/O 453 12.1 引言 454 12.2 異常處理概述 454 12.3 異常類(lèi)型 459 12.4 關(guān)于異常處理的更多討論 462 12.5 finally子句 470 12.6 何時(shí)使用異常 471 12.7 重新拋出異常 472 12.8 鏈?zhǔn)疆惓? 473 12.9 創(chuàng)建自定義異常類(lèi) 474 12.10 File類(lèi) 477 12.11 文件輸入和輸出 480 12.12 從Web上讀取數(shù)據(jù) 486 12.13 示例學(xué)習(xí):Web爬蟲(chóng) 488 第13章 抽象類(lèi)和接口 499 13.1 引言 500 13.2 抽象類(lèi) 500 13.3 示例學(xué)習(xí):抽象的Number類(lèi) 505 13.4 示例學(xué)習(xí):Calendar和GregorianCalendar 507 13.5 接口 510 13.6 Comparable接口 513 13.7 Cloneable接口 518 13.8 接口與抽象類(lèi) 523 13.9 示例學(xué)習(xí):Rational類(lèi) 526 13.10 類(lèi)的設(shè)計(jì)原則 531 第14章 JavaFX基礎(chǔ) 541 14.1 引言 542 14.2 JavaFX與Swing以及AWT的比較 542 14.3 JavaFX程序的基本結(jié)構(gòu) 542 14.4 面板、組、UI組件以及形狀 545 14.5 屬性綁定 548 14.6 結(jié)點(diǎn)的共同屬性和方法 551 14.7 Color類(lèi) 553 14.8 Font類(lèi) 554 14.9 Image和ImageView類(lèi) 556 14.10 布局面板和組 558 14.11 形狀 567 14.12 示例學(xué)習(xí):ClockPane類(lèi) 580 第15章 事件驅(qū)動(dòng)編程和動(dòng)畫(huà) 593 15.1 引言 594 15.2 事件和事件源 596 15.3 注冊(cè)處理器和處理事件 597 15.4 內(nèi)部類(lèi) 601 15.5 匿名內(nèi)部類(lèi)處理器 602 15.6 使用lambda表達(dá)式簡(jiǎn)化事件處理 605 15.7 示例學(xué)習(xí):貸款計(jì)算器 609 15.8 鼠標(biāo)事件 611 15.9 鍵盤(pán)事件 613 15.10 可觀察對(duì)象的監(jiān)聽(tīng)器 616 15.11 動(dòng)畫(huà) 618 15.12 示例學(xué)習(xí):彈球 626 15.13 示例學(xué)習(xí):美國(guó)地圖 630 第16章 JavaFX UI組件和多媒體 643 16.1 引言 644 16.2 Labeled和Label 644 16.3 Button 646 16.4 CheckBox 648 16.5 RadioButton 651 16.6 TextField 654 16.7 TextArea 655 16.8 ComboBox 659 16.9 ListView 662 16.10 ScrollBar 665 16.11 Slider 668 16.12 示例學(xué)習(xí):開(kāi)發(fā)一個(gè)井字游戲 671 16.13 視頻和音頻 676 16.14 示例學(xué)習(xí):國(guó)旗和國(guó)歌 679 第17章 二進(jìn)制 I/O 691 17.1 引言 692 17.2 在Java中如何處理文本I/O 692 17.3 文本I/O與二進(jìn)制I/O 693 17.4 二進(jìn)制I/O類(lèi) 694 17.5 示例學(xué)習(xí):復(fù)制文件 704 17.6 對(duì)象I/O 706 17.7 隨機(jī)訪(fǎng)問(wèn)文件 711 第18章 遞歸 719 18.1 引言 720 18.2 示例學(xué)習(xí):計(jì)算階乘 720 18.3 示例學(xué)習(xí):計(jì)算斐波那契數(shù) 723 18.4 使用遞歸解決問(wèn)題 726 18.5 遞歸輔助方法 728 18.6 示例學(xué)習(xí):獲取目錄的大小 731 18.7 示例學(xué)習(xí):漢諾塔 733 18.8 示例學(xué)習(xí):分形 736 18.9 遞歸與迭代 740 18.10 尾遞歸 740 附錄A Java關(guān)鍵字 751 附錄B ASCII字符集 752 附錄C 操作符優(yōu)先級(jí)表 754 附錄D Java修飾符 756 附錄E 特殊浮點(diǎn)值 758 附錄F 數(shù)系 759 附錄G 位操作符 763 附錄H 正則表達(dá)式 764 附錄I 枚舉類(lèi)型 769 contentS chapter 1 Introduction to computers, Programs, and Java. 1 1.1 Introduction 2 1.2 What Is a Computer? 2 1.3 Programming Languages 7 1.4 Operating Systems 9 1.5 Java, the World Wide Web, and Beyond 10 1.6 The Java Language Specification, API, JDK, JRE, and IDE 11 1.7 A Simple Java Program 12 1.8 Creating, Compiling, and Executing a Java Program 15 1.9 Programming Style and Documentation 18 1.10 Programming Errors 20 1.11 Developing Java Programs Using NetBeans 23 1.12 Developing Java Programs Using Eclipse 25 chapter 2 elementary Programming 33 2.1 Introduction 34 2.2 Writing a Simple Program 34 2.3 Reading Input from the Console 37 2.4 Identifiers 40 2.5 Variables 40 2.6 Assignment Statements and Assignment Expressions 42 2.7 Named Constants 43 2.8 Naming Conventions 44 2.9 Numeric Data Types and Operations 45 2.10 Numeric Literals 48 2.11 Evaluating Expressions and Operator Precedence 50 2.12 Case Study: Displaying the Current Time 52 2.13 Augmented Assignment Operators 54 2.14 Increment and Decrement Operators 55 2.15 Numeric Type Conversions 57 2.16 Software Development Process 59 2.17 Case Study: Counting Monetary Units 63 2.18 Common Errors and Pitfalls 65 chapter 3 Selections 75 3.1 Introduction 76 3.2 boolean Data Type 76 3.3 if Statements 78 3.4 Two-Way if-else Statements 80 3.5 Nested if and Multi-Way if-else Statements 81 3.6 Common Errors and Pitfalls 83 3.7 Generating Random Numbers 87 3.8 Case Study: Computing Body Mass Index 89 3.9 Case Study: Computing Taxes 90 3.10 Logical Operators 93 3.11 Case Study: Determining Leap Year 97 3.12 Case Study: Lottery 98 3.13 switch Statements 100 3.14 Conditional Operators 103 3.15 Operator Precedence and Associativity 104 3.16 Debugging 106 chapter 4 mathematical functions, characters, and Strings 119 4.1 Introduction 120 4.2 Common Mathematical Functions 120 4.3 Character Data Type and Operations 125 4.4 The String Type 130 4.5 Case Studies 139 4.6 Formatting Console Output 145 chapter 5 Loops 159 5.1 Introduction 160 5.2 The while Loop 160 5.3 Case Study: Guessing Numbers 163 5.4 Loop Design Strategies 166 5.5 Controlling a Loop with User Confirmation or a Sentinel Value 168 5.6 The do-while Loop 170 5.7 The for Loop 173 5.8 Which Loop to Use? 176 5.9 Nested Loops 178 5.10 Minimizing Numeric Errors 180 5.11 Case Studies 182 5.12 Keywords break and continue 186 5.13 Case Study: Checking Palindromes 189 5.14 Case Study: Displaying Prime Numbers 191 chapter 6 methods 205 6.1 Introduction 206 6.2 Defining a Method 206 6.3 Calling a Method 208 6.4 void vs. Value-Returning Methods 211 6.5 Passing Parameters by Values 214 6.6 Modularizing Code 217 6.7 Case Study: Converting Hexadecimals to Decimals 219 6.8 Overloading Methods 221 6.9 The Scope of Variables 224 6.10 Case Study: Generating Random Characters 225 6.11 Method Abstraction and Stepwise Refinement 227 chapter 7 Single-dimensional arrays 247 7.1 Introduction 248 7.2 Array Basics 248 7.3 Case Study: Analyzing Numbers 255 7.4 Case Study: Deck of Cards 256 7.5 Copying Arrays 258 7.6 Passing Arrays to Methods 259 7.7 Returning an Array from a Method 262 7.8 Case Study: Counting the Occurrences of Each Letter 263 7.9 Variable-Length Argument Lists 266 7.10 Searching Arrays 267 7.11 Sorting Arrays 271 7.12 The Arrays Class 272 7.13 Command-Line Arguments 274 chapter 8 multidimensional arrays 289 8.1 Introduction 290 8.2 Two-Dimensional Array Basics 290 8.3 Processing Two-Dimensional Arrays 293 8.4 Passing Two-Dimensional Arrays to Methods 295 8.5 Case Study: Grading a Multiple-Choice Test 296 8.6 Case Study: Finding the Closest Pair 298 8.7 Case Study: Sudoku 300 8.8 Multidimensional Arrays 303 chapter 9 objects and classes 323 9.1 Introduction 324 9.2 Defining Classes for Objects 324 9.3 Example: Defining Classes and Creating Objects 326 9.4 Constructing Objects Using Constructors 331 9.5 Accessing Objects via Reference Variables 332 9.6 Using Classes from the Java Library 336 9.7 Static Variables, Constants, and Methods 339 9.8 Visibility Modifiers 344 9.9 Data Field Encapsulation 346 9.10 Passing Objects to Methods 349 9.11 Array of Objects 353 9.12 Immutable Objects and Classes 355 9.13 The Scope of Variables 357 9.14 The this Reference 358 chapter 10 object-oriented thinking 367 10.1 Introduction 368 10.2 Class Abstraction and Encapsulation 368 10.3 Thinking in Objects 372 10.4 Class Relationships 375 10.5 Case Study: Designing the Course Class 378 10.6 Case Study: Designing a Class for Stacks 380 10.7 Processing Primitive Data Type Values as Objects 382 10.8 Automatic Conversion between Primitive Types and Wrapper Class Types 385 10.9 The BigInteger and BigDecimal Classes 386 10.10 The String Class 388 10.11 The StringBuilder and StringBuffer Classes 394 chapter 11 Inheritance and Polymorphism 411 11.1 Introduction 412 11.2 Superclasses and Subclasses 412 11.3 Using the super Keyword 418 11.4 Overriding Methods 421 11.5 Overriding vs. Overloading 422 11.6 The Object Class and Its toString() Method 424 11.7 Polymorphism 425 11.8 Dynamic Binding 425 11.9 Casting Objects and the instanceof Operator 429 11.10 The Object’s equals Method 433 11.11 The ArrayList Class 434 11.12 Useful Methods for Lists 440 11.13 Case Study: A Custom Stack Class 441 11.14 The protected Data and Methods 442 11.15 Preventing Extending and Overriding 445 chapter 12 exception handlingand text I/o 453 12.1 Introduction 454 12.2 Exception-Handling Overview 454 12.3 Exception Types 459 12.4 More on Exception Handling 462 12.5 The finally Clause 470 12.6 When to Use Exceptions 471 12.7 Rethrowing Exceptions 472 12.8 Chained Exceptions 473 12.9 Defining Custom Exception Classes 474 12.10 The File Class 477 12.11 File Input and Output 480 12.12 Reading Data from the Web 486 12.13 Case Study: Web Crawler 488 chapter 13 abstract classes and Interfaces 499 13.1 Introduction 500 13.2 Abstract Classes 500 13.3 Case Study: the Abstract Number Class 505 13.4 Case Study: Calendar and GregorianCalendar 507 13.5 Interfaces 510 13.6 The Comparable Interface 513 13.7 The Cloneable Interface 518 13.8 Interfaces vs. Abstract Classes 523 13.9 Case Study: The Rational Class 526 13.10 Class-Design Guidelines 531 chapter 14 JavafX Basics 541 14.1 Introduction 542 14.2 JavaFX vs Swing and AWT 542 14.3 The Basic Structure of a JavaFX Program 542 14.4 Panes, Groups, UI Controls, and Shapes 545 14.5 Property Binding 548 14.6 Common Properties and Methods for Nodes 551 14.7 The Color Class 553 14.8 The Font Class 554 14.9 The Image and ImageView Classes 556 14.10 Layout Panes and Groups 558 14.11 Shapes 567 14.12 Case Study: The ClockPane Class 580 chapter 15 event-driven Programmingand animations 593 15.1 Introduction 594 15.2 Events and Event Sources 596 15.3 Registering Handlers and Handling Events 597 15.4 Inner Classes 601 15.5 Anonymous Inner-Class Handlers 602 15.6 Simplifying Event Handling Using Lambda Expressions 605 15.7 Case Study: Loan Calculator 609 15.8 Mouse Events 611 15.9 Key Events 613 15.10 Listeners for Observable Objects 616 15.11 Animation 618 15.12 Case Study: Bouncing Ball 626 15.13 Case Study: US Map 630 chapter 16 JavafX uI controls and multimedia 643 16.1 Introduction 644 16.2 Labeled and Label 644 16.3 Button 646 16.4 CheckBox 648 16.5 RadioButton 651 16.6 TextField 654 16.7 TextArea 655 16.8 ComboBox 659 16.9 ListView 662 16.10 ScrollBar 665 16.11 Slider 668 16.12 Case Study: Developing a Tic-Tac-Toe Game 671 16.13 Video and Audio 676 16.14 Case Study: National Flags and Anthems 679 chapter 17 Binary I/o 691 17.1 Introduction 692 17.2 How Is Text I/O Handled in Java? 692 17.3 Text I/O vs. Binary I/O 693 17.4 Binary I/O Classes 694 17.5 Case Study: Copying Files 704 17.6 Object I/O 706 17.7 Random-Access Files 711 chapter 18 recursion 719 18.1 Introduction 720 18.2 Case Study: Computing Factorials 720 18.3 Case Study: Computing Fibonacci Numbers 723 18.4 Problem Solving Using Recursion 726 18.5 Recursive Helper Methods 728 18.6 Case Study: Finding the Directory Size 731 18.7 Case Study: Tower of Hanoi 733 18.8 Case Study: Fractals 736 18.9 Recursion vs. Iteration 740 18.10 Tail Recursion 740 Appendix a Java Keywords 751 Appendix B the aScII character Set 752 Appendix c operator Precedence chart 754 Appendix d Java modifiers 756 Appendix e Special floating-Point values 758 Appendix f number Systems 759 Appendix g Bitwise operations 763 Appendix h regular expressions 764 Appendix I enumerated types 769
你還可能感興趣
我要評(píng)論
|