Java课件一第7章

合集下载

Java开发基础PPT课件

Java开发基础PPT课件
运算相关注意事项
使用JDK库实现常用算法及函数 数值类型的自动转换规则 强制类型转换及截位 枚举类型的使用
字符串
字符串
代码点与代码单元 字符子串与拼接 相等的比较
注意事项
编码转换方法 子串下标计算 拼接的性能 String 方法 intern() 的应用
注释
注释
单行注释 多行注释 文档注释
–32,768 to 32,767
–9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
1 byte
–128 to 127
Type float double
Storage Requirement 4 bytes
8 bytes
Range
approximately ±3.40282347E+38F (6–7 significant decimal digits)
大纲
☞ 对象构造顺序
方法参数传递:按值调用 类设计基本原则
对象构造顺序
对象构造顺序
类装载时,按类声明中出现的次序执行静态初始化块或静态初始化 语句。
对象构造时: 所有数据域初始化为默认值 按类声明中出现的次序执行初始化块或初始化语句。 如果构造器第一行调用了第二个构造器,则跳转到第二个构造器 中执行,直到返回。 执行这个构造器的主体部分。
Java开发基础
目录
☞ 第1章 Java体系结构
第2章 基本程序结构设计 第3章 对象与类 第4章 继承 第5章 接口与内部类 第6章 事件处理 第7章 异常与调试 第8章 流与文件
Java体系结构
Java体系结构包括如下四大类技术:
Java程序设计语言 Java class文件格式 Java API Java 虚拟机

Java开发基础 PPT课件

Java开发基础 PPT课件

