单元二:面向对象程序设计 任务二:借书卡程序设计.

Slides:



Advertisements
Similar presentations
主要内容 Java 的常用包 Java 的常用包 “ == ” 和 “ equals ” 的用法 “ == ” 和 “ equals ” 的用法 基本数据类型与引用类型 基本数据类型与引用类型 String 和 StringBuffer String 和 StringBuffer 对象的克隆( clone.
Advertisements

第6章 对象和类.
第四章 类、对象和接口.
第三讲 面向对象(上).
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
JAVA 编 程 技 术 主编 贾振华 2010年1月.
6. 6 Overloading methods and constructors 6
项目6 通用堆栈.
Java程序设计教程 第一讲 Java概述.
四資二甲 第三週作業 物件導向程式設計.
面向对象的程序设计(一).
南京理工大学 第2章 Java基本语法 本章我们将学习Java编程语言的基本语法,包括变量、操作符、表达式、语句、字符串、数组、控制流以及如何使用帮助文档。 使用下面的编程框架: public class Test{ public static void main(String []args){ //以下添加测试代码.
第一章 面向对象程序设计.
第二章 JAVA语言基础.
第二部分 Java语言基础篇 第4章 Java语言与面向对象 (之一).
Ch07 介面與多重繼承 物件導向程式設計(II).
1 Department of Computing.
第5章 Java中类、对象、接口 及包的概念 5.1 类的基本概念 5.2 类的继承概念 5.3 抽象类和接口 5.4 包.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
第5章 面向对象程序设计 本章要点 5.1 面向对象程序设计概述 5.2 Java语言的面向对象程序设计 5.3 方法的使用和对象数组
物件導向程式設計 (Object-Oriented rogramming)
Classes Lecturer: 曾學文.
CHAPTER 9 建構方法 ROBERT.
實作輔導 日期: 3/11 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
程序與函數的類別方法 目的:模組化程式設計 方法:由上而下設計 注意事項:(1)獨立性 (2)結合問題 (3)子問題間的溝通.
第六章 类的扩展与继承.
程式敘述執行順序的轉移 控制與重複、方法 Lecturer:曾學文.
第3章 語法入門 第一個Java程式 文字模式下與程式互動 資料、運算 流程控制.
本單元介紹何謂變數,及說明變數的宣告方式。
Ch10 類別與物件-方法 Java程式設計(2).
程式設計實作.
抽象类 File类 String类 StringBuffer类
第2章回顾 标识符:不用记,动手 关键字:if, else, switch, for, while, do, break, continue, void, …… 局部变量和成员变量 ①变量作用域 ②内存布局 基本数据类型 ①4类8种 ②互相转换 流程控制语句 ①分支 if……else, switch.
第12章 從C到C++語言 12-1 C++語言的基礎 12-2 C++語言的輸出與輸入 12-3 C++語言的動態記憶體配置
Java程序设计 第9章 继承和多态.
類別的繼承 Vehicle Car.
中国矿大计算机学院杨东平 第5章 接口和包 中国矿大计算机学院杨东平
辅导课程九.
變數命名 保留字(Reserved Word)
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
第9讲 Java的继承与多态(一) 类的继承 子类的创建 方法覆盖.
2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞.
异常及处理.
Java程序设计 第2章 基本数据类型及操作.
Ch02-基礎語法.
C/C++/Java 哪些值不是头等程序对象
$10 可空类型.
* 單元:電腦與問題解決 主題:Java物件導向程式設計-類別與物件 台南縣國立善化高中 蕭嘉民 老師
實作輔導 2 日期: 3/24(星期六) 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
第二章Java基本程序设计.
C#程序设计基础 $3 成员、变量和常量.
第二章 Java基本语法 讲师:复凡.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
Interfaces and Packages
第二章 Java语法基础.
Review 1~3.
第二章 Java基本语法 讲师:复凡.
第二章 Java基本语法 讲师:复凡.
Class 2005/05/25.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
JAVA 程式設計與資料結構 第三章 物件的設計.
第2章 Java语言基础.
對於成員(member)存取權的限制 成員的資料被毫無限制的存取,任誰都可以指定任意值給成員,Java語言為了防止這種現象的產生,規定:有一種成員的資料不能任由類別外部的任何人隨意存取。
判斷(選擇性敘述) if if else else if 條件運算子.
第 5 章 常用类的使用 伍孝金
第二章 Java基础语法 北京传智播客教育
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
第二章 Java基本语法 讲师:复凡.
第6章 继承和多态 伍孝金
Summary
Presentation transcript:

单元二:面向对象程序设计 任务二:借书卡程序设计

教学目标 能力目标 知识目标 会定义和使用类的方法; 类的方法组成部分; 能够理解变量作用域; 定义和使用类的方法; 定义包和导入包的关键字; 构造方法实现对象成员的初始化; 方法重载; 对构造方法进行重载 。 能力目标 会定义和使用类的方法; 能够理解变量作用域; 会创建包组织Java工程; 能够掌握构造方法; 能够掌握方法重载 。

教学内容 1 任务陈述 2 知识准备 3 任务实施 4 任务拓展 5 任务实训

1. 任务陈述 任务描述: 借书卡是学生日常生活重要组成部分。每张借书卡信息包含账号、持卡人姓名、身份证号码、地址、已借书数、可借书数、本次借书数、本次还书数。使用借书卡还可以借书、还书和查询。要求:根据持卡人不同操作,显示不同信息。当借书操作后,显示本次借书数及已借书数;当还书操作时,显示本次还书数和已借书数。 运行结果:

2.4类的方法

2.5 构造方法

2. 知识准备 构造方法分类 构造方法根据参数进行了分类:无参构造方法和有参构造方法。 1. 无参构造方法 例如: public class People{ public People() { ……//使用固定值初始化成员变量 } 那么在含有main方法的测试类中实例化People对象时: People p1= new People(); 注意:无参构造方法可以不写,类中默认含有一个无参构造方法,并且该构造方法的方法体内没有语句。而使用默认值初始化对象成员变量,数值型变量初始为0,布尔型初始为false,字符型初始为“\0”,字符串初始为null;

2. 知识准备 2. 有参构造方法 例如: public class People{ int age; String name; public People(int myAge,String myName) { age=myAge; name=myName; } 那么在含有main方法的测试类中实例化People对象时: People p1= new People(20,”zhangsan”); 上面的实例化就可以看出是把成员变量进行了动态的赋值。 注意:当定义了有参的构造方法后,无参构造方法将不再存在,如果还想使用无参的构造方法进行实例化对象,就需要显性的写出无参构造方法。

2. 知识准备 2.3 方法重载 2.3.1 方法重载的概念 参数不同是区分重载方法的关键因素,参数不同主要包括以下方面的不同: 方法重载是指多个方法享有相同的名字,但是这些方法的参数必须不同,所谓的不同是指:参数的个数不同,参数类型不同,参数的顺序不同。返回类型不能用来区分重载的方法。在这种情况下,该方法就叫被重载了,这个过程称为方法的重载。当一个重载方法被调用时方法名是一样的,因此Java用参数的类型、(或)数量、(或)顺序来选择实际调用的重载方法。 例如:System.out.println();里面的println这个方法就是重载方法。 注意:方法的重载要使用恰当,当一个动作(方法)分别接受不同的指令(参数)产生不同的效果,可以使用。但过度的使用将会降低程序的可读性。 参数不同是区分重载方法的关键因素,参数不同主要包括以下方面的不同: 参数类型不同。例如: public void method(String s); public void method(int s); 参数个数不同。例如: public void method(String s,int i); 参数顺序不同。例如: public void method(int i,String s);

2. 知识准备 【实例2-4】求圆形的面积,要求用户输入任何类型的数据后都要能得到最终的面积值。 public class MethodOverloading { final float PI=3.14; double calArea(double r) { return PI * r * r; } float calArea (float r) { float calArea(int r) { folat calArea (String r) { float i=Float.parseInt(r); 可以发现方法重载主要目的是为了满足在不同输入的情况下依然可以得到进行相同或相似的处理。在编程上有些麻烦,但是在使用性和灵活性得到了加强。由于实现了Java在编译时的方法的多种状态,所以有时也成为静态多态。

2. 知识准备 构造方法重载 不仅普通方法可以重载,构造方法也可以重载。只要构造方法的参数个数不同,或是类型不同,便可定义多个名称相同的构造方法。 【实例2-5】利用构造函数重载创建对不同变量初始化的对象 public class Rectangle { double width; double length; Rectangle (){ //直接初始化为数值 width = 1; length=5; } Rectangle (double x){//把两个变量初始化为相同传入值 width = x; length =x; Rectangle (double w,double len) {//分别对两个属性初始化不同的值 width = w; length=len;

2. 知识准备 2.6 变量的作用域 变量声明的位置决定变量作用域。Java 变量的范围有四个级别:类级、对象实例级、方法级、块级。 类级变量又称全局级变量,在对象产生之前就已经存在,就是static 修饰的静态变量。 对象实例级,就是成员变量,它可以使用在整个类和对象中。 方法级:就是在方法内部定义的变量,就是局部变量。 块级:就是定义在一个块内部的变量,变量的生存周期就是这个块, 出了这个块就消失了,比如if、for语句的块。 注意:后面两个级别变量作用域的判断只需要记住:在变量声明的地方找到离它最近的一对大括号就是它的作用域,出了这对大括号就不能用了。

2. 知识准备 2.5 定义包和导入包的关键字 包是Java提供的文件组织形式,采用类似于文件夹的形式。包提供了访问级别控制和命名空间管理。不同的包中允许出现相同名字的文件。 1. 定义包 格式:package <顶层包名>[.子包名1][.子包名2]…[.子包名n]; 例如:依照地域范围+制作人+功能分类 来定义包 package com.cn.can.dao 2. 导入包 格式:package <顶层包名>[.子包名1][.子包名2]…[.类名|*]; 例如:导入系统类库中的Date表示日期的类。 import java.util.Date; 注意: 在Java中,java.lang包不需要使用import手动导入,系统自动位置导入,因此在该保内存放了很多常用的基础的类,例如Math。

3. 任务实施 1. 解决步骤 本任务中行为有借书、还书和查询。在BookCard类分别定义了3个方法borrow(int);TheReturn(int);query()。 打开Eclipse,创建BookCard类; 在类大括号内进行属性定义; 在类的大括号内定义3个方法,表示借书、还书和查询; 在BookCard类的main方法中,创建一个BookCard类的对象; 利用创建的BookCard对象,使用对象名.方法的形式调用方法,完成具体的功能;

3. 任务实施 2.任务代码 public class BookCard { public void borrow(int cash) { if (Remain >= cash) { Remain = Remain - cash; //省略输出语句 } public void TheReturn(int cash) { Remain = Remain + cash; public void query() { System.out.println("可借书数" + Remain);

4. 任务拓展 1. 任务拓展要求: 原任务中方法 borrow(int);TheReturn(int);query()都没有返回值,现在改为正确借书、还书后,返回true,否则返回false。 2. 任务拓展分析: 大部分的方法都需要有返回值,对于有返回值的方法一定要注意方法的返回值与方法体内的return语句对应起来。 例如,如果方法体内含有if-else语句,那么就应该注意返回值的问题。

5. 任务实训 一、实训目的 二、实训内容 三、简要提示 四、实训思考