第三章 面向对象程序设计ppt课件.pptx
第三章 面向对象程序设计中国铁道出版社Java程序设计Java程序设计第三章 面向对象程序设计类和对象3.1使用 Java 库中的类3.2静态变量、常量和方法3.3目录CONTENTE数据域封装3.4this 引用3.5Java程序设计第三章 面向对象程序设计知识目标【知识目标】1了解面向对象的 3 个特征;2熟悉类和对象的创建和使用;3掌握类的封装性;4掌握构造方法的定义和重载Java程序设计第三章 面向对象程序设计教学重难点【能力目标】1掌握类和对象的创建和使用;2掌握 Java 中常用类库的使用。Java程序设计第三章 面向对象程序设计类 和 对 象3.1Java程序设计Java程序设计第三章 面向对象程序设计3.1.1 Java 中类和对象的理解对象具有如下特征: 有一个名字区别于其他对象; 有一些状态用来描述它的某些特征属性; 有一组操作,每个操作决定对象的一种功能或行为;1.对象的概念8抽象的概念电视机 类型Java程序设计第三章 面向对象程序设计9 类定义了通用于一个特定种类的所有对象的状态(变量)和行为(方法)。 类定义为数据和方法的集合。 类和对象的关系: 类是创建对象的模板,对象是类的实例。类对象抽象实例化属性操作数据或变量方法把相似的对象划归成一个类。2.类的概念Java程序设计第三章 面向对象程序设计Java程序设计第三章 面向对象程序设计3.1.2 定义类和创建对象对象中最重要的两种特征内容就是数据和行为。数据。数据就是描述对象的信息的静态信息,称为对象的属性(又称数据/状态)。比如一辆汽车,它的型号、价格、出厂日期等,都是这辆汽车对象的静态信息数据。行为。行为就是这个对象可以完成的动作、操作等,是对象的动态特征,称为对象的方法(又称行为/操作)。例如,汽车可以启动、行驶、刹车等,都是这辆汽车的动态特征。1类的定义Java程序设计第三章 面向对象程序设计Java 中类的定义就是完全模拟了日常生活中类的特征内容。11public class name type variable1; type variableN; type methodname1(parameter-list) /方法体 type methodnameN(parameter-list) /方法体 Java中定义类的通用格式:成员方法(对象行为或操作)成员变量(对象属性或状态)Java程序设计第三章 面向对象程序设计【例 3-1】 定义一个简单的学生类。把学生作为一种类进行定义,为了简单起见,假设学生的属性有姓名、性别、年龄、成绩、学号等。class Student String stuName; char sex; int age; float score; String stuNo;学生学生姓名姓名性别性别年龄年龄成绩成绩学号学号Java程序设计第三章 面向对象程序设计返回类型必须的修饰符可选的方法是包含在类中的函数。定义方法的格式方法名必须的参数列表必须的定义方法的一般格式:access type methodname1(parameter-list) /方法体14class Student String stuName; char sex; int age; float score; String stuNo; void study ( String course ) System.out. println(“学习”+course); 返回类型 方法名参数列表Constructor。学生学生姓名姓名性别性别年龄年龄成绩成绩学号学号学习学习(课程课程)定义方法的格式(例子)2022-5-2114Java程序设计第三章 面向对象程序设计Java程序设计第三章 面向对象程序设计2对象的创建15 名称与类名称相同 没有返回值类型 其主要任务是在创建对象时初始化其内部状态 public class Student String stuName; String stuNO; Student(String name, String number ) stuName = name; stuNo= number; void study(String course)。构造方法构造方法构造方法Java程序设计第三章 面向对象程序设计 使用下列语法可创建对象: new 构造方法; new 调用构造方法来执行对象状态初始化。 用于分配对象内存,并将该内存内容初始化。关键字 new 通常称为创建运算符。public class StudentDemo public static void main(String args) Student stu1 = new Student (“ZhangJie”, “001”); Student stu2= new Student (“LiMing”, “002”); 创建对象stu1创建对象stu2Java程序设计第三章 面向对象程序设计Student stu1 = new Student( “ZhangJie”, “001”);stu1stu1操作步骤模拟:1声明 stu1Java程序设计第三章 面向对象程序设计stu1操作步骤模拟:2Student stu1 = new Student( “ZhangJie”, “001”);stu1地址:0 x001stuName:StuNo:ZhangJie001声明 stu1创建一个具体的学生Java程序设计第三章 面向对象程序设计Student stu1 = new Student( “ZhangJie”, “001”);ox001stu1 就可以把stu1简称作是一个Student类型的对象stu1.stuName;对象名.属性名或者对象名.方法名()stu1操作步骤模拟:3地址:0 x001stuName:ZhangJieStuNo:001将这个无名对象的引用赋值给对象变量stu1Java程序设计第三章 面向对象程序设计构造方法不允许有返回类型。这个很好理解,一个类中的构造方法就是用来创建这个类的一个对象,没有第二个选择,返回类型的定义有点画蛇添足。它的方法名必须和类名完全一致。这样有个好处,一看构造方法的名称,就知道要构造那个类的对象。调用时机与一般的方法不同。一般的方法是在需要时才调用,而构造方法是在创建实例对象时自动调用,并执行构造方法的内容。如果没有声明一个构造方法,程序会自动为类加入一个无参且什么都不做的构造方法。基于上述特性,构造方法一般用来对对象的数据成员做初始化的赋值。只要构造方法的参数个数不同,或是类型不同,便可定义多个名称相同的构造方法。这个称为方法的重载。方法的重载则意味着使用同样的名字但不同的参数列表、返回值等来定义多个方法。注意Java程序设计第三章 面向对象程序设计3类的封装性学生类的一些属性,比如 age、score 等不希望在程序中被随意改变,再比如 age属性是 int 类型,如果赋值为负数,在程序中是不会有错的,但是不符合现实生活常理。所以在设计一个类的时候,应该对成员变量的访问做一些限定,在允许的范围内进行访问和使用。这就需要设计类的封装。例如,在定义一个类的时候,把类的成员私有化,即用 private 来修饰。私有成员只能在这个类体内部使用。为了让外界也可以访问到私有成员,需要设置一些公共的方法来获得或者设置这些属性的值。习惯上可以用 setXxx()、getXxx()形式来命名这些方法,这些方法又称设置器和获取器。Java程序设计第三章 面向对象程序设计【例 3-3】 定义一个汽车类。分析:现在我们已经知道 Java 类的定义和对象的创建方法,有了类,就像是有了设计蓝图,就可以根据蓝图来实现设计。正确的声明了 Java 类,就可以在其他类或应用程序中使用该类,比如创建该类对象并访问操作对象成员等。汽车类 CarObject 中列出了汽车类的常用方法和属性。程序清单:Java程序设计第三章 面向对象程序设计4基本数据类型和引用数据类型的区别 i 基本数据类型赋值 i = j Before: 1 j 2 i After: 2 j 2 c1 引用类型赋值 c1 = c2 Before: c2 c1 After: c2 c1: Circle radius = 5 C2: Circle radius = 9 c1: Circle radius = 5 C2: Circle radius = 9 基本数据类型在被创建时,在内存中(栈上)给其划分一块内存,将数值直接存储在栈上;引用数据类型在被创建时,首先要在栈上给其引用分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。在执行完 c1=c2 之后,c1 和 c2 指向同一个对象。c1 之前引用的对象不再有用,因此就会成为垃圾(garbage)。为了防止垃圾占用太多内存,Java 的垃圾回收机制会检测垃圾并自动回收空间,这个过程称为垃圾回收。Java程序设计第三章 面向对象程序设计使用 Java 库中的类3.2Java程序设计Java程序设计第三章 面向对象程序设计Java 类库中的类和接口大多封装在特定的包里,每个包具有自己的功能。Java 提供了极其完善的技术文档。用户只需了解技术文档的格式就能方便地查阅文档。下面给大家介绍几个常用的类来解决常见问题,比如生成随机数字、数学公式的处理、显示一个日历,或者找到特定的日期(如生日)等。在学习过程中要学会举一反三,掌握查阅技术文档,使用新的类库的方法。3.2.1 Date 类System.currentTimeMillis()方法可以获取当前系统时间,Java 在 java.util.Date 类中还提供了与系统无关的对日期和时间的封装。java.util.Date 中的常用方法如表 3-1所示。java.util.Date+Date()为当前时间创建一个Date对象+Date(elapseTime: long)为一个从格林威治格林威治时间1970年1月1日至今流逝的毫秒数参数,建立一个日期对象的以毫秒为单位计算的给定时间创建Date对象+toString():String返回一个代表日期的字符串+getTime: long返回从从格林威治格林威治时间1970年1月1日至今流逝的毫秒数+setTime(elapseTime: long):void设置一个新的流逝时间表3-1 中的常用方法中的常用方法例如,使用下面的语句可以创建一个日期对象的信息:java.util.Date date=new java.util.Date();System.out.println(现在距1970 年1月1日0:0:0的时间差是:+date.getTime ()+毫秒;System.out.println(date.toString();Java程序设计第三章 面向对象程序设计3.2.2 Random 类在数学类 Math 中有个方法Math.random(),可以获取一个 0.0 到 1.0(不包括1.0)之间的随机 double 值。java.util.Random 可以产生一个 int、long、double、float和 boolean 类型的值。java.util.Random 中的常用方法如表 3-2 所示。java.util.Random+Random()以当前时间作为种子创建一个Random对象+Random(seeds: long)以特定时间为种子创建一个Random对象+nextInt(): int返回一个随机int值+nextInt(n: int): int返回一个0到n(不包含n)之间的随机int类型值+nextLong(): long返回一个随机的long值+nextDouble(): double返回一个随机的Double值(0.0到1.0之间,不包含1.0)+nextFloat(): float返回一个随机的float值(0.0F到1.0F之间,不包含1.0F)+nextBoolean(): boolean返回一个随机的boolean值表3-2 中的常用方法中的常用方法Java程序设计第三章 面向对象程序设计Ramdom random1=newRandom(3);System.out.print(第 1 组随机值:);for (int i=0;i10;i+)System.out.print(random1.nextInt(1000)+ );Ramdom random2=newRandom(3);System.out.print(第 2 组随机值:);for(int i=0;i10;i+)System.out.print(random1.nextInt(1000)+ );如果两个 Random 对象有相同的种子,那它们将产生相同的数列。例如:第 1 组随机值:722 630 552 789 354 448 256 145 846 965第 2 组随机值:722 630 552 789 354 448 256 145 846 965代码会产生 1000 以内的相同序列的 int 随机数值,例如:所以,有时也将两个 Random 对象有相同的种子产生相同的随机数列的情况称为“伪随机”。Java程序设计第三章 面向对象程序设计3.2.3 Point2D 类Java API 在 javafx.geometry 包中有一个便于使用的 Point2D 类,用于表示二维平面上的点。主要方法如表 3-3 所示。javafx.geometry.Point2D+Point2D(x: double, y: double)返回该点到给定点(x, y)之间的距离+distance(x: double, y: double): double返回该点到给定点p之间的距离+distance(p: Point2D): double返回两点间的距离+getX(): double返回x坐标+getY(): double返回y坐标+toString(): String返回该点的字符串表表3-3 中的常用方法中的常用方法Java程序设计第三章 面向对象程序设计【例 3-4】 计算两个点之间的距离。import java.util.Scanner;import javafx.geometry.Point2D;public class TestPoint2D public static void main(String args) Scanner input = new Scanner(System.in);System.out.print(输入 p1 点的 x-,y-坐标:);double x1 = input.nextDouble();double y1 = input.nextDouble();System.out.print(输入 p2 点的 x-,y-坐标:);double x2 = input.nextDouble();double y2 = input.nextDouble();Point2D p1 = new Point2D(x1,y1);Point2D p2 = new Point2D(x2,y2);System.out.println(p1 是 + p1.toString();System.out.println(p2 是 + p2.toString();System.out.println(两点 p1 和 p2 的距离是: + p1.distance(p2);Java程序设计第三章 面向对象程序设计3.2.4 Math 类Math 中的方法分为三类:三角函数、指数函数方法和服务方法。服务方法主要提供取整、求最小值、求最大值、求绝对值和随机方法。除了这些方法之外,Math类还提供了常量:Math.PI 记录圆周率;Math.E 记录 e 的常量。下面介绍一些常用方法的使用。1三角函数Math.sin 正弦函数 Math.asin 反正弦函数Math.cos 余弦函数 Math.acos 反余弦函数Math.tan 正切函数 Math.atan 反正切函数Math.toDegrees 弧度转化为角度 Math.toRadians 角度转化为弧度2指数函数Math 类中有 5 个指数函数的方法,如表 3-4 所示。Math.sqrt(x) 返回x的平方根Math.pow(a,b)返回a的b次方Math.exp 返回e的任意次方Math.log10(x)返回x的以10为底的对数Math.log 返回x的自然对数表3-4 指数函数方法Java程序设计第三章 面向对象程序设计3取整方法Math 中的取整方法如表 3-5 所示。Math.rint(x) 求距离某数最近的整数,如果距离相等返回偶数,返回double类型Math.round(x)返回Math.floor(x+0.5)返回int型或者long类型Math.floor(x) 向下取整,返回double类型 Math.ceil(x)向上取整,返回double类型表3-5取整方法例如:Math.floor(12.7) /返回 12.0Math.floor(-2.1) /返回-3.0Math.ceil(12.7) /返回 13.0Math.ceil(2.1) /返回 3.0Math.round(-2.6) /返回-3Math.round(-2.4) /返回-2Math.rint(4.5) /返回 4.0Math.rint(-2.1) /返回-2.0提示:ceil()是天花板,即向上取整。Floor()是地板,即向下取整。Round()是四舍五入。Java程序设计第三章 面向对象程序设计4min、max 和 abs 方法min、max 和 abs 方法如表 3-6 所示。min 和 max 分别返回(int、long、float 或 double 类型)的最小值和最大值。abs返回一个数(int、long、float 或 double 类型)的绝对值。Math.abs(x)返回x的绝对值Math.max(x,y)求两数中最大Math.min(x,y)求两数中最小表3-6 min、max和abs方法例如:Math.abs(-2.3) /返回 2.3Math.max(2,3) /返回 3Math.min(2.6,4.5) /返回 2.5Java程序设计第三章 面向对象程序设计5random 方法java.lang.Math.random()返回一个正符号的 double 值,大于或等于 0.0 且小于 1.0。下面对方法进行简单的修改,以获得任意范围的随机数:(int)(Math.random( )*10) /获得 09 之间的随机整数10+(int)(Math.random( )*10) /获得 1019 之间的随机整数a+(int)(Math.random( )*6) /获得 aa+b 之间的随机整数,但是不包含 a+bJava程序设计第三章 面向对象程序设计public class RandomCharacter /* 生成 ch1ch2 之间的随机字符*/public static char getRandomCharacter(char ch1,char ch2) return (char)(ch1 + Math.random()* (ch2 - ch1 + 1);/*生成随机小写字母*/public static char getRandomLowerCaseLetter() return getRandomCharacter(a,z);【例 3-5】 编写程序,分别可以随机产生大写字母、小写字母、09 的数字字符和任意字符。/* 生成随机大写字母 */public static char getRandomUpperCaseLetter() return getRandomCharacter(A,Z);/* 生成随机数字字符 */public static char getRandomDigitCharacter() return getRandomCharacter(0,9);/* 生成随机字符 */public static char getRandomCharacter() return getRandomCharacter(u0000,uFFFF);Java程序设计第三章 面向对象程序设计【例 3-6】 编写程序,假设一个车牌号码由 3 个大写字母和后面的 4 个数字组成。编写程序生成一个车牌号码。public class CreateVehiclePlateNumber public static void main(String argds) char ch1 = (char)(A + (int)(Math.random() * 26);char ch2 = (char)(A + (int)(Math.random() * 26);char ch3 = (char)(A + (int)(Math.random() * 26);char ch4 = (char)(0 + (int)(Math.random() * 10);char ch5 = (char)(0 + (int)(Math.random() * 10);char ch6 = (char)(0 + (int)(Math.random() * 10);char ch7 = (char)(0 + (int)(Math.random() * 10);String vehiclePlateNumber = +ch1+ch2+ch3+ch4+ch5+ch6+ch7;System.out.println(A random vehicle plate number:+vehiclePlateNumber);Java程序设计第三章 面向对象程序设计3.2.5 String 类首先String不属于8种基本数据类型,String是一个类。因为对象的默认值是null,所以String的对象默认值也是null;但它又是一种特殊的对象,有其他对象没有的一些特性。构造字符串的方法可以采用下面的几种方法:String message = Welcome to Java;String message = new String(Welcome to Java);String s = new String();Java程序设计第三章 面向对象程序设计p 1String的直接量双引号括起来的字符序列就是String的直接量。例如, John 或 111222333。字符串赋值,可以在声明时赋值:String color =blue;color是String类型的引用。blue是String直接量。String直接量是存放在栈内存里,所以一旦定义就不能改变值了,只能是让变量指向新的内存空间。例如:String s = Java;s = HTML;Java程序设计第三章 面向对象程序设计 : String Java s 执行 String s = Java; 执行s = HTML; : String Java : String HTML 内容不能变 这个对象现在 没有引用指向它 s 这两条语句执行的情况 字符串 直接量 赋值 Java程序设计第三章 面向对象程序设计p 2.String 的常用方法(1)字符串的比较的方法字符串比较时要注意:比较字符串大小,实际上就是依次比较其所包含的字符的数值大小。小写字母与大小字母是不相同的,Java是区分大小写。Java程序设计第三章 面向对象程序设计p 2.String 的常用方法方法compareTo(String s):比较两个字符串的大小。返回0表示相等,返回大于0 的数表示前面的字符串大于后面的字符串,返回小于0 表示前面的字符串小于后面的字符串,区分大小写的。方法compareToIgnoreCase(String s):忽略大小写,比较两个字符串的大小。返回0表示相等,返回大于0的数表示前面的字符串大于后面的字符串,返回小于0 表示前面的字符串小于后面的字符串。 方法equals(Object s):比较两个String对象的值是否相等,这个是区分大小写的方法equalsIgnoreCase(String s):比较两个String 对象的值是否相等,忽略大小写Java程序设计第三章 面向对象程序设计String 的比较要使用equals()方法,不能使用”=”。例如:String s1 = new String(Welcome“);String s2 = welcome; if (s1.equals(s2) / 判断s1 and s2 内容是否相同 if (s1 = s2) / 判断s1 and s2是否具有相同的引用 Java程序设计第三章 面向对象程序设计表3-7中列出了字符串比较的常用方法。Java程序设计第三章 面向对象程序设计length()方法返回字符串的长度,注意区分在数组中length是属性,而在字符串中是一个方法。字符串拼接方法 concat是拼接两个字符串,并返回一个新字符串,源字符串不会被修改。(2)String 类的方法String 类的方法有 length()、charAt()和 concat()。java.lang.String说明说明+length(): int返回String的长度+charAt(index: int): char获得字符串指定位置的字符+concat(s1: String): String连接字符串表表3-8 字符串的常用方法(字符串的常用方法(2)Java程序设计第三章 面向对象程序设计(3)查找字符串中的字符或子串查找字符串(String)中的字符或子串方法indexOf()返回第一次找到时的下标,如果没有找到,则返回-1。实例:String name = CoolTools;System.out.println (name.indexOf(oo);方法lastIndexOfpublic int lastIndexOf(int ch, int fromIndex)从指定位置往回查找,返回找到的最大的字符下标位置即返回满足下面条件的最大值:(this.charAt(k) = ch) & (k = fromIndex)返回-1:如果当前字符串不含该字符方法startsWith(String prefix,int toffset):测试此字符串从指定索引开始的子字符串是否以指定前缀开始。方法endsWith(String suffix):测试此字符串是否以指定的后缀结束。例如下面语句中对这两个方法的应用。Java程序设计第三章 面向对象程序设计Welcome to Java.indexOf(W)返回0。Welcome to Java.indexOf(x)返回-1。Welcome to Java.indexOf(o, 5)返回9。Welcome to Java.indexOf(come)返回3。Welcome to Java.indexOf(Java, 5)返回11。Welcome to Java.indexOf(java, 5)返回-1。Welcome to Java.lastIndexOf(a)返回14。例如下面语句中对这两个方法的应用。Java程序设计第三章 面向对象程序设计方法 substringsubstring(int beginIndex)返回新的字符串: 当前字符串的子串该子串从指定的位置开始,并一直到当前字符串结束为止substring(int beginIndex, int endIndex)返回新的字符串: 当前字符串的子串该子串从指定的位置(beginIndex )开始, 到指定的位置(endIndex - 1)结束(4)从当前字符串中抽取子字符串Java程序设计第三章 面向对象程序设计例如: unhappy.substring(2)返回happy。Harbison.substring(3)返回bison。emptiness.substring(9)返回 (空串)。emptiness.substring(10)返回StringIndexOutOfBoundsException。hamburger.substring(4, 8)返回urge。smiles.substring(1, 5)返回mile。Java程序设计第三章 面向对象程序设计静态(static)成员方法valueOf将参数的值转化成相应的字符串valueOf(char data)返回 new String(data);valueOf(char data, int offset, int count)返回 new String(data, offset, count);其它valueOf 方法的参数的类型: boolean、char、int、long、float、double和Object对象还可以通过方法toString转化成字符串(5)类String的成员方法valueOfJava程序设计第三章 面向对象程序设计 方法split(String regex):根据给定正则表达式的匹配拆分此字符串,得到拆分好的字符串数组,示例如下:(6)字符串分解在Java 中的String类中有好几个方法都跟正则表达式有关,最典型的就是方法matches(String regex) 告知此字符串是否匹配给定的正则表达式。String tokens = Java#HTML#Perl.split(#, 0);for (int i = 0; i tokens.length; i+) System.out.print(tokensi + );输出结果:Java HTML PerlJava程序设计第三章 面向对象程序设计例如在如下语句中,返回结果都为true:Java.matches(Java);Java.equals(Java);Java is fun.matches(Java.*);Java is cool.matches(Java.*);运行上面学到的正则表达式和matches方法来判断某个字符串是否是符合要求的电话号码,示例如下:String str = 010-86835215;System.out.println(str是一个正确的电话号码?答案是:+str.matches(0d2-d8);运行结果:str是一个正确的电话号码?答案是:true(6)字符串分解Java程序设计第三章 面向对象程序设计replaceAll(),replaceFirst(),和split()方法也可以和正则表达式一起使用,例如下面的语句:在“a+b$#c”中用字符串“NNN”替换了$,+,或#,并返回一个新的字符串。String s = a+b$#c.replaceAll($+#, NNN);System.out.println(s);这里正则表达式 $+# 表示模式为 $,+,或#。所以输出结果为:aNNNbNNNNNNc。(6)字符串分解再例如,下面的语句将字符串进行分解,并存储在一个字符数组中。分隔符是“,”或者“?”。String tokens = Java,C?C#,C+.split(,?); for (int i = 0; i tokens.length; i+)System.out.println(tokensi);Java程序设计第三章 面向对象程序设计正则表达式正则表达式 例子例子x表示 一个特定的字符 x Java matches Java.表示 任意单个字符 Java matches J.a(ab|cd) 表示 a, b,或者 c ten matches t(en|imabc表示 a, b, 或者 c Java matches Jauvwxaabc 表示 除了这几个字符外的任意字符 Java matches Jaarsaa-z表示 a 到 z Java matches A-Mava-da-z 表示任意字符除了a 到 z Java matches Javb-da-em-p表示 a 到 e 或者 m到 p Java matches A-GI-Mava-da-e&c-p 表示 a-e . 和 c-p Java matches A-P&I-Mava-dd表示 数字 1-9 Java2 matches JavadD表示 非数字 $Java matches DDavaw表示 一个单词 Java matches wavaW表示 非单词的字符 $Java matches Wwavas表示空白符 Java 2 matches Javas2S表示 非空白符的字符 Java matches Savap*表示大于等于0次的重复 Java matches w*p+表示大于等于0次的重复 Java matches w+p? 表示 0或1次的重复 Java matches w?Javapn表示 n次重复 Java matches w4pn,表示至少n次重复 Java matchesw3,pn,m表示 n-m次重复 Java matches w1,9(6)字符串分解学习正则表达式的最好方法是从例子开始,理解例子之后再自己对例子进行修改,实验。Java程序设计第三章 面向对象程序设计方法replace( char1, char2 )返回一个新的字符串,它是将s1 中的所有char1替换成的结果char2源字符串没有发生变化如果s1 不含char1, 则返回源字符串的引用,即s1实例:“mesquite in your cellar”.replace(e, o) 结果返回mosquito in your collar“JonL”.replace(q, x)结果返回“JonL” (没有发生变化)方法toCharArray( )将字符串转换成字符数组方法(7)其它String方法方法toUpperCase返回对应的新字符串,所有小写字母都变为大写的,其它的不变如果没有字符被修改,则返回源字符串的引用类似方法s1.toLowerCase (所有大写字母都变为小写字母Java程序设计第三章 面向对象程序设计方法toString( )由于s1 本身就是字符串了,所以返回s1 本身其它引用类型也可以通过方法toString,生成相应的字符串方法toCharArray( )将字符串转换成字符数组方法方法trim( )返回新字符串,截去了源字符串最前面和最后面的的空白符如果字符串没有被改变,则返回源字符串的引用(7)其它String方法Java程序设计第三章 面向对象程序设计 /* 判断一个字符串是否是回文 */ public static boolean isPalindrome(String s) / The index of the first character in the string int low = 0; / The index of the last character in the string int high = s.length() - 1; while (low high) if (s.charAt(low) != s.charAt(high) return false; / Not a palindrome low+; high-; return true; / 这个字符串是回文 判断一个字符串是否是回文,采取从开头和结尾进行比较的方法。【例 3-7】Java程序设计第三章 面向对象程序设计/* 主方法 */ public static void main(String args) / Create a Scanner Scanner input = new Scanner(System.in); / Prompt the user to enter a string (Enter a string: ); String s = input.nextLine(); if (isPalindr