




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 MLDN 软件教学研发部软件教学研发部第第5章:面向对象(基础)章:面向对象(基础) 面向对象的概念类与对象的定义计算机教研室计算机教研室 夏丽丽夏丽丽E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发本章目标了解面向对象的基本概念了解面向对象的三个主要特征掌握类与对象的关系掌握类的定义掌握对象的声明及使用掌握匿名对象的使用掌握JAVA中的内存划分理解Java引用传递掌握封装的产生目的掌握封装的实现掌握setter和getter方法的定义E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发面向过程与面向对象 程序的发展经历了两个主要阶段:
2、面向过程、面向对象 对于面向对象与面向过程可以用一个例子解释,如一个木匠要做一个盒子,那么做这个盒子的出发点会有两种方式: 面向对象:先想好要做的盒子,之后再去找相应的工具去做。 面向过程:不去想要做什么样的盒子,随需取用工具。E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发面向对象的三大特征 封装(封装(Encapsulation) 隐藏细节隐藏细节 权限控制权限控制E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发 继承(继承(Inheritance) 类的层次结构,扩展类的功能类的层次结构,扩展类的功能E-MAIL:集美大学诚毅学
3、院集美大学诚毅学院JavaJava应用开发应用开发 多态(多态(Polymorphism) 方法的重载方法的重载 对象的多态性对象的多态性E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发类与对象客观世界客观世界对象对象类类范畴范畴实体实体 万事万物皆是对象万事万物皆是对象E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发类与对象 类是对某一类事物的描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也称实例(instance)具体的实例具体的实例具体的实例具体的实例具体的实例具体的实例抽象的概念E-MAIL:集美大学诚
4、毅学院集美大学诚毅学院JavaJava应用开发应用开发类与对象的关系E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发类与对象 图书馆管理系统中的类图书馆管理系统中的类 读者读者 图书图书 管理员管理员 数据库数据库 类的构成类的构成 属性属性 操作操作E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发类的定义声明成员变量(属性)定义方法的内容class 类名称数据类型 属性 ;. public 返回值的数据类型 方法名称(参数1,参数2) 程序语句 ; return 表达式;E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava
5、应用开发应用开发定义Bird类class Bird String color;int size;public void fly() System.out.println(“Fly!Fly!Fly!”);属性属性操作操作E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发成员变量的声明 修饰符修饰符 变量类型变量类型 变量名变量名 声明成员变量时,前面的修饰符可有可无,修饰符包括声明成员变量时,前面的修饰符可有可无,修饰符包括private、protected、public和其他的和其他的 成员变量对类内定义的方法都有效,在类的方法中定义的变成员变量对类内定义的方法都有
6、效,在类的方法中定义的变量为局部变量,它只在定义它的方法中有效量为局部变量,它只在定义它的方法中有效E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发成员变量的访问权限权限同一类同一包子类其他publicprotectedprivate缺省E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发成员变量的声明p 例:p class Ap p int x; /成员变量p int f()p p int a=1; /局部变量p x=a;p p int g() int y; /局部变量 y=a+x; /a非法引用 E-MAIL:集美大学诚毅学院集美大学
7、诚毅学院JavaJava应用开发应用开发方法的声明 修饰符修饰符 返回值类型返回值类型 方法名(参数列表)方法名(参数列表) 方法体方法体 如果方法中的参数名或局部变量的名与类的成员变量的名相如果方法中的参数名或局部变量的名与类的成员变量的名相同,则成员变量在这个方法内暂时被隐藏同,则成员变量在这个方法内暂时被隐藏 如果成员变量在方法内被隐藏,又要在方法中引用成员变量如果成员变量在方法内被隐藏,又要在方法中引用成员变量,必须使用,必须使用thisE-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发类的声明p 例:p class Ap p int x,z;p void
8、g(int z)p p int x=5+z; /x为局部变量,z为参数p this.x=x;p this.z=z;p E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发对象的创建及使用类名 对象名称 = null ;/ 声明对象对象名称 = new 类名() ;/ 实例化对象类名 对象名称 = new 类名() ;class Bird String color;int size;public void fly() System.out.println(“Fly!Fly!Fly!”);public class Demo01 public static void mai
9、n(String args)Bird b = new Bird() ;E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发访问类中的属性和方法访问属性:对象名称访问属性:对象名称.属性名属性名访问方法:对象名称访问方法:对象名称.方法名方法名()class Bird String color;int size;public void fly() System.out.println(“Fly!Fly!Fly!”);public class Demo02 public static void main(String args)Bird b = new Bird() ;
10、b.color=“black”; /为属性赋值为属性赋值 b.size=111; System.out.println(“颜色:颜色:”+b.color+”t大小:大小:”+b.size); b.fly(); /调用类中的方法调用类中的方法E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发对象的内存模型p 栈栈p 存放基本数据类型和对象存放基本数据类型和对象p 堆堆p 存放对象实例存放对象实例p Bird b=new Bird();p b.color=“black”; b.size=111;H15H14H13H12H11H05H04H03H02H01b:Size:
11、0Color:nullSize: 111Color:blackE-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发匿名对象 只使用一次的对象,称为匿名对象。 匿名对象只在堆内存中开辟空间,而不存在栈内存的引用。public class Demo03 public static void main(String args) new Bird().fly();/ 匿名对象匿名对象 E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发声明多个对象public class Demo04 public static void main(String a
12、rgs) Bird b1 = null;/ 声明声明b1对象对象 Bird b2 = null;/ 声明声明b2对象对象 b1 = new Bird();/ 实例化实例化b1对象对象 b2 = new Bird();/ 实例化实例化b2对象对象 b1.color = “blue; / 设置设置b1对象的对象的color属性内容属性内容 b1.size = 122;/ 设置设置b1对象的对象的size属性内容属性内容 b2.color = “yellow;/ 设置设置b2对象的对象的color属性内容属性内容 b2.size = 111;/ 设置设置b2对象的对象的size属性内容属性内容 Sy
13、stem.out.print(“b1的颜色的颜色:”+b1.color+”t大小:大小:”+b1.size) ; b1.fly(); /b1调用类中的方法调用类中的方法 System.out.print(“b2的颜色的颜色:”+b2.color+”t大小:大小:”+b2.size) ; b2.fly(); /b2调用类中的方法调用类中的方法 E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发对象引用传递public class Demo05 public static void main(String args) Bird b1 = null;/ 声明声明b1对象对
14、象 Bird b2 = null;/ 声明声明b2对象对象 b1 = new Bird();/ 实例化实例化b1对象对象 b1.color = “blue; / 设置设置b1对象的对象的color属性内容属性内容 b1.size = 122;/ 设置设置b1对象的对象的size属性内容属性内容 b2 = b1; / b2对象引用对象引用b1对象对象 System.out.print(“b1的颜色的颜色:”+b1.color+”t大小:大小:”+b1.size) ; b1.fly(); /b1调用类中的方法调用类中的方法 System.out.print(“b2的颜色的颜色:”+b1.color
15、+”t大小:大小:”+b2.size) ; b2.fly(); /b2调用类中的方法调用类中的方法 E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发对象引用传递public class Demo06 public static void main(String args) Bird b1 = null;/ 声明声明b1对象对象 Bird b2 = null;/ 声明声明b2对象对象 b1 = new Bird();/ 实例化实例化b1对象对象 b2 = new Bird();/ 实例化实例化b2对象对象 b1.color = “blue; / 设置设置b1对象的对
16、象的color属性内容属性内容 b1.size = 122;/ 设置设置b1对象的对象的size属性内容属性内容 b2.color = “yellow;/ 设置设置b2对象的对象的color属性内容属性内容 b2.size = 111;/ 设置设置b2对象的对象的size属性内容属性内容 b2=b1; System.out.print(“b1的颜色的颜色:”+b1.color+”t大小:大小:”+b1.size) ; b1.fly(); /b1调用类中的方法调用类中的方法 System.out.print(“b2的颜色的颜色:”+b2.color+”t大小:大小:”+b2.size) ; b2
17、.fly(); /b2调用类中的方法调用类中的方法 E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发封装的实现为属性封装:为属性封装:private 属性类型属性类型 属性名称属性名称 ;为方法封装:为方法封装:private 方法返回值方法返回值 方法名称方法名称(参数列表参数列表)class Bird private String color;/ 声明姓名属性声明姓名属性private int size;/ 声明年龄属性声明年龄属性public void fly() / 取得信息的方法取得信息的方法System.out.println(“Fly!Fly!Fly
18、!”);public class Demo07 public static void main(String args) Bird b = new Bird();b.color = “black;/ 错误,无法访问封装属性错误,无法访问封装属性b.size = 111;/ 错误,无法访问封装属性错误,无法访问封装属性b.fly();E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发setter及getterclass Bird private String color;private int size;public void fly() System.out.pri
19、ntln(“Fly!Fly!Fly!”);public String getColor() return color;public void setColor(String c) color = c;public int getSize() return size;public void setSize(int s) size = s;E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发setter及getterpublic class Demo08 public static void main(String args) Bird b = new Bird(); b
20、.setColor(“black”); b.setSize(123); System.out.println(”颜色:颜色:“+b.getColor()+”t大小:大小:”+b.getSize() b.fly();E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发总结: 类与对象的关系:类是抽象范畴,对象是某一具体实体 类的定义包含属性(基本数据类型或对象)和操作(方法) 对象需要声明实例化后才能使用,对象的实例化由new关键字完成 匿名对象是只使用一次的对象,且只在对内存中开辟空间。 类的封装由private实现 封装后的类属性通过setter及getter方法来
21、设置和获得E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发下一章内容构造方法与类分析设计构造方法与类分析设计 MLDN 软件教学研发部软件教学研发部第第5章:面向对象(基础)章:面向对象(基础) 构造方法与类分析设计计算机教研室计算机教研室 夏丽丽夏丽丽E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发本章目标 掌握构造方法的概念及调用时机 掌握构造方法的重载 掌握类的基本分析思路,并能分析具体的题目难点 如何来分析设计程序E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发构造方法 对象的产生格式: 类名称
22、对象名称 = new 类名称() 因为有“()”,所以表示的是一个方法这实际上就是一个构造方法E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发构造方法的定义格式 构造方法主要用于为类的方法中变量赋初始值的功能。当用构造方法主要用于为类的方法中变量赋初始值的功能。当用new创建创建一个类的新的对象时,构造方法就立即执行。构造方法名字必须与类一个类的新的对象时,构造方法就立即执行。构造方法名字必须与类名相同。除了构造方法,在类中不能出现与类名相同的方法。定义格名相同。除了构造方法,在类中不能出现与类名相同的方法。定义格式如下:式如下:class 类名称访问权限 类名称
23、(类型1 参数1,类型2 参数2,)程序语句 ; / 构造方法没有返回值E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发构造方法的注意点: 构造方法没有返回值类型,甚至没有void。其修饰符只能是访问控制修饰符,即public、private、protected中的任一个。 构造方法可以从父类中继承。 构造方法可以重载,一个类可以有任意多个构造方法。不同的构造方法根据参数的不同状态来选择合适的构造方法。 构造方法不能直接通过方法名引用,必须通过new运算符。 Java语言中每个类都有构造方法,如果一个类中没有说明该类的构造方法,则系统将提供隐含的不带任何参数的构造
24、方法,这个空的构造方法其实什么也不做。一旦我们定义了自己的构造方法,Java编译器就不再添加这种缺省的构造方法。E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发构造方法的目的 构造方法的主要目的是为类中的属性初始化。class Bird private String color;private int size; public Bird(String color,int size) /声明构造函数声明构造函数 this.color = color; /或或this.setColor(color); this.size = size; /或或this.setSize
25、(size);public void fly() System.out.println(“Fly!Fly!Fly!”); public void setSize(int s) size = s;public class Demo09 public static void main(String args) Bird b = new Bird(“black,111); / 调用构造方法,传递两个参调用构造方法,传递两个参数数 System.out.println(”颜色:颜色:“+b.getColor()+”t大小:大小:”+b.getSize(); / 输出信息输出信息 b.fly();E-M
26、AIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发构造方法重载 构造方法的重载过程与普通方法一样: 参数的类型或个数不同public Bird()public Bird(String color)this.setColor(color) ;public Bird(String color,int size)this.setColor(color) ;this.setSize(size) ;E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发类设计分析思路1、 根据要求写出类所包含的属性;2、 所有的属性都必须进行封装(private);3、 封装
27、之后的属性通过setter和getter设置和取得;4、 如果需要可以加入若干构造方法;5、 再根据其他要求添加相应的方法;6、类中的所有方法都不要直接输出,而是交给被调用处输出E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发例: 编写并测试一个代表地址的Address类,地址信息由国家、省份、城市、街道、邮编组成,并返回完整的地址信息。(参见Demo文档中的ClassDesignDemo1.java) E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发属性及类型No.属性属性属性类型属性类型属性名称属性名称1国家Stringcount
28、ry2省份Stringprovince3城市Stringcity4街道Stringstreet5邮编StringcodeE-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发定义出方法(普通方法、构造方法)No.方法名称方法名称返回值类型返回值类型作用作用1public void setCountry(String country)void设置国家2public void setPovince(String province)void设置省份3public void setCity(String city)void设置城市4public void setStreet(S
29、tring street)void设置街道5public void setCode(String code)void设置邮编6public String getCountry()String取得国家7public String getPovince()String取得省份8public String getCity()String取得城市9public String getStreet()String取得街道10public String getCode()String取得邮编15Public String getString()String返回完整信息16public Address()-无
30、参构造方法17public Address(String country,String povince,String city,String street,String code)-在对象实例化的时候直接将国家、省份、城市、街道、邮编设置进去E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发设计类图E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发例: 定义并测试一个名为Student的类,包括属性有“学号”、“姓名”,以及3门课程“数学”、“英语”和“计算机”的成绩,包括的方法有计算3门课程的“总分”、“平均分”、“最高分”及“最低分”
31、以及返回Student类的所有完整信息组合。(参见Demo文档中的ClassDesignDemo2.java) E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发属性及类型No.属性属性属性类型属性类型属性名称属性名称1学号Stringstuno2姓名Stringname3数学成绩floatmath4英语成绩floatenglish5计算机成绩floatcomputerE-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发定义出方法(普通方法、构造方法)No.方法名称方法名称返回值类型返回值类型作用作用1public void setStun
32、o(String s)void设置学生编号2public void setName(String n)void设置学生姓名3public void setMath(float m)void设置数学成绩4public void setEnglish(float e)void设置英语成绩5public void setComputer(float c)void设置计算机成绩6public String getStuno()String取得学生编号7public String getName()String取得学生姓名8public float getMath()float取得数学成绩9public
33、 float getEnglish()float取得英语成绩10public float getComputer()float取得计算机成绩11public float sum()float计算成绩总和12public float avg()float计算平均成绩13public float max()float求出最高成绩14public float min()float求出最低成绩15public String getString()String返回完整信息16public Student()-无参构造方法17public Student(String stuno,String name,
34、float math,float english,float computer)-在对象实例化的时候直接将学号、姓名、数学成绩、英语成绩、计算机成绩设置进去E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发设计类图E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发总结: 构造方法的作用是对成员变量初始化赋值。 构造方法是没有返回值的,任何一个类中都有必定会有一个构造方法。 构造方法也是可以重载的,跟普通方法一样根据参数列表区分。 题目的分析要一点点慢慢地分析积累E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发
35、下一章内容字符串字符串 MLDN 软件教学研发部软件教学研发部第第5章:面向对象(基础)章:面向对象(基础) String类及其常用方法计算机教研室计算机教研室 夏丽丽夏丽丽E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发本章目标 掌握String类的两种实例化方式 掌握String的两种比较操作 深入分析String类两种实例化方式的区别 掌握String的使用特点 掌握String类中的常用方法 掌握StringBuffer与String的区别 掌握StringBuffer的常用方法 掌握StringBuffer的实际应用 掌握String对正则的支持E-MA
36、IL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发String类 声明声明 “abc”, “Java程序设计语言程序设计语言”,“1234” String s 创建创建 创建空字符串创建空字符串 s=new String(); 根据给定的字符串创建字符串根据给定的字符串创建字符串 s=new String(“Java语言语言”) s=“Java语言语言” s=new String(str)E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发String类 根据字符数组创建字符串根据字符数组创建字符串 char a4=J,a,v,a String s
37、=new String(a) char a=I, a, m, a, b, o, y String s=new String(a,4,3)E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发String的比较方式 String的比较有两种方式: =:地址值比较 equals()方法:内容比较,区分大小写 equalsIgnoreCase()方法:内容比较,不区分大小写E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发字符串比较public class Demo10 public static void main(String args) St
38、ring s1=I am a student;String s2=I am a student;String s3=new String(I am a student);String s4=new String(I am a student);String s5=new String(I AM A STUDENT);System.out.println(s1=s2-+(s1=s2); /-trueSystem.out.println(s1=s3-+(s1=s3); /-falseSystem.out.println(s2=s3-+(s2=s3); /-falseSystem.out.print
39、ln(s1.equals(s2)-+(s1.equals(s2); /-trueSystem.out.println(s1.equals(s3)-+(s1.equals(s3); /-trueSystem.out.println(s2.equals(s3)-+(s2.equals(s3); /-trueSystem.out.println(s3.equals(s5)-+(s3.equals(s5); /-falseSystem.out.println(s3.equalsIgnoreCase(s5)-+(s3.equalsIgnoreCase(s5); /-trueE-MAIL:集美大学诚毅学院
40、集美大学诚毅学院JavaJava应用开发应用开发字符串的内容一旦声明则不可改变public class Demo11 public static void main(String args) String str = hello;str = str + world!;System.out.println(str = + str);E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发验证字符串的内容不可改变public class Demo12 public static void main(String args) String str = hello; fun(st
41、r);System.out.println(str = + str); public static void fun(String s) s = s + world!; System.out.println(s = + s); E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发不正确的使用public class Demo13 public static void main(String args) String str1 = “Hello;for (int i = 0; i 100; i+) str1 += i;System.out.println(str1);
42、E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发String类的常用方法字符串连接:+多个字符串连接连接其他类型public class Demo14 public static void main(String args) String s1=“Hello”; String s2=“World!”; String s3=s1+” “+s2;System.out.println(“s3=“+s3); int a=4; float b=2.5f System.out.println(“我每天花费我每天花费“+a+“小时看书;小时看书;“+b+“小时上小时上机练习机练
43、习“);E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发String类的常用方法 将字符串转为字符数组:toCharArray()public class Demo15 public static void main(String args) String s=“Hello”; char c=s.toCharArray(); for(int i=0;ic.length;i+) System.out.println(ci+“t“); E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发String类的常用方法 字符串转与字节数组:getBy
44、tes()public class Demo16public static void main(String args)byte b=new byte7;for(int i=0;i7;i+) bi=(byte)(i+65); /A的的SCII值为值为65String s1=new String(b);String s2=new String(b,3,3);byte a=s1.getBytes();System.out.println(s1=+s1);System.out.println(s2=+s2);System.out.println(a.length=+a.length);System.
45、out.println(用字符输出数组用字符输出数组a:);for(int i=0;ia.length;i+) System.out.print(char)ai);E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发String类的常用方法 获取字符串的长度:length()public class Demo17 public static void main(String args) String s=“We are Students!”; System.out.println(“字符串的长度为:字符串的长度为:“+s.length();E-MAIL:集美大学诚毅学
46、院集美大学诚毅学院JavaJava应用开发应用开发String类的常用方法 获取指定位置的字符:charAt(int index )public class Demo18 public static void main(String args) String s=“hello world!”; System.out.println(“字符串字符串s中索引位置是中索引位置是6 的字符为:的字符为:“+s.charAt(6);E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发String类的常用方法 获取指定字符的位置:indexOf(String str)、index
47、Of(String str, int fromIndex)、lastIndexOf(String str)public class Demo19 public static void main(String args) String s=“We are students!”; System.out.println(s.indexOf(“s”); /首次出现的位置首次出现的位置 System.out.println(s.indexOf(“s”,8); /从第从第8个开始查找个开始查找 System.out.println(s.lastIndexOf(“s”);/最最后出现的位置后出现的位置 Sy
48、stem.out.println(s.lastIndexOf(“is”);/搜索不到返回搜索不到返回-1E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发String类的常用方法 去掉左右空格:trim()public class Demo20 public static void main(String args) String s=“ Java class ”; System.out.println(“字符串原来的长度为:字符串原来的长度为:”+s.length(); System.out.println(“去掉空格后字符串的长度为:去掉空格后字符串的长度为:”
49、+s.length(); System.out.println(“去掉空格后的字符串为:去掉空格后的字符串为:”+s.trim();E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发String类的常用方法 字符串替换:replace(CharSequence target, CharSequence replacement)、replaceAll(String regex, String replacement)、replaceFirst(String regex, String replacement)public class Demo21 public sta
50、tic void main(String args) String s=“bad bad study”; System.out.println(s.replace(“bad”,”good”); System.out.println(s.replaceAll(“bad”,”good”); System.out.println(s.replaceFirst(“bad”,”good”);E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发String类的常用方法 大小写转换:toUpperCase()、toLowerCase()public class Demo22 pub
51、lic static void main(String args) String s=“abc DEF”; System.out.println(s.toUpperCase(); System.out.println(s.toLowerCase(); E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发String类的常用方法 判断字符串的开头和结尾:startsWith(String prefix)、endsWith(String suffix)public class Demo23 public static void main(String args) Stri
52、ng num1=“22045612”; String num2=“21304578”; boolean b1=num1.startsWith(“22”); boolean b2=num1.endsWith(“78”); boolean b3=num2.startsWith(“22”); boolean b4=num2.startsWith(“78”); System.out.println(”字符串字符串num1是以是以22开始的吗?开始的吗?” +b1); System.out.println(”字符串字符串num1是以是以78结束的吗?结束的吗?” +b2); System.out.pri
53、ntln(”字符串字符串num2是以是以22开始的吗?开始的吗?” +b3); System.out.println(”字符串字符串num2是以是以78开始的吗?开始的吗?” +b4);E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发String类的常用方法 字符串截取:substring(int beginIndex)、substring(int beginIndex, int endIndex)public class Demo24 public static void main(String args) String s=“I like study java
54、”; System.out.println(s.substring(7); System.out.println(s.substring(7,12); E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发String类的常用方法 字符串分割:split(String regex)、split(String regex, int limit) 注:若定义多个分割符,使用符号“|”public class Demo25 public static void main(String args) String s=“abc,def,ghi,gkl”; String news1
55、=s.split(“,”); String news2=s.split(“,”,2); System.out.println(”按分隔符分割后的字符串是:按分隔符分割后的字符串是:”); for(int i=0;inews1.length;i+) System.out.println(news1i); System.out.println(”按分隔符分割一次后的字符串是:按分隔符分割一次后的字符串是:”); for(int i=0;is2返回正值;若s1s2返回负值public class Demo26 public static void main(String args) String s
56、1=abc; String s2=Abc; String s3=abc; String s4=new String (abc); System.out.println(pareTo(s2); System.out.println(pareTo(s1); System.out.println(pareTo(s3); System.out.println(pareTo(s4); System.out.println(pareToIgnoreCase(s2);E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发StringBuffer声明和实例化 当一个字符串的内容需要被经
57、常改变时就要使用StringBuffer StringBuffer s=new StringBuffer(); StringBuffer s=new StringBuffer(“hello world!”); 在StringBuffer中使用append()方法,完成字符串的连接操作 如:s.append(“Hello”).append(“ “).append(“World”).append(“!”);E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发验证字符串的内容是可改变public class Demo27 public static void main(St
58、ring args) StringBuffer str = new StringBuffer(); str.append(“hello”); fun(str);System.out.println(str = + str); public static void fun(StringBuffer s) s.append( world!“); System.out.println(s = + s); E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发改进的代码public class Demo28public static void main(String args)
59、 StringBuffer buf = new StringBuffer() ;buf.append(“Hello);for (int i = 0; i 100; i+) buf.append(i) ;/ StringBuffer可以修改,性能高可以修改,性能高System.out.println(buf); E-MAIL:集美大学诚毅学院集美大学诚毅学院JavaJava应用开发应用开发StringBuffer类的常用方法No.方法定义方法定义类型类型描述描述1public StringBuffer()构造StringBuffer的构造方法2public StringBuffer append
60、(char c)方法在StringBuffer中提供了大量的追加操作(与String中使用“+”类似),可以向StringBuffer中追加内容,此方法可以添加任何的数据类型。3public StringBuffer append(String str)方法4public StringBuffer append(StringBuffer sb)方法5public int indexOf(String str)方法查找指定字符串是否存在6public int indexOf(String str,int fromIndex)方法从指定位置开始查找指定字符串是否存在7public StringBu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 责任课件内容大纲
- 2025版上海房地产买卖合同范本涵盖交易税费及支付方式说明
- 2025年房地产营销代理及品牌策划服务合同
- 2025第一部分:生物制药研发合同协议书
- 2025年智能家居产品广告创意合同示范文本
- 2025版跨境贸易借款合同带保证人及汇率风险对冲下载
- 2025年度建筑材料代购与绿色建筑认证服务合同
- 2025版外籍技术人员引进与管理合同书
- 2025年度专业摄影棚租赁服务合同
- 2025版文化娱乐融资咨询与专业居间服务协议
- 2025年有害生物防治员初级理论知识考核试题及答案
- 新版2026统编版小学道德与法治三年级上册 第4课《 科技力量大》第1课时 科技改变生活和科技改变观念 教案设计(教案)
- 学会交流与沟通课件
- 铁路监理培训考试试题及答案
- 2025全国企业员工全面质量管理知识竞赛题库附答案
- 供应链与贸易安全培训课件
- 严禁燃放烟花炮竹课件
- 宫颈息肉课件
- 焊接和切割作业的防火、防爆措施
- 人事任命书红头文件模板
- 探讨恶性肿瘤患者化疗后口腔溃疡治疗及护理的有效措施
评论
0/150
提交评论