JAVA讲义第四讲下
- 格式:ppt
- 大小:343.50 KB
- 文档页数:44
教案首页周次 日期 课时序课题字符串处理 字符串是 Java 应用程序中最常用的数据类型,要求学生 能够理解字符串的基本概念和使用情况 String、StringBuffer 类;命令行参数 String、StringBuffer 类;命令行参数 第六章 字符串处理(3*45‘) 第一节 类 String 字符串(40‘) 第二节 类 StringBuffer 字符串(40‘) 第三节 main 方法的命令行参数(25‘) 第四节 字符串应用举例(30‘)教学目的 要 重 难 求 点 点教学过程 设 及 时间分配 计教学场所 或教学方法 作 业使用 教具课 后 记授课教师1第六章 字符串处理从本章开始介绍的是 Java 的应用,与前面几章有所不同,以后将主要讲授程 序范例,让学生增强应用能力,而此前主要是讲授理论知识为主。
字符串是字符的序列,它是组织字符的基本数据结构。
对于大多数程序员来说 都是很重要的。
Java 将字符串当作对象来处理。
Java 语言中的包 ng 封装了 final 类 String 和 StringBuffer 类。
6.1 6.1.1类 String 字符串 类 String 字符串的定义String 类是字符串常量类,String 对象建立后不能修改。
以前使用的每个字符 串常量(用双引号括起来的一串字符串)实际上都是 String 对象。
构造方法有: String() Initializes a newly created String object so that it represents an empty character sequence.String(byte[] bytes) Construct a new String by converting the specified array of bytes using the platform's default character encoding.String(byte[] ascii, int hibyte) Deprecated. This method does not properly convert bytes into characters. As of JDK 1.1, the preferred way to do this is via the String constructors that take a character-encoding name or that use the platform's default encoding.String(byte[] bytes, int offset, int length) Construct a new String by converting the specified subarray of bytes2using the platform's default character encoding.String(byte[] ascii, int hibyte, int offset, int count) Deprecated. This method does not properly convert bytes into characters. As of JDK 1.1, the preferred way to do this is via the String constructors that take a character-encoding name or that use the platform's default encoding.String(byte[] bytes, int offset, int length, String enc) Construct a new String by converting the specified subarray of bytes using the specified character encoding.String(byte[] bytes, String enc) Construct a new String by converting the specified array of bytes using the specified character encoding.String(char[] value) Allocates a new String so that it represents the sequence of characters currently contained in the character array argument.String(char[] value, int offset, int count) Allocates a new String that contains characters from a subarray of the character array argument.String(String value) Initializes a newly created String object so that it represents the same sequence of characters as the argument; in other words, the newly created string is a copy of the argument string.String(StringBuffer buffer) Allocates a new string that contains the sequence of characters currently3contained in the string buffer argument.利用这些构造函数来定义 String 对象。
第4天Java基础语法今日内容介绍◆随机点名器案例◆库存管理案例封装◆其他知识点今日内容学习目标◆能独立完成“随机点名器”案例源代码编写、编译及运行操作◆能独立完成“库存管理”案例源代码编写、编译及运行操作◆能够完成在源代码中使用方法进行运算操作◆能够完成在源代码中使用数组进行运算操作第1章随机点名器案例1.1案例介绍随机点名器,即在全班同学中随机的打印出一名同学名字。
要做的随机点名器,它具备以下3个内容:●存储所有同学姓名●总览全班同学姓名●随机点名其中一人,打印到控制台在编写案例前,我们先来学习下本案例中所涉及到的知识点:●方法●数组1.2案例学习目标●能独立完成“随机点名器”案例源代码编写、编译及运行操作●能够完成在源代码中使用方法进行运算操作●能够完成在源代码中使用数组进行运算操作1.3方法今天我们来详细聊聊Java中的方法,那么,方法是什么呢?假设有一个游戏程序,程序在运行过程中,要不断地发射炮弹。
发射炮弹的动作需要编写100行的代码,在每次实现发射炮弹的地方都需要重复地编写这100行代码,这样会导致程序变得很臃肿,可读性也非常差。
那么,为了解决代码重复编写的问题,我们可以将发射炮弹的代码提取出来放在一个{}中,并为这段代码起个名字,这样在每次发射炮弹的地方通过这个名字来调用发射炮弹的代码就可以了。
上述过程中,所提取出来的代码可以被看作是程序中定义的一个方法,程序在需要发射炮弹时调用该方法即可。
接下来通过一些案例来介绍方法在程序中起到的作用,先来看一下在不使用方法时如何实现打印三个长宽不同的矩形,如下所示。
MethodDemo01.javapublic class MethodDemo01 {public static void main(String[] args) {// 下面的循环是使用*打印一个宽为5、高为3的矩形for (int i = 0; i < 3; i++) {for (int j = 0; j < 5; j++) {System.out.print("*");}System.out.println("");}System.out.println("");// 下面的循环是使用*打印一个宽为4、高为2的矩形for (int i = 0; i < 2; i++) {for (int j = 0; j < 4; j++) {System.out.print("*");}System.out.println();}System.out.println();// 下面的循环是使用*打印一个宽为10、高为6的矩形for (int i = 0; i < 6; i++) {for (int j = 0; j < 10; j++) {System.out.print("*");}System.out.println();}System.out.println();}}运行结果如下图所示。
04JAVA基础语法第4天(⽅法、数组)讲义第4天Java基础语法今⽇内容介绍◆随机点名器案例◆库存管理案例封装◆其他知识点今⽇内容学习⽬标◆能独⽴完成“随机点名器”案例源代码编写、编译及运⾏操作◆能独⽴完成“库存管理”案例源代码编写、编译及运⾏操作◆能够完成在源代码中使⽤⽅法进⾏运算操作◆能够完成在源代码中使⽤数组进⾏运算操作第1章随机点名器案例1.1案例介绍随机点名器,即在全班同学中随机的打印出⼀名同学名字。
要做的随机点名器,它具备以下3个内容:●存储所有同学姓名●总览全班同学姓名●随机点名其中⼀⼈,打印到控制台在编写案例前,我们先来学习下本案例中所涉及到的知识点:●⽅法●数组1.2案例学习⽬标●能独⽴完成“随机点名器”案例源代码编写、编译及运⾏操作●能够完成在源代码中使⽤⽅法进⾏运算操作●能够完成在源代码中使⽤数组进⾏运算操作1.3⽅法今天我们来详细聊聊Java中的⽅法,那么,⽅法是什么呢?假设有⼀个游戏程序,程序在运⾏过程中,要不断地发射炮弹。
发射炮弹的动作需要编写100⾏的代码,在每次实现发射炮弹的地⽅都需要重复地编写这100⾏代码,这样会导致程序变得很臃肿,可读性也⾮常差。
那么,为了解决代码重复编写的问题,我们可以将发射炮弹的代码提取出来放在⼀个{}中,并为这段代码起个名字,这样在每次发射炮弹的地⽅通过这个名字来调⽤发射炮弹的代码就可以了。
上述过程中,所提取出来的代码可以被看作是程序中定义的⼀个⽅法,程序在需要发射炮弹时调⽤该⽅法即可。
接下来通过⼀些案例来介绍⽅法在程序中起到的作⽤,先来看⼀下在不使⽤⽅法时如何实现打印三个长宽不同的矩形,如下所⽰。
MethodDemo01.javapublic class MethodDemo01{public static void main(String[]args){//下⾯的循环是使⽤*打印⼀个宽为5、⾼为3的矩形for(int i=0;i<3;i++){for(int j=0;j<5;j++){System.out.print("*");}System.out.println("");}System.out.println("");//下⾯的循环是使⽤*打印⼀个宽为4、⾼为2的矩形for(int i=0;i<2;i++){for(int j=0;j<4;j++){System.out.print("*");}System.out.println();}System.out.println();//下⾯的循环是使⽤*打印⼀个宽为10、⾼为6的矩形for(int i=0;i<6;i++){for(int j=0;j<10;j++){System.out.print("*");}System.out.println();}System.out.println();}}运⾏结果如下图所⽰。
案例4-1 super访问父类成员变量一、案例描述1、考核知识点编号:029004003名称:super关键字2、练习目标➢掌握使用super关键字访问父类成员变量的方法3、需求分析子类可以继承父类的非私有成员变量,如果在子类中修改了继承自父类的成员变量的值,再想要访问父类的该成员变量时,可以通过super.成员变量来实现。
为了让初学者熟悉super关键字的用法,本案例将分别设计Fu类及其子类Zi,并在Zi类的方法中使用super关键字访问Fu类的成员变量。
4、设计思路(实现原理)1)编写一个Fu类,在类中定义无参构造和一个初始值为20的num成员变量。
2)Zi类继承Fu类,在子类中对num值进行了修改,同时在子类中定义无参构造和一个无返回值的method()方法,method()方法中使用super关键字调用了Fu类的num成员变量。
3)定义测试类Example03。
二、案例实现1、编写Fu类及其子类Zi,在Zi类中使用super关键字调用Fu类成员变量,代码如下class Fu {Fu() {}int num = 20;}class Zi extends Fu {Zi() {}int num = 30;// 修改num的值void method() {System.out.println("method");// super关键字调用父类成员变量System.out.println("Fu类中num值为:" + super.num);System.out.println("Zi类中num值为:" + num);}}2、定义测试类Example03,代码如下:class Example03{public static void main(String[] args) {Zi z = new Zi();z.method();}}运行结果如图4-3所示。
JAVA第四次课 JAVA中的继承和抽象类1. JAVA中的继承使⽤extends,JAVA中不允许多继承2. JAVA中默认⽀持动态绑定,如果不希望⼦类重写⽗类的函数,使⽤final关键字。
3.this:代表当前对象。
4.super:调⽤⽗类的⽅法或者⽗类的构造函数。
5.instanceof:判断⼀个对象是否是类的实例.(1)Employee e=new Employee();if(e instanceof Employee){System.out.println("OK");}else{System.out.println("NO");}(2)Employee m=new Employee();if(m instanceof Manager){System.out.println("OK");}else{System.out.println("NO");}(3)Employee e=new Manager();if(e instanceof Employee){System.out.println("OK");}else{System.out.println("NO");}6.final的使⽤总结:(1)final修饰变量:说明该变量是⼀个常量,程序运⾏过程中不可以修改。
(2)final修饰⽅法:说明该⽅法在⼦类中不可以重写。
(3)final修饰类:说明该类不可以继承。
同时该类中的⽅法全部为final.7.动态绑定的置换原则:程序中出现超类对象的任何地⽅都可以⽤⼦类的对象进⾏替换。
8.抽象类:(1)当⾃⾝部分⾏为⽆法确定时(⼦类确定)时,可以把该类的⽅法设计为抽象⽅法,具有抽象⽅法的类称作抽象类。
(2) 抽象⽅法不可以实例化对象。
但是抽象类可以定义抽象类变量。
(3) 使⽤abstract定义抽象类,同时抽象⽅法必须使⽤abstract修饰。