2022年java基础知识大全.pdf
java 基础知识大全 ( 必看经典 ) 第一讲 Java 语言入门1、 1 Java 的特点1、 1、1 面向对象 :?与 C+相比 ,JAVA 就是纯的面向对象的语言 C+为了向下兼容C,保留了很多C里面的特性 , 而 C,众所周知就是面向过程的语言, 这就使 C+成为一个 混血儿 。而 JAVA 语法中取消了C里为兼容C 所保留的特性 , 如取消了头文件、指针算法、结构、单元等。1、 1、2 可移植 ( 平台无关性 ):?生成中间字节码指令与其她编程语言不同,Java并不生成可执行文件( 、 exe 文件 ), 而就是生成一种中间字节码文件(、class文件 ) 。任何操作系统, 只要装有Java 虚拟机 (JVM), 就可以解释并执行这个中间字节码文件。这正就是 Java 实现可移植的机制。?原始数据类型存储方法固定, 避开移植时的问题 Java 的原始数据类型的大小就是固定的。比如 , 在任何机器上 , 整型都就是32 位, 而 C+里整型就是依赖于目标机器的, 对 16 位处理器 ( 比如 8086), 整数用两个字节表示; 在像 Sun SPARC这样的 32位处理器中 , 整数用 4 个字节表示。在Intel Pentium 处理器上 , 整数类型由具体的操作系统决定: 对于DOS与 Win32 来说 , 整数就是2 个字节 ; 对于 Windows 9x 、NT与 2000, 整数就是4 个字节。当然 , 使整数类型平台无关之后, 性能必然有所下降, 但就 Java 来说 , 这个代价就是值得的。Java 的字符串 , 则采用标准的 Unicode 格式保存。可以说, 没有这个特性,Java的可移植性也不可能实现。1、 1、3 简单?JAVA在语法上与C+类似 JAVA 的语法与C+ 很接近 , 有过 C 或者 C编程经验的程序员很容易就可以学会JAVA语法 ;?取消了 C+的一些复杂而低效的特性比如: 用接口技术代替了C+的多重继承。 C中 , 一个类允许有多个超类, 这个特性叫做 多重继承 , 多重继承使得编译器非常复杂且效率不高;JAVA精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 35 页 - - - - - - - - - - java 基础知识大全 ( 必看经典 ) 的类只允许有一个超类, 而用接口 (Interface)技术实现与C的多继承相类似的功能其它被取消的特性包括: 虚拟基础类、运算符过载等?JAVA的基本解释器与类支持模块大概仅40K即使加入基本的标准库与支持线程的模块, 也才 220K 左右。与 GUI( 图形用户界面) 相比 , 明显小很多1、 1、4 健壮?取消了指针算法 C 的最关键的一个特性就是它的强大指针算法, 比如可以用指针访问字符串、数组甚至文件, 很容易产生指针溢出, 意外地改写内存与损毁数据。JAVA里有一个指针模型, 对于普通的任务, 如访问字符串、数组 , 根本不用指针, 而一旦需要 , 比如访问对象、文件时, 也可以获得指针的强大能力, 但 JAVA同时有高度的指针安全保障, 用户永远不可能访问一个坏掉的指针、不可能造成内存分配错误, 也用不着专门提防可能出现的内存漏洞。1、 1、5 多线程?强大的多线程能力多线程可以使程序有更好的交互性与实时性, 并可以最大限度地利用多处理器系统。JAVA有着强大的多线程处理能力, 因为各主流操作系统平台在线程的实施方面有重大的差异, 所以 JAVA为不同的操作系统实现了专门的多线程机制。在这点上来说,JAVA 没有做到平台无关。a1、 2 Java 简史?首次亮相 -1995年 5 月 Java 技术起先就是作为小型的计算机语言, 用于消费类设备, 比如有线电视交换盒等。因为这些设备的功能与内存均不足以运行大程序, 所以程序要尽可能小; 另外 , 由于不同的厂商可能选用不同的 CPU,所以要求这种语言不能受限于任何一种独立的体系结构。1995 年 5 月 23 日召开的SunWorld 95大会上 , 一种全新的浏览器( 今天的 HotJava 的前身 )亮相 , 标志着 Java 的诞生。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 35 页 - - - - - - - - - - java 基础知识大全 ( 必看经典 ) ?开始流行 -1996年 1 月那时网景公司决定在Netscape2 、0 加入对 Java 的支持 ,Netscape2 、0 在 1996 年 1 月发布 , 从这一版本开始, 所有 Netscape 浏览器均支持Java 。注册了Java 使用许可证的还有IBM、Symantec、Inprise与其她许多公司。就连微软, 也加入了这一行列( 尽管她们支持的Java 与标准的Java 稍有不同)。?SUN的第一个JAVA版本 -1996年初 Sun 公司于 1996 年初发布了Java 1 、02, 遗憾的就是 ,Java1 、02 还未摆脱其小型语言的影子,只适合用来做诸如网页上一个随机移动的文字之类的工作, 并不适合用来做正规的程序开发。Java1 、02 作为一种正规的编程语言, 可以说 , 准备得很不充分。?成熟 -1998年 1998 年 12 月,Java1 、2 问世了。它就是一个功能全面的、具有高度扩展能力的新版本。3 天后,Java1 、2 被改进成Java2, 向 一次编写 , 到处运行 的目标前进了一大步。?现状现在最新的Java 版本就是JDK1、4, 它就是一个测试版, 稳定的正式版就是JDK1、3。用户可以到免费下载。微软在它的最新浏览器IE6 、0 中不再支持Java, 为 Java 的发展带来阴影。1、 3 JDK 的安装与编程环境的设定1、 3、1 Java程序的开发过程精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 35 页 - - - - - - - - - - java 基础知识大全 ( 必看经典 ) 经典的 Java 工具包就是JDK。尽管可以用任何文本编辑器, 如记事本 , 都可以直接编写Java 程序然后用 JDK的命令编译与运行, 为了调试方便, 也为了初学者容易上手, 本教程课件将使用一个叫JPadPro 的 Java 编写工具来调用JDK的工具。用户可以到下载这个工具。1、 3、2 JDK 的安装1、 3、3 安装运行之后, 应该首先设置JDK工具包所在的路径。菜单栏的JDK-select JDK Directory-选择刚才安装的JDK路径 - OK 。1、 3、4 新建一个project菜单栏的File-new projects-选择路径 , 输入 project的名字。1、 4 两个简单的程序示例1、 4、1 Java 应用程序 :Hello、java?编写新建一个、 java文件。 File-new-java file-输入一个名字:Hello-点 creat file、出现了一个空的java 文件。?编译 JDK- compile Hello、java 或者点击如演示所示的按钮。实际上就是执行JDK工具包里的javac 、exe 命令 , 与 javac G:java2jiaochengexampleteach1Hello、java 就是等价的。便已完成精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 35 页 - - - - - - - - - - java 基础知识大全 ( 必看经典 ) 之后在同一个文件夹就会有一个同名的、class文件。?瞧编译结果 , 改错错误举例 : 少写一个分号; 录入错误 ;?运行 JDK- Run classes-选择要运行的class,输入参数 ( 这里 , 没有参数 )或者点击如演示所示的按钮。一个有参数的例子?瞧运行结果1、 4、2 Java Applet: StarterApplet、java新建一个Java Applet文件。 File-new-java Applet-输入一个名字:StarterApplet-出现了一个空的java 文件与一个Html 文件。?编译JDK-compile StarterApplet、java 或者点击如演示所示的按钮。实际上就是执行JDK工具包里的 javac 、exe 命令 , 与 javac G:java2jiaochengexampleteach1 StarterApplet、java就是等价的。注意不要隐藏文件的扩展名, 否则给编译时带来麻烦!可以在工工具 / 文件夹先项 / 查瞧 / 中修改!?瞧编译结果 , 改错?运行 JDK- Test Applet-选择要运行的class,输入参数 ( 这里 , 没有参数 )或者点击如演示所示的按钮或者直接双击Html 文件。?瞧运行结果精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 35 页 - - - - - - - - - - java 基础知识大全 ( 必看经典 ) 1、 5 如果获得帮助1、 5、1 下载帮助 JDK 并不包含帮助文件, 需要到网站上下载, 里面有示例与说明。 , 下载下来时候, 双击安装。1、 5、2 使用帮助敲入想查找的关键字, 按回车。1、 6 编程的一些约定注意: 在一个原文件中只能有一个public 类!且文件名与public类同名!1、 6、1 命名规则类名与文件名应该一致, 否则编译出错。比如,class Hello的文件名应该就是Hello 、java类名首字母大写, 每个单词开头大写, 其她用小写。比如:Hello、java, StarterApplet、java 。变量名用第一个单词用小写字母, 第二个以后的单词首字母大写。比如:int myAge;方法的名字第一个单词用小写字母, 第二个以后的单词首字母大写, 比如 :getMyAge();1、 6、2 注释/* * Here is a block comment、*/ 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 35 页 - - - - - - - - - - java 基础知识大全 ( 必看经典 ) 表示完整的一段注释;if (condition) /* Handle the condition、 */ 、 表示注释该行以下部分if (a = 2) return TRUE; /* special case */ else return isPrime(a); / works only for odd a 注释一行1、 6、3 分行如果一行太长需要换行。比如:someMethod(longExpression1, longExpression2, longExpression3, longExpression4, longExpression5); var = someMethod1(longExpression1, someMethod2(longExpression2, longExpression3); var = someMethod1(longExpression1, someMethod2(longExpression2, longExpression3);讲演计划第三讲语句精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 35 页 - - - - - - - - - - java 基础知识大全 ( 必看经典 ) Java 的语句可以分为以下4 种:?表达式语句?方法调用语句?控制语句3、 1 表达式语句一个表达式加上一个分号就构成了一个语句。分号表示一个语句的结束, 缺少分号 , 编译将出错。最典型的表达式语句就是赋值语句。比如 :int x; x=23;3、 2 方法调用语句调用一个类的对象的方法: 类名 ( 或对象名 ) 、方法名 ( 参数列表 ) 。比如 : System、out 、println(Hello)、如果方法有返回值, 还可以把返回值赋值给一个变量。比如: String s=Hello, int len; len=s 、length();精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 35 页 - - - - - - - - - - java 基础知识大全 ( 必看经典 ) 3、 3 控制语句 Java 语言的控制语句有2 种: 条件语句、循环语句。条件语句 :条件语句有两种:if语句与 switch语句。?if语句 :if (条件 ) 代码块 1 else 代码块 2如果条件为真, 则执行代码块1, 否则执行代码块2。 else部分就是可选的, 也就就是说 , 可以没有else 。如果有 else,则与最近的if结合 :?switch语句 switch语句就是多分支的开关语句, 它的一般格式定义如下:switch(表达式 ) case 常量值 1: 代码块 1 break; case 常量值 2: 代码块 2 break; default: 代码块 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 35 页 - - - - - - - - - - java 基础知识大全 ( 必看经典 ) 语句中表达式的值必须就是整型或者字符型; 常量值 1 到常量值n必须也 就是整型或者字符型。switch语句首先计算表达式的值, 如果表达式的值与某个case 后面的常量值相同, 就执行该case 里的若干个语句直到break 语句为止。 如果没有一个常量与表达式的值相同, 则执行 default后面的若干个语句。default就是可有可无的, 如果它不存在, 并且所有的常量值都与表达式的值不相同, 那么 switch语句就不会进行任何处理。需要注意的就是, 在 switch同一个语句中 ,case后的常量值必须互不相同。3、 3 控制语句 Java 语言的控制语句有2 种: 条件语句、循环语句。条件语句 :条件语句有两种:if语句与 switch语句。?if语句 :if (条件 ) 代码块 1 else 代码块 2如果条件为真, 则执行代码块1, 否则执行代码块2。 else部分就是可选的, 也就就是说 , 可以没有else 。如果有 else,则与最近的if结合 :?switch语句 switch语句就是多分支的开关语句, 它的一般格式定义如下:switch(表达式 ) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 35 页 - - - - - - - - - - java 基础知识大全 ( 必看经典 ) case 常量值 1: 代码块 1 break; case 常量值 2: 代码块 2 break; default: 代码块 语句中表达式的值必须就是整型或者字符型; 常量值 1 到常量值n必须也就是整型或者字符型。switch语句首先计算表达式的值, 如果表达式的值与某个case 后面的常量值相同, 就执行该case 里的若干个语句直到break 语句为止。 如果没有一个常量与表达式的值相同, 则执行 default后面的若干个语句。default就是可有可无的, 如果它不存在, 并且所有的常量值都与表达式的值不相同, 那么 switch语句就不会进行任何处理。需要注意的就是, 在 switch同一个语句中 ,case后的常量值必须互不相同。循环语句 :循环语句 , 顾名思义 , 就是反复执行的语句。比如, 计算 100 的阶乘 ,1*2*3*、 *100, 就需要用到循环语句, 不然 , 就要写一百遍乘法。循环语句需要特别小心, 很容易陷入死循环, 所以循环体的代码块里需要有能使循环结束的语句。Java 有三种循环语句:while语句 ,do-while语句与 for语句。?while语句 : while语句的格式就是:while(条件 ) 代码块 当条件成立的时候, 执行代码块 , 再检查条件 , 如果还成立 , 再执行代码块 , 直到条件不成精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 35 页 - - - - - - - - - - java 基础知识大全 ( 必看经典 ) 立。比如 , 计算 10 的阶乘 :?do-while语句 do-while语句的格式就是:do 代码块while(条件 ) do-while语句与 while语句的区别在于:while语句先检查条件, 如果条件不成立, 则不进入循环体 ;do-while语句先执行循环体的代码, 再检查条件 , 如果条件成立, 则在此执行循环体的代码。所以,do-while语句至少要执行一遍循环体的代码块。比如 , 计算 10 的阶乘 :?for语句 for语句就是 Java 语言中用得最多的循环语句。它的格式如下:for( 表达式 1, 表达式 2, 表达式 3) 代码块 其中 , 表达式 1 完成变量的初始化, 表达式 2 时布尔类型的表达式, 就是循环条件, 表达式 3 就是党执行了一遍循环之后, 修改控制循环的变量值。 for语句的执行过程就是这样的: 首先计算表达式1, 完成必要的初始化工作; 然后判断表达式2的值 , 如果表达式的值为true,则执行循环体; 如果为 false,则跳出循环。执行完循环体之后紧接着计算表达式 3, 以便改变循环条件, 这样一轮循环就结束了。第二轮循环从计算表达式开始, 如果表达式的值仍为 true,则继续循环 ; 否则循环结束, 执行 for语句后面的语句。比如 , 计算 10 的阶乘 :?嵌套循环经常可以遇到嵌套循环的例子。所谓嵌套循环, 就是指一个循环体里还有一个或者更多个循环。比如计算 10 以内的阶乘之与, 或者求 50 以内的素数 , 就需要用到嵌套循环。我们以求 50 以内的素数为例, 说明嵌套循环的用法; 求 10 以内的阶乘之与, 将留作作业。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 35 页 - - - - - - - - - - java 基础知识大全 ( 必看经典 ) 循环语句里的break 语句与 continue语句 :在循环体中 , 遇到 break 语句 , 那么整个循环语句就结束; 如果遇到continue语句 , 那么本次循环就结束 , 就就是说 , 不再执行本次循环中continue语句后面的语句, 而就是转入下一次循环。3、 5 变量的作用域变量就是由作用域的。所谓变量的作用域, 就是指一个变量在什么地方生效。总的来说 , 变量的作用域就是声明它的块。所谓块 , 就是指用一对花括号包围起来的任意数量的Java 语句。 变量只在声明它的块中有效, 在这块以外 , 变量就是无效的。然而 , 不可以 在两个嵌套的块中声明两个完全同名的变量。注意 , 在 C+中 , 这就是允许的, 内部定义会掩盖外部定义。这很容易造成错误, 所以 Java 不允许这样做。小结这一讲 , 我们主要学习了Java 的语句 , 主要就是流程控制语句, 包括条件语句与循环语句等。语句就是程序的基本组成部分, 就是我们进一步学习Java 的基础。希望同学们切实掌握好这部分内容,为我们的进一步学习打下坚实的基础。习题1.编一个计算1!+2!+ +10!的应用程序精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 13 页,共 35 页 - - - - - - - - - - java 基础知识大全 ( 必看经典 ) 应用程序计算100 以内的全部质数2.一个数如果恰好等于它的因子之与, 这个数就称为“完数” , 编写一个应用程序, 求 1000 之内的所有完数。3.求 45 与的最大公约数与最小公倍数。第四讲 数组与字符串4、 1 什么就是数组?为什么要数组?除了基本数据类型,Java还提供一种导出类型: 数组。数组就是相同类型的数据按顺序组成的一种复合数据类型, 通过数组名与下标, 可以使用数组中的数据。下标从0 开始。数组就是所有编程语言中常用的数据结构。为什么要数组呢?我们来举一个例子。假设我们需要表示一个班50 个人的数学成绩, 要求求出平均成绩。如果没有数组, 我们需要用前面学过的声明变量的方法, 声明 50 个变量 , 写 50 次加法运算!数组可以大大地简化类似的问题!我们只要声明一个长度为50 的整型数组 , 结合上一讲我们学过的循环语句 , 就可以很方便地解决这个问题!在以前的编程语言比如C或者 C+中, 字符串也使用数组来表示的: 字符串就是字符数组!所以字符串与数组有着天然的联系。但就是在Java 中, 提供了一种更方便的表示字符串的方法: 用一个String类来表示。类就是面向对象的语言特有的概念, 对于初次接触面向对象技术的人来说, 比较难理解。所以 , 这一讲 , 我们将学习表示字符串的String类, 也对类的使用有一个粗略的了解, 作为下一讲详细学习类的准备。需要指出的就是,C 语言里的其她两种导出类型: 结构体与共用体, 在 Java 里已经被取消。下面 , 我们来学习数组与字符串。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 14 页,共 35 页 - - - - - - - - - - java 基础知识大全 ( 必看经典 ) 4、 2 数组的声明、创建与初始化1.数组的声明 :声明数组 , 包括声明数组的名字、数组包含的元素的数据类型。数组可以一维的, 也可以就是二维或者多维的。 举例来说 : 一个班有50 个人 , 我们用一个长度为50 的一维数组表示; 如果要表示每个同学的五门高考成绩, 那我们就需要用一个第一维长度为50, 第二维长度为5 的二维数组。声明一维数组有两种格式:?数组元素类型数组名 ;?数组元素类型 数组名 ;比如 :int student ; 或者 : int student;类似地 , 声明二维数组有两种格式:?数组元素类型数组名 ;?数组元素类型 数组名 ;比如 :int score ; 或者 : int score;下面 , 我们主要以一维数组为例, 学习数组的用法。2.数组的创建 :声明数组仅仅给出了数组名字与元素的数据类型, 想要真正使用数组还必须为数组分配内存空间, 也就就是创建数组。在为数组分配内存空间时必须指明数组的长度。为数组分配内存空间的格式如下:?数组名 = new 数组元素的类型 数组的长度 例如 :student = new int 50; score = new int 50 4;事实上 , 数组的声明与创建可以一起完成, 比如 :int student = new int 50;一旦数组被创建, 数组的大小就不能改变。如果在程序运行期间, 需要对数组的大小进行扩展,通常需要使用另一种数据对象:Vector。有关向量与扩展数组, 有兴趣的同学可以在Java 帮助中查找精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 15 页,共 35 页 - - - - - - - - - - java 基础知识大全 ( 必看经典 ) Vector的帮助。 student数组创建之后, 其内存模式如图:3.数组的初始化:创建数组后 , 系统会给每个元素一个默认的值, 比如 , 整型数组的默认值就是0。我们也可以在声明数组的同时给数组一个初始值, 我们称之为初始化。int num = 2, 4, 4, 1。这个初始化动作相当于:int num = new int 4; num 0=2; num 1=5; num 2=4; num 3=1;4、 3 数组的使用1.数组的访问前面我们已经瞧到, 数组通过下标访问数组元素, 比如 :student 0 =70,student 49=87等。注意 , 下标从 0 开始 , 如果数组长度为n, 则下标就是0 n -1,如果使用n 或者以上的元素, 将会发生数组溢出异常。比如:student 50 = 79,虽然编译的时候能通过, 程序运行时将中止。二维数组的使用与之类似。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 16 页,共 35 页 - - - - - - - - - - java 基础知识大全 ( 必看经典 ) 2.数组的复制可以把一个数组变量复制给另一个, 但两个变量引用的都会就是同一个内存空间, 所以改变一个数组的值 , 另一个数组变量的值也会改变。比如 : int num = 2, 3, 5, 1; int numcopy =num; numcopy2 =5; 现在 ,num2 也变成了 5。如果真的想把一个数组的所有值都复制到另一个数组中, 就需要采用System 、 arrarycopy()方法 :System 、 arrarycopy ( num, 0, numcopy, 0, 4) 。这样 ,num 与 numcopy 将指向不同的内存空间,numcopy 的值的改变 , 不会在影响num 。有兴趣的同学可以参考帮助文件。4、 4 字符串前面已经说过:Java使用 java 、lang 包中的 String类来表示字符串, 尽管我们可以用字符数组来实现类似的功能。关于类的详细知识, 我们下一讲将会讲到。由于类就是面向对象编程语言最核心的概念 , 学习起来有些难度, 我们在这里先通过String类对类的概念有一个粗略的了解, 以使我们下面的学习更顺利一些。字符串 , 顾名思义 , 就就是一串字符。比如:student100, China 等。用一对双引号表示字符串。我们也可以把字符串瞧成字符数组( 事实上 ,C 就就是把字符串当作字符数组来处理), 但就是把它视为类更方便一些。为什么?我们下面马上会瞧到。?字符串的声明、创建字符串声明的格式就是: String 字符串名精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 17 页,共 35 页 - - - - - - - - - - java 基础知识大全 ( 必看经典 ) 比如 :String s;字符串的创建格式: 字符串名 = new String(字符串常量 ) 或者字符串名 =字符串常量比如 :s = new String ( student ); 或者 :s = student;声明与创建可以一步完成, 比如 :String s = new String ( student ); 或者 String s = student;大家就是不就是觉得:String这个类的声明 , 跟前面我们学过的基本数据类型的声明的格式就是一样的 , 比如 : 整型的声明 :int n; 比较一下 : String s; 事实上 ,类型变量名这种格式就是类的声明的一般格式, 您可以把类当作基本数据类型一样来声明。另一方面 ,变量名 = new 类名 ( 参数列表 ); 比如 s = new String ( student );这就是类的一般创建格式。4、 5 与字符串有关的操作?字符串的长度length()方法 : String s = student; int len=s、length();需要指出的就是,s 、 length()这种调用方法, 就是面向对象编程语言特有的方法, 我们把 s 叫做String类的对象 , 就像 int n,我们把 n 叫做整型变量一样; 把 length()叫做 String类的方法。下面我们可以瞧到 ,String类的方法 , 都就是通过对象名、方法名() 这种方式调用的。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 18 页,共 35 页 - - - - - - - - - - java 基础知识大全 ( 必看经典 ) ?取子串String s = I am a Chinese; String subs; subs = s、substring (7);?字符串的比较String tom = my name is tom; String jane = my name is jane; tom、 equals(jane); 返回 false 。表示不相等tom、compareTo(jane), 返回一个负整数, 因为第一个不相等的字符t 与 j 相比 ,t在 j的后面 ; 如果返回 0, 表示相等 ; 如果返回一个正整数, 表示 tom 与 jane 第一个不相等的字符 ,tom 的在 jane 的前面。注意 , 不要用 tom= =jane判断两个字符串就是否相等, 因为这样的话比较的就是它们在内存中的地址就是否相同, 而不就是我们所希望的比较字符串的内容就是否相同。?字符串连接String s = I am; String s2 = a Chinese; String s4, s4; s4 = s+s2; s4=s + 24; 整数型 24 将会自动转换为字符串。?字符串检索字符串检索就是指判断一个字符串就是否包含某一个字符或者子字符串, 如果有 , 返回它的位置, 如果没有 , 返回一个负数。String s = I am a Chinese; s、indexOf (Chinese ), 返回 7; s、indexOf(a); 返回 2;?字符串转换为数值如果一个字符串就是一串数字, 可以把它转换成相应的数值。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 19 页,共 35 页 - - - - - - - - - - java 基础知识大全 ( 必看经典 ) o转换为整型 :String s = 21; int x; x= Integer、parseInt (s);o转换为浮点型String s = 22、 124; float f; f = Float、valueOf(s)、floatValue();o当然 , 也可以把整数或者浮点数转换为字符串类型:String s; int n = 24; s = String、valueOf ( n );o其她与字符串有关的方法还有很多, 我们不可能一一讲解。前面我们说过, 我们要学会使用帮助。我们查找关于String的帮助 , 就可以瞧到 , 有关于 String的所有方法的详细讲解。希望同学们可以学会使用帮助。小结这一讲 , 我们学习了数组的一些知识, 并通过 String类, 一方面学习了字符串的使用, 另一方面先对类的一些概念与用法, 比如类的方法调用, 有了一些粗略的了解。数组就是我们经常要用到的数据结构, 它就是一种导出型的数据结构, 对我们处理大规模的数据, 有很大帮助。前面我们说 , 用 String类表示字符串 , 比我们自己用字符数组来做更方便。因为 String类为我们提供了很多现成的可以直接使用的对字符串的操作方法。比如substring( ),equals( )等方法。如果我们要用字符数组来完成与substring类似的功能 , 就只能自己把子串的每一个字符复制到另外一个字符数组中; 与 equals()类似的功能 , 就只能自己一个一个字符地检查两个字符船就是否相等。提供对自己的成员数据的完整的操作方法, 也就就是把数据与对数据的操作封装起来, 就是类的最大的好处。如果现在还不能理解这句话, 不要紧 , 我们现在只需要知道: 使用 String类这种方法 , 非常方便。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 20 页,共 35 页 - - - - - - - - - - java 基础知识大全 ( 必看经典 ) 习题1.声明一个数组, 存一个学生的五门成绩。求该学生总成绩、平均成绩。2.将一个数组中的值按逆序重新存放, 例如 , 原来顺序为 :9,5,7,4,8,要求改为 :8,4,7,5,9。3.编写一个应用程序, 连接两个字符串 : “I am ”与“ a student ”, 并求出第7 个字符就是什么?找出“ am ”在该字符串中的位置, 最后把所有字符都变成大写字符。4.统计一个字符串中字母、空格与数字的个数。第五讲 : 类、对象与接口 (1)5、 1 什么就是类上一讲我们使用了一个String类 , 我们说过 : 类把一类对象的成员函数与方法封装起来, 使用起来很方便。 那么 , 什么就是类呢?要理解类, 我们先来了解对象 的概念 , 因为类就就是用来创建对象的模板 , 它包含了被创建的对象的状态描述与方法定义。我们可以把长虹牌电视机瞧成就是一个对象。我们不必关心电视机里面的集成电路就是怎样的, 也不用关心电视机的显像管的工作原理, 我们只需要知道电视机的遥控器上提供了对这台电视机的什么操作 , 比如选台、调节色彩、声音等。这样 , 我们虽然不知道电视机内部就是怎么工作的, 但我们可以使用这台电视机。听起来这跟编程没什么关系, 但面向对象的思想正就是与它类似: 对象 , 对外只提供操作该对象的方法, 内部的实现对外就是隐藏的。我们把这种技术叫做数据隐藏。这样, 程序员不必了解一个对象内部就是怎么实现的, 但可以很方便地使用这个对象。类, 就就是对象的模板。比如, 电视机就是一个类, 而某一台电视机就就是这个类的一个对象,也叫一个实例。我们前面使用的String类, 虽然我们不知道, 也不必知道里面的实现细节, 但我们只要知道她的操作方法 , 就可以很方便地使用它。这样, 对别的程序员编写的程序, 我们可以很方便地拿来使用, 从精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 21 页,共 35 页 - - - - - - - - - - java 基础知识大全 ( 必看经典 ) 而提高软件的复用程度与编程的效率。比如 , 我们构造一个类:TV, 然后对外提供一些对它的操作方法, 选台 selectChannel( )等。然后用这个类创建一个对象:TV kongKai;然后就可以这样操作这台电视: kongKai、selectChannel。类的另一个特性, 也就是它的一个大好处, 就是继承。继承的概念类似于这样一种表达: 电视就是一种电器。 如果我们有一个电器类,