版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1主要内容本课目标新课引入与项目展示案例1 编写描述学生的Java类 案例2 编写描述大学生的Java类 案例3 方法重载与方法重写 案例4 定义形状 案例5 实现电视机遥控器 案例6 读取队列元素 案例7 操作字符串 课堂实践巩固与提高第1页,共75页。2本课目标知识目标掌握面向对象程序设计的基本概念 掌握Java语言中类的声明及由类创建对象并使用对象掌握Java语言中继承的实现方法 了解Java语言应用接口实现多态的方法与Java常用类库 技能目标能将简单的客观事物抽象成Java类 能应用Java面向对象特点解决实际问题 态度目标严谨认真的工作态度语言表达和与人沟通能力养成规范化编程的习惯
2、第2页,共75页。3教学情境引入新课 熟练掌握类的定义,对象的创建及对象之间的交互,子类和抽象类的定义及多态的实现与使用。 工作任务项目展示第3页,共75页。4教师示范与讲解1任务一:编写描述学生的Java类 案例分析第4页,共75页。5 面向对象的基本概念 1对象对象(Object)就是客观存在的任何事物。2类 类(class)是对象的模板。即类是对一组有相同静态特性和相同动态行为的对象的抽象,一个类所包含的属性和方法描述一组对象的共同属性和行为。类是在对象之上的抽象,对象则是类的具体化,是类的实例。 第5页,共75页。6 面向对象的基本概念 3接口 如果我们把客观世界看成由不同的系统(或类
3、)组成,这些系统(或类)之间需要通过一个公共的部件进行交流,我们把这个公共的部件称为接口(Interface)。 4消息 消息就是对象之间进行通信的一种规格说明,对象之间进行交互作用和通信的工具。 第6页,共75页。7 面向对象的基本特性 1封装性 封装是一种信息隐蔽技术,它体现于类的说明中,是对象的重要特性。封装的目的在于把对象的设计者和对象的使用者分开,使用者不需要知道行为实现的细节,只需用设计者提供的消息来访问该对象。 在Java语言中,类是封装的最基本单位。封装有助于提高类和系统的安全性。 第7页,共75页。8 面向对象的基本特性 2继承性 继承是类不同抽象级别之间的关系,是子类自动共
4、享父类数据和方法的机制。 3多态性 对象根据所接收的消息产生行为,同一消息为不同的对象接收时可产生完全不同的行动,这种现象称为多态性。 多态允许对任意指定的对象自动地使用正确的方法,并通过在程序运行过程中将对象与恰当的方法进行动态绑定来实现。 第8页,共75页。9 类的定义 Java中的类的定义包括类声明和类体两部分内容。类声明的格式如下:publicabstractfinal class 类名 extends 父类名 implements 接口名表类体的通用格式如下:publicabstractfinal class 类名 extends 父类名 implements 接口名表 成员域定义部
5、分; 方法定义部分;第9页,共75页。10 课堂演示-编写描述学生的Java类 【案例4-1】判断指定数的奇偶性【案例学习目标】理解面向对象的基本概念,掌握Java语言中类的基本格式,能够简单实现对客观事物到Java类的抽象。 【案例知识要点】类的含义、类的定义、Java类的声明方法、Java类体的定义方法。 【案例完成步骤】学生对象分析 类的定义 第10页,共75页。11 课堂演示-编写描述学生的Java类 学生对象分析项 目名 称含 义属性sName表示学生姓名,String类型bGender表示学生性别,boolean类型,false代表女iAge表示学生年龄,int类型dHeight表
6、示学生身高,double类型dWeight表示学生体重,double类型iCounter表示学生总人数,int类型方法setInfo用于设置学生相关信息的方法getInfo用于获得学生相关信息的方法getCounter用于获得学生总人数的方法第11页,共75页。12 课堂演示-编写描述学生的Java类 类的定义public class Student public static int iCounter=0; String sName; boolean bGender=false; /false代表女 int iAge; double dHeight;/单位为厘米 double dWeight
7、;/单位为公斤 public static void getCounter() System.out.println(学生总数:+ +iCounter); 第12页,共75页。13 课堂演示-编写描述学生的Java类 public void getInfo() System.out.print(姓名:+sName+t); System.out.print(性别:+bGender+t); System.out.print(年龄:+iAge+岁t); System.out.print(身高:+dHeight+厘米t); System.out.println(体重:+dWeight+公斤); pub
8、lic void setInfo(String n,boolean g,int a,double h,double w) sName=n; bGender=g; iAge=a; dHeight=h; dWeight=w; 第13页,共75页。14学生模仿1任务一:学生模仿完成【案例4-1】编写学生类第14页,共75页。15教师示范与讲解2任务一:编写描述大学生的Java类 案例分析第15页,共75页。16 成员变量定义 成员变量描述了类的静态特性。类的静态特性包括两部分:类的特性和对象的特性信息。对应的Java也将成员变量分为两种:类变量和实例变量。在变量定义时,可同时给其赋初值,将其初始化
9、类的成员变量定义的一般格式如下:存取修饰符 final transient static volatile 类型 变量名 = 值 或表达式,变量名 = 值或表达式; 第16页,共75页。17 成员方法定义 方法是一个包含一条或多条语句的代码块,用来完成一个相对独立的功能 方法有自己的名称以及可以重复使用的变量 与类成员变量一样,方法也分为类方法(也称为静态方法)和实例方法两种类的成员方法定义的一般格式如下:存取修饰符 final staticabstractnativesynchronized 方法返回类型 方法名( 形式参数表) throws 异常表 可执行代码;第17页,共75页。18 构
10、造方法 构造方法的主要用途有两个:一是通知Java虚拟机创建类的对象,二是对创建的对象进行初始化如果在程序中没有显式的定义类的构造方法,Java编译器将自动提供一个构造方法,称为默认构造方法可以在【案例4-1】中,添加一个构造方法:public Student() iAge=36; dHeight=170; dWeight=65; 第18页,共75页。19 创建对象 1创建对象的步骤 在已经定义好的类的基础上,创建对象的过程分为如下3步:(1)创建对象引用变量;(2)创建类的实例对象;(3)将对象的引用赋值给对象引用变量。第19页,共75页。20 创建对象 2new运算符通过new运算符创建对
11、象时,Java虚拟机将在堆中开辟一个内存空间,用于存放对象的实例变量,并根据指定的构造方法和类的定义初始化这些实例变量。new运算符的一般格式为:对象引用变量 new 对象构造方法;3调用对象的成员 对象的成员(实例变量与实例方法)的调用采用“.”运算符,引用的一般格式为:对象引用变量.类的成员第20页,共75页。21 类的继承 在Java中,从一个现有类的基础上定义新的类的过程称为派生。新定义的类称为派生类,也称为直接子类。基础类称为父类或超类。这种一个类派生出另一个类的关系即为继承关系,一个派生类将继承其父类的所有特性和操作。如果要创建一个继承父类的子类,只需在类的声明中通过extends
12、关键字指定要继承的类名就可以。 第21页,共75页。22 课堂演示-编写描述大学生的Java类 【案例4-2】编写描述大学生的Java类 【案例学习目标】理解继承的基本思想,理解父类和子类的关系,能在父类的基础上创建子类 【案例知识要点】父类和子类的概念、子类的实现、extends关键字 【案例完成步骤】编写程序 编译并运行程序 第22页,共75页。23 课堂演示-编写描述大学生的Java类 编写程序public class College extends Studentprivate String sMajor;public void getMajor()System.out.println
13、(专业:+sMajor);/调用子类的实例变量System.out.println(身高:+dHeight);/引用父类的实例变量public static void main(String args)College wangym;wangym=new College();wangym.getInfo();/调用父类的实例方法wangym.getMajor();/调用子类的实例方法 第23页,共75页。24 课堂演示-编写描述大学生的Java类 运行结果第24页,共75页。25学生模仿2任务一:学生模仿完成【案例4-2】的内容第25页,共75页。26教师示范与讲解3任务一:方法重载与方法重写
14、案例分析第26页,共75页。27 this和super this代表当前对象本身。通过this变量不仅可以引用当前对象的实例变量,也可引用当前对象的实例方法;但由于类变量与类方法不属于具体的类对象,因此不能通过this变量引用类变量和类方法,在类方法中也不能使用this变量。在引用实例变量时,使用this变量是一种很好的习惯,它能使程序更加清晰,且不容易出错。super代表当前类的父类。通过super可以调用父类的构造方法和父类的成员(成员变量和成员方法)。 第27页,共75页。28 方法重载与方法重写 方法重载指类的同名方法在向其传递不同的参数时可以有不同的动作,实现不同的功能 子类从父类中
15、继承方法时,需要修改父类中定义的方法(即只修改方法体,方法的参数类型、个数、顺序以及返回值保持相同),这就是方法的重写 第28页,共75页。29 课堂演示方法重载与方法重写 【案例4-3】方法重载与方法重写 【案例学习目标】理解方法重载的含义和应用场合,理解方法重写的含义和应用场合,掌握实现方法重载的方法,掌握实现方法重写的方法,能在实际应用中合理选择方法重载或方法重写。 【案例知识要点】方法重载的含义、方法重写的含义、方法重载的方法、方法重写的方法。 【案例完成步骤】编写程序 编译并运行程序第29页,共75页。30 课堂演示-方法重载与方法重写 编写方法重载的程序 public class
16、OverLoadDemo void purchase()System.out.println(买菜);void purchase(String what)System.out.println(买+what);void purchase(String what,int number)System.out.println(买+number+斤+what);void purchase(String what,String where)System.out.println(到+where+买+what); 第30页,共75页。31 课堂演示-方法重载与方法重写 void purchase(String
17、 what,int number,String where)System.out.println(到+where+买+number+斤+what);void purchase(String what,int number,String where,String when)System.out.println(when+到+where+买+number+斤+what);public static void main(String args)OverLoadDemo old=new OverLoadDemo();old.purchase();old.purchase(大米);old.purchas
18、e(大米,100);old.purchase(大米,步步高超市);old.purchase(大米,100,步步高超市);old.purchase(大米,100,步步高超市,下午); 第31页,共75页。32 课堂演示-方法重载与方法重写 方法重载运行结果第32页,共75页。33 课堂演示-方法重载与方法重写 编写方法重写的程序 class StuString sName;void display(String name)System.out.println(我是一名学生,我的名字是:+name);class CollegeStu extends StuString sMajor;void di
19、splay(String name)System.out.println(-);System.out.println(我是一名大学生,我的名字是:+name);sMajor=计算机;System.out.println(我学习的专业是:+sMajor);第33页,共75页。34 课堂演示-方法重载与方法重写 class MiddleStu extends StuString sSubject;void display(String name)System.out.println(-);System.out.println(我是一名中学生,我的名字是:+name);sSubject=理科;Sys
20、tem.out.println(我学习的科目是:+sSubject);第34页,共75页。35 课堂演示-方法重载与方法重写 public class OverrideDemopublic static void main(String args)Stu stu=new Stu();CollegeStu cstu=new CollegeStu();MiddleStu mstu=new MiddleStu();Stu s;s=stu;s.display(刘津);s=cstu;s.display(王咏梅);s=mstu;s.display(刘志成); 第35页,共75页。36 课堂演示-方法重载与
21、方法重写 方法重写运行结果第36页,共75页。37学生模仿3任务一:学生模仿完成【案例4-3】的内容第37页,共75页。38教师示范与讲解4任务一:编写定义形状的程序案例分析第38页,共75页。39 抽象类与抽象方法 在面向对象分析设计时,可将一些实体作高度抽象定义成抽象类。抽象类没有任何对象,只可作为一个模板用于创建子类,以及为面向对象提供更灵活的多态机制 抽象类定义的一般格式如下:public abstract class 类名 extends 父类名 implements 接口名表 方法体;第39页,共75页。40 抽象类与抽象方法 抽象类的声明,必须在class关键字之前添加abstr
22、act关键字。抽象类与其他类一样,可继承于其他类,也可实现接口。但定义抽象类的主要目的就是为了创建子类,因此abstract类不可以是final类。抽象类中可以不包含抽象方法,但包含抽象方法的类必须是抽象类。 抽象方法声明的一般格式如下:存取修饰符 abstract 方法返回类型 方法名( 形式参数表) throws 异常表;第40页,共75页。41 Final修饰符 出于保密或其他设计上的原因,希望类或类中成员变量、成员方法不被修改或重写,可以通过Java提供的final修饰符来实现 在类定义时,可使用final修饰符使类不被继承 在定义成员变量时,可通过final修饰符定义常量 在定义方法
23、时,可使用final修饰符避免方法被子类重写 第41页,共75页。42 课堂演示-定义形状 【案例4-4】定义形状 【案例学习目标】了解抽象类的定义方法,掌握由抽象类得到具体类的方法,能根据实际应用编写抽象类和具体类 【案例知识要点】抽象类的定义、抽象类和具体类的关系、abstract关键字 【案例完成步骤】编写程序 编译并运行程序 第42页,共75页。43 课堂演示-定义形状 编写程序abstract class Shapepublic abstract void getArea();class Circle extends Shapefinal double PI=3.1415926;do
24、uble dRadius;public void getArea()System.out.println(圆的面积为:+PI*dRadius*dRadius);public Circle(double r)this.dRadius=r;第43页,共75页。44 课堂演示-定义形状 class Rectangle extends Shapedouble dLength;double dWidth;public void getArea()System.out.println(矩形的面积为:+dLength*dWidth);public Rectangle(double l,double w)th
25、is.dLength=l;this.dWidth=w;public class AbstractDemopublic static void main(String args)Circle cc=new Circle(5.6);cc.getArea();Rectangle rt=new Rectangle(8,6);rt.getArea(); 第44页,共75页。45 课堂演示-定义形状 运行结果第45页,共75页。46学生模仿4任务一:学生模仿完成【案例4-4】的内容第46页,共75页。47教师示范与讲解5任务一:编写实现电视机遥控器的程序案例分析第47页,共75页。48 接口定义 接口被描
26、述为一组方法声明和常量的集合 接口只定义一组方法协议(或称标准),但没有作任何具体实现。接口的定义与类的定义相似,其一般格式为:public interface 接口名 extends 父辈接口列表 常量定义 方法声明第48页,共75页。49 实现接口 实现接口的定义格式如下:publicabstractfinal class 类名 extends 父类名 implements 接口名表 /接口体内容1/接口方法实现 /接口体内容2与普通类的定义不同,接口实现必须包含“implements 接口名表”部分 在实现类中,一般必须重写接口中声明的所有方法。重写方法的名称、返回值、修饰符必须与接口中
27、声明的方法一致。第49页,共75页。50 课堂演示-实现电视机遥控器 【案例4-5】实现电视机遥控器 【案例学习目标】进一步理解继承和多继承的含义,掌握接口声明的方法,掌握接口体定义的方法,会根据实际应用编写接口 【案例知识要点】接口声明、接口体定义、使用接口、interface关键字 【案例完成步骤】编写接口程序 编写实现接口的程序 编写测试接口的主类 运行程序 第50页,共75页。51 课堂演示-实现电视机遥控器 编写接口程序 interface IRemoteCtrl int VOLUME_MIN = 0; int VOLUME_MAX = 100; boolean powerOnOff
28、(boolean b); /电源开关 int volumeUp(int increment); /声音放大 int volumeDown(int decrement); /声音减小 void mute();/静音 第51页,共75页。52 课堂演示-实现电视机遥控器 编写实现接口的程序(见书本)编写测试接口的主类public class TestTvCtrl public static void main(String args)TVRemoteCtrl tv=new TVRemoteCtrl(海尔 H600);tv.powerOnOff(true);/tv.powerOnOff(false)
29、;tv.setChannel(45);tv.channelDown();tv.mute();tv.volumeUp(2);tv.volumeUp(3); 第52页,共75页。53 课堂演示-实现电视机遥控器 运行结果第53页,共75页。54学生模仿5任务一:学生模仿完成【案例4-5】的内容第54页,共75页。55教师示范与讲解6任务一:编写读取队列元素的程序案例分析第55页,共75页。56 定义包 在Java语言中,与客观世界中系统相对应的概念称为包(Package)。包是一种分组机制,设计者可将一组高内聚、低耦合、关联性较强的模型元素(可以是类、接口、包)组织在一起,形成一个更高层次的单元包
30、由一组类和接口组成。它是管理大型名字空间,避免名字冲突的工具。每一个类和接口的名字都包含在某个包中。 使用包的作用有两个:一是划分类名空间,二是控制类之间的访问。 定义包的一般格式如下:package packageName;第56页,共75页。57 引入包 在一个类中,如果要使用其他包中的类和接口则用import关键词来标明来自其他包中的类。 Java提供import关键词来引用包,指定包的名字,包括路径名和类名,用“*”匹配符可以调入多个类。 通常一个类只能引用与它在同一个包中的类,如果需要使用其他包中的public类,则可以使用如下的几种方法。 在要使用的类前加包名 用import关键字
31、加载需要使用的类 用import关键字加载整个包 设置CLASSPATH环境变量 第57页,共75页。58 Java常用类库 编 号包 名功 能1java.awt包含了图形界面设计类、布局类、事件监听类和图像类2java.io包含了文件系统输入/输出相关的数据流类和对象序列化类3java.lang包含对象、线程、异常出口、系统、整数和字符等类的Java编程语言的基本类库包含支持TCP/IP网络协议类、Socket类、URL类等实现网络通信应用的所有类5java.util包含程序的同步类、Date类和Dictionary类等常用工具包6javax.swing包含了一系列轻量级的用户界面组件(sw
32、ing组件)类7Java.sql包含访问和处理来自于Java标准数据源数据的相关类(JDBC类)8java.applet包含了设计applet的类9java.beans.*提供了开发Java Beans需要的所有类10java.math.*提供了简明的整数算术以及十进制算术的基本函数11java.rmi提供了与远程方法调用相关的所有类12java.security.*提供了设计网络安全方案需要的一些类13java.test包括以一种独立于自然语言的方式处理文本、日期、数字和消息的类和接口14javax.accessibility定义了用户界面组件之间相互访问的一种机制15javax.namin
33、g.*为命名服务提供了一系列类和接口第58页,共75页。59 数组与字符串 数组是一种常用的数据结构,相同数据类型的元素按一定顺序排列就构成了数组。数组中的各元素是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。数组有一个成员变量length来说明数组元素的个数。创建一个空数组。int list=new int5;用初始数值填充数组。String names=liujin,wangym,Liuzc;第59页,共75页。60 一维数组 声明一个数组其实就是要确定数组名、数组的维数和数组元素的数据类型。声明数组的语法格式有两种:数组元素类型 数组名;或 数组元素类型 数组名;声明数组后,
34、要想使用数组需要为它开辟内存空间,即创建数组空间。创建数组空间的语法格式为:数组名=new 数组元素类型数组元素的个数;在声明数组时“”中不允许指定数组元素的个数,如int iSno6将导致语法错误。 正确区分“数组的第5个元素”和“数组元素5”很重要,因为数组下标从0开始,“数组的第5个元素”的下标是4,而“数组元素5”的下标是5,实际是数组的第6个元素 当数组初始化后就可通过数组名与下标来引用数组中的每一个元素。一维数组元素的引用格式如下:数组名数组下标第60页,共75页。61 二维数组 二维数组的声明与一维数组相似,只是需要给出两对方括号。格式如下 :类型标识符 数组名;或 类型标识符
35、数组名; 在初始化二维数组时,可以只指定数组的行数而不给出数组的列数,每一行的长度由二维数组引用时决定,但不能只指定列数而不指定行数 不指定行数只指定列数是错误的 第61页,共75页。62 课堂演示-读取队列元素 【案例4-6】读取队列元素 【案例学习目标】了解数组的含义,掌握数组的定义方法,掌握数组的赋值方法,掌握数组元素的引用方法,在实际编程中能够合理地使用数组 【案例知识要点】一维数组的定义、一维数组的赋值、一维数组元素的引用 【案例完成步骤】编写程序 编译并运行程序 第62页,共75页。63 课堂演示-读取队列元素 编写程序public class Queue public stati
36、c void main(String args) int i;int a=new int5;for(i=0;i=0;i-)System.out.println(a+i+=+ai); 第63页,共75页。64 课堂演示-读取队列元素 运行结果第64页,共75页。65学生模仿6任务一:学生模仿完成【案例4-6】的内容第65页,共75页。66教师示范与讲解7任务一:编写操作字符串的程序案例分析第66页,共75页。67 String类 字符串是程序中的一个通用且重要的信息类型,在程序中经常要把各种各样的信息以字符串的形式传递、通信和输出显示,而Java为字符串操作提供了许多特殊的支持。 第67页,共7
37、5页。68 StringBuffer类 StringBuffer是字符串类String的对等类, 提供了大量的字符串功能。String表示定长、不可变的字符序列,而StringBuffer表示变长的和可修改的字符序列,可用于动态创建和操作动态字符串信息。StringBuffer支持字符或子字符串的插入或追加的操作,并可针对这些字符或子字符串的添加而自动地增加空间。 第68页,共75页。69 课堂演示-操作字符串 【案例4-7】操作字符串 【案例学习目标】了解String对象和StringBuffer对象的异同,掌握String对象的构造方法,掌握StringBuffer对象的构造方法,在实际开发中能够合理使用String对象或StringBuffer对象提供的相关方法完成字符串的基本操作 【案例知识要点】String对象的构造方法、String对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026-2027学年浙江省宁波市高三下第一次测试物理试题(含答案解析)
- 咸阳市2027年高考物理一模试卷(含答案解析)
- 2026年中医科上半年特色诊疗总结
- 机关保密主管2026年二季度政务保密统筹管控总结
- 校园夏季消防安全排查整治课件
- 5.4.1 角平分线的性质与判定 课件-2026-2027学年湘教版数学八年级上册
- 2026年北师大版小学二年级语文上册第15单元第1课《贺年片》标准教案
- 断指术后训练康复指导
- 2026年绿色产品认证信息化工具应用指南
- 上消化道出血的药物治疗
- 2026年上海(中考)语文考试试题含答案
- 连云港市东海县招聘事业单位人员考试真题2025
- 2026年飞控算法工程师(无人机稳定控制)试题及答案
- 2026重庆科技馆管理有限公司招聘9人笔试备考试题及答案详解
- 道路工程监理旁站要点
- 公立医院行政管理岗招聘考试核心考点笔记:医院管理学基础
- 《NOSQL数据库技术》课件全套完整版
- JJF(鄂) 182-2026 电学法热阻测试仪校准规范
- 2026年高考真题-化学(上海卷) 含解析
- 2026年5年级诗词赛题库及答案
- 安徽省信用融资担保集团有限公司招聘笔试题库2026
评论
0/150
提交评论