大纲
接口与抽象类的选择
☞ 克隆及其注意事项
接口与回调 内部类、局部类、匿名类 JDK的Proxy与CGLib的动态代理区别
克隆及其注意事项
浅克隆与深克隆
默认实现是浅克隆(本地方法实现)(java.util.AbstractMap默 认实现是浅克隆)
如果原始对象与浅克隆对象共享的子对象是不可变的,则不 会产生负面问题。
反射
允许程序在运行时透过Reflection APIs取得任何一个已知名称的class 的内部信息,并可于运行时改变fields内容或唤起 methods。
可动态获取的内容包括
modifiers(诸如public, static ) superclass(例如Object) interfaces(例如Cloneable fields和methods等
的属性 Java 中所有的对象都继承至 ng.Object ,因此都拥有
toString() , equals() ,wait() 等方法
继承的约束
不能实现多继承 父类提供了参数构造函数,子类必须实现 子类不能降低父类方法的可见域 子类不能抛出比父类构造函数或方法更多的异常 子类不能扩展父类的 final 方法
象类不应该依赖于其细节,细节。 接口隔离原则(ISP):不应该强迫客户依赖于它们不用的方

类设计基本原则(续)
包设计的基本原则
包内聚性原则(包粒度) 重用发布等价原则(REP):重用的粒度就是发布的粒度。 共同重用原则(CRP):一个包中的所有类应该是共同重用的。 如果重用了包中的一个类,那么就要重用包中的所有类。 共同封闭原则(CCP):包中的所有类对于同一类性质的变化应 该是共同封闭的。一个变化若对一个包产生影响,则将对该包中 的所有类产生影响,而对于其它的包不造成任何影响。 考虑可重用性与可开发性的平衡。

第7章 Java的输入 输出流

第7章   Java的输入 输出流

第7章 Java的输入/输出流
String dirList[]=f1.list(m); for(int i=0;i<dirList.length;i++) Transcript.println(dirList[i]); } } public MyClass3(File f) { this.f=f; } public boolean accept(File dir, String name){ return name.startsWith("un"); } }
第7章 Java的输入/输出流
该程序的运行结果如图7.3所示。 此程序中,我们为了说明路径分隔符的使用方法, 实例化文件对象的时候给出了全路径,其实由于我们 已经在Java系统中设置好了源路径,只要给出文件名 就行了。 表7.1中,list方法用于列出一个目录中所有的文件 或与某个模式相匹配的文件。下面我们给出两个例子 来讨论带参数或不带参数的list方法的使用。
返回指定格式的目录中的文件名 返回当前目录中的所有文件名 创建目录,成功返回真 创建路径中所有目录,成功则返回真 返回路径分隔符 文件更名,成功返回真 返回文件分隔符 返回对象的字符串表示
第7章 Java的输入/输出流
下面我们给出几个File类的应用实例。通过例题的 使用,希望读者对File类有更清楚的认识。 例7.1 import java.io.*; public class MyClass1 { public static void main(String args[]){ Filef=new File("c:\\jbuilder3\\myprojects\\untitled5\\MyClass1.java"); if(!f.exists())

Java语言程序设计基础教程课件(第7章)

Java语言程序设计基础教程课件(第7章)

currentThread()方法是Thread类的类方
法,可以直接通过类名调用,该方法返回
当前正在使用CPU资源的线程。
6.Interrupt()方法
interrupt()方法常用来“吵醒”休眠的线程。但 A B 线程调用sleep方法处于休眠状态时,一个占有 阻塞状态 CPU资源的线程可以调用interrupt方法唤醒休 A.ingerrupt() Sleep() 眠中的线程自己。会导致休眠的线程发生 可运行状态 InterruptedException异常,结束休眠,重新 排队等待CPU资源,执行sleep()后的代码。
7.stop()方法 _已过时 通过调用线程的实例方法stop()来终止线 程。线程终止后,其生命周期结束了,即 进入死亡态,终止后的线程不能再被调度 执行。
8.join()方法 一个线程在占有CPU资源期间,可以让其 他线程调用join()方法和本线程联合。当 前线程等待调用该方法的线程结束后,再 重新排队等待CPU资源,以便恢复执行。 如果当前线程准备联合的线程已经结束, 也就是start方法体已经执行完,那么不 会产生任何效果。

r

q p
7.6.2 互斥锁或对象锁
为解决操作的不完整性问题,引入了对象
互斥锁,来保证共享数据操作的完整性。
每个对象都对应于一个可称为“互斥锁” Synchronized(object o){
的标记,互斥锁可以保证在任一时刻,只 需要一次执行完的语句块
} 能有一个线程访问该对象。
public void push(char c) { 同步代码 synchronized (this) { data[idx] = c; idx++; } 同步方法 } public synchronized char pop() { 注意:idx--; 1、所有存取共享数据的方法必须在同一把锁上同步 return data[idx]; 2、由同步锁保护的数据应为private的 }

Java程序设计ppt课件(完整版)

Java程序设计ppt课件(完整版)
是一行写不下一条语句时,允许一条语句占用多行。 • 逗号(,):分隔变量声明中的多个标识符。 • 圆括号:一般用在表达式、方法的参数和控制语句的条件表达
式中。注意圆括号可以嵌套,但需要严格配对使用。 • 方括号([]):用于声明数组,引用数组的元素值。 • 花括号({}):用于定义一个语句块,一个语句块是零条或多
1.2.4 知识总结
❖ 6.Java数据类型
▪ (1)基本数据类型
• 整数类型:byte,short,int,long。 • 浮点类型:float,double。 • 字符类型:char。 • 布尔类型:boolean。
▪ (2)引用数据类型
• 类类型:class,String,Double等。 • 接口类型:Interface • 数组类型:基本数据类型数组,对象型数组。
❖ 当主菜单与子菜单的连接成功之后, 若要保证菜单的重 复使用,则需要在主菜单及子菜单中添加循环控制语句来 实现,Java语言中的循环有while循环,do while循 环,for循环等。
1.3.3 解决方案
▪ 1、打开Eclipse。
▪ 2、添加一个包,名为com.esms,并复制Menus类到包中。
目录
第一章 Java与程序逻辑 第二章 面向对象程序设计基础 第三章 面向对象基本特性 第四章 常用对象使用 第五章 异常处理 第六章 I/O操作 第七章 多线程编程 第八章 Java的GUI可视界面编程
目录
第一章 Java与程序逻辑 第二章 面向对象程序设计基础 第三章 面向对象基本特性 第四章 常用对象使用 第五章 异常处理 第六章 I/O操作 第七章 多线程编程 第八章 Java的GUI可视界面编程
❖ 3.Java的开发环境
▪ 对于开发人员来说,除了需要上述的运行环境以外, 还需要开发环境的支持,Java的开发环境主要由以下 两部分组成。

java培训ppt课件(全套课件)

java培训ppt课件(全套课件)

Java实用教程
4. 多线程 多线程在操作系统中已得到了最成功的应用。多线程是指 允许一个应用程序同时存在两个或两个以上的线程,用于支持 事务并发和多任务处理。Java除了内置的多线程技术之外,还 定义了一些类、方法等来建立和管理用户定义的多线程。
Java实用教程
5. 简单易用 Java源代码的书写不拘泥于特定的环境,可以用记事本、 文本编辑器等编辑软件来实现,然后将源文件进行编译,编译 通过后可直接运行,通过调试那么可得到想要的结果。
Java实用教程
<BODY> HelloApplet will appear below in a Java enabled browser.<BR> <APPLET
CODEBASE = "." CODE = "HelloApplet.class" NAME = "TestApplet" WIDTH = 400 HEIGHT = 300 HSPACE = 0 VSPACE = 0 ALIGN = middle > </APPLET> </BODY> </HTML>
类。引用之后程序体中就可以自由应用包中的类的方法和属性 等。
Java实用教程
2. 类的定义
Java源程序中可以有多个类的定义,但必须有一个主类, 这个主类是Java程序运行的入口点。在应用程序中,主类为包 含main方法的类;在Applet中,主类为用户自定义的系统 Applet类的扩展类。在Java源程序中,主类的名字同文件名一 致。
2. 面向对象
面向对象是指以对象为根本粒度,其下包含属性和方法。 对象的说明用属性表达,而通过使用方法来操作这个对象。面 向对象技术使得应用程序的开发变得简单易用,节省代码。 Java是一种面向对象的语言,也继承了面向对象的诸多好处, 如代码扩展、代码复用等。

第七章面向对象的Java实现继承和多态精品PPT课件

第七章面向对象的Java实现继承和多态精品PPT课件
4
• 掌握继承 • 掌握super关键字 • 掌握多态
本章目标
5
生活中的继承 2-1
• 生活中,继承的例子随处可见
动物
谁是父类? 谁是子类? 能说出继承的特点吗?
食草动物
食肉动物
继承需要符合的关系:is-a,父类更通用、子类更具体
6
生活中的继承 2-2
• 子类具有父类的一般特性(包括属性和行为), 以及自身特殊的特性
}
}
}
9
代码存在重复,违背了}“write once, only once”的原则
为什么需要继承 4-3
• 如何改进?有没有可能建立继承关系,让子类自动继承父 类的属性和方法?
Java教员是教员吗? .NET教员是教员吗?
教员
姓名 所在中心
授课 自我介绍
Java教员 .NET教员
10
public class Teacher {
} 使用继承,可以有效实现代码复用
11
如何实现继承 3-1
• 在Java语言中,用extends关键字来表示一个类 继承了另一个类,例如:
public class JavaTeacher2 extends Teacher { //其余代码省略
}
• 在父类中只定义一些通用的属性与方法,例如:
public class Teacher { private String name; // 教员姓名 private String school; // 所在中心 public Teacher(String myName, String mySchool) { //初始化属性值 } public void giveLesson() { //授课方法的具体实现 } public void introduction() { //自我介绍方法的具体实现 }

Java基础第7章课件

Java基础第7章课件
– LinkedList集合除了具备增删元素效率高的特点,还专门针对元素 的增删操作定义了一些特有的方法。
7.2 List 接口
• 7.2.3 LinkedList集合
– 接下来通过一个案例来学习这些方法的使用。
7.2 List 接口
• 7.2.3 LinkedList集合
– 测试ArrayList与LinkedList在插入和遍历元素时的效率:
• 7.2.7 Enumeration接口
– 通过一个案例来演示如何使用Enumeration对象遍历Vector集合:
7.2 List 接口
• 7.2.8 Stack类
– Java集合类提供了栈Stack类,Stack类直接继承于Vector类,位 于java.util包中。
7.2 List 接口
• Collection是所有单列集合的父接口,因此在Collection中 定义了单列集合(List和Set)通用的一些方法,这些方法可 用于操作所有的单列集合。
7.2 List 接口
• 7.2.1 List接口简介
– List接口继承自Collection接口,是单列集合的一个重要分支,习 惯性地会将实现了List接口的对象称为List集合。 – 在List集合中允许出现重复的元素合Map。
第七章 集合
– Collection:单列集合类的根接口,用于存储一系列符合某种规则 的元素,它有两个重要的子接口,分别是List和Set。其中,List 的特点是元素有序、元素可重复。Set的特点是元素无序并且不可 重复。List接口的主要实现类有ArrayList和LinkedList,Set接口的 主要实现类有HashSet和TreeSet。 – Map:双列集合类的根接口,用于存储具有键(Key)、值(Value)映 射关系的元素,每个元素都包含一对键值,在使用Map集合时可 以通过指定的Key找到对应的Value,例如根据一个学生的学号就 可以找到对应的学生。Map接口的主要实现类有HashMap和 TreeMap。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java语言 该语句创建String类的对象,并通过赋值号将匿名String类 的对象"Java"赋值给c1引用,我们将此对象称为对象c1,如图 7.1所示。String类的对象一经创建,便有一个专门的成员方法 来记录它的长度。
c1 0 J 引引引引 字字字字字字字(也也字字c1) 1 a 2 v 3 a 字字字字字字字字字字 字字字字字字字
成员方法
public int length( ) public char charAt(int index) public int indexof(int ch) public int indexOf(String str, int fromIndex) public String substring(int beginIndex) public String substring(int beginIndex, int endIndex) public boolean equals(Object obj)
图7.1 字符串对象c1的示意图 第7章 字符串类
Java语言 7.1.2 String类的构造方法 类的构造方法 类的构造方法 表7.1 String类的构造方法
构造方法 public String( ) public String(String value) public String(char value[ ]) public String(char value[ ],int offset,int count) public String(byte ascii[ ]) public String(byte ascii[ ],int offset int count)) public String(StringBuffer Buffer) 说 创建一个空字符串对象 用串对象value创建一个新的字符串对象,value可 以是字符串或String类的对象。 用字符数组value[ ]来创建字符串对象。 从字符数组value中下标为offset的字符开始,创 建有count个字符的串对象。 用byte型字符串数组ascii,按缺省的字符编码方 案创建串对象。 从字节型数组ascii中下标为offset的字符开始,按 缺省的字符编码方案创建count个字符的串对象。 构造一个新的字符串,其值为字符串的当前内容。 明
Java语言
第7章 字 符 串 类
7.1 String类 类 7.2 StringBuffer类 类
第7章 字符串类
Java语言
7.1 String 类
7.1.1 创建 创建String对象 对象 Java语言规定字符串常量必须用双引号括起,一个串可以 包含字母、数字和各种特殊字符,如+、-、*、/、$等。在我们 前面的程序范例中已多次使用过字符串常量,例如: System.out.println("OK!"); 中的"OK!"就是字符串常量。Java的任何字符串常量都是String 类的对象,只不过在没有明确命名时,Java自动为其创建一个匿 名String类的对象,所以,它们也被称为匿名String类的对象。我 们可以用下面的方法创建String类的对象。例如: String c1="Java"; 第7章 字符串类
功能说明
返回当前串对象的长度 返回当前串对象下标int index处的字符 返回当前串内第一个与指定字符ch相同的下标,若找不 到,则返回-1 从当前下标fromIndex处开始搜索,返回第一个与指定字 符串str相同的第一个字母在当前串中的下标,若找不到, 则返回-1 返回当前串中从下标beginIndex开始到串尾的子串 返回当前串中从下标beginIndex开始到下标endIndex-1的 子串 当且仅当obj不为null且当前串对象与obj有相同的字符串 时,返回true否则返回flase
第7章 字符串类
Java语言 表7.2 ng.String常用成员方法 常用成员方法
public boolean equalsIgnoreCase(String s) public int compareTo(String another_s) public String concat(String str) public String replace(char oldCh, char newCh) public String toLowerCase( ) public String toUpperCase( ) public static String valueOf(type variable) public static String valueOf(char[ ] data, int offset,int count) public static String valueOf(Object obj) public String toString ( ) 功能与equals类似,equalsIgnoreCase在比较字符串时忽略大小写 比较两字符串的大小。返回一个小于、等于或大于零的整数。返 回的值取决于此字符串是否小于、等于或大于another_s 将字符串str连接在当前串的尾部,返回新的字符串 将字符串的字符oldCh替换为字符串newCh 将字符串中的大写字符转换为小写字符 将字符串中的小写字符转换为大写字符 返回变量variable值的字符串形式。type可以是字符数组 返回字符数组data从下标offset开始的count个字符的字符串 返回对象obj的字符串 返回当前字符串
第7章 字符串类
Java语言 byte byteArray[ ]={-61, -26, -49, -14, -74, -44, -49, -13}; StringBuffer buffer; String s,s1,s2,s3,s4,s5,s6,s7,ss; s=new String("hello"); //用字符串创建一个新的字符串对象s ss="ABC"; //用字符串赋给String类型的对象引用
第7章 字符串类
Java语言
【示例程序c7_1.java】 String类的7种构造方法的使用。 import java.io.*; public class c7_1 { public static void main(String[ ] args) {//字符数组型的字符串 char charArray[ ]={'b','i','r','t','h',' ','d','a','y'}; //字节数组型的字符串,其中每个字节的值代表汉字的国际机内码 //汉字的国际机内码(GB2312码),两个字节的编码构成一个汉字。 //数组构成“面向对象”4个汉字。-61与-26组合成汉字“面”,其余类推
Java语言 indexOf(String str, int fromIndex):从当前下标fromIndex 处开始搜索,返回第一个与指定字符串str相同的第一个字母在 当前串中的下标,若找不到,则返回-1。例如, "abcd". IndexOf("cd",0); //值为2。
substring(int beginIndex):返回当前串中从下标beginIndex开 始到串尾的子串。例如, String s="abcde".subString(3); //s 值为"de"。
Java语言 运行结果如下: s1= s2=hello s3=birth day s4=day s5=面向对象 s6=向对 s7=Welcom to java programming! ss=ABC buffer=Welcom to java programming! 第7章 字符串类
Java语言 7.1.3 String类的常用方法 类的常用方法 表7.2 ng.String常用成员方法 常用成员方法
//用StringBuffer创建一个字符串对象buffer buffer=new StringBuffer("Welcom to java programming! "); s1=new String( ); //创建一个空字符串对象 第7章 字符串类
Java语言
s2=new String(s); s3=new String(charArray); //用串对象s创建一个新的字符串对象s2 //用字符数组创建字符串对象s3
第7章 字符串类
Java语言 //构造一个新的字符串对象s7,其值为字符串buffer的当前内容 s7=new String(buffer); System.out.println("s1="+s1); System.out.println("s2="+s2); System.out.println("s3="+s3); System.out.println("s4="+s4); System.out.println("s5="+s5); System.out.println("s6="+s6); System.out.println("s7="+s7); System.out.println("ss="+ss); System.out.println("buffer="+buffer); } } 第7章 字符串类
Java语言
char c1="12ABG".charAt(3);// 返回当前串对象下标int index处的字符
char c2=s1.charAt(3); // char c3=cc.charAt(1);错,不能这样用 //返回当前串内第一个与指定字符ch相同的下标 int n1="abj".indexOf(97); int n2=s1.inde3="abj".indexOf("bj",0); int n4=s1.indexOf("va",1); //返回当前串中的子串 String s2="abcdefg".substring(4); 第7章 字符串类
相关文档
最新文档