主讲:朱红英 e-mail:hongyingzhy@gmail.com tel:13979115835 java程序设计 主讲:朱红英 e-mail:hongyingzhy@gmail.com tel:13979115835.

Slides:



Advertisements
Similar presentations
网络应用程序设计 2014 JavaBean. JavaBean 及其属性 JavaBean 就是一种 Java 的组件技术 JavaBean 是 Java 类 JavaBean 通过约定的方法名实现属性功能 简单属性 void setXxx(Type value) Type getXxx() boolean.
Advertisements

软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
多元評量與 Greenfoot 簡介 南港高中高慧君. 演講大綱 多元評量 高中階段程式設計教學目標與困境 Greenfoot 快速入門 – 袋熊吃樹葉 – 沙灘螃蟹 Greenfoot 臺灣社群介紹 2.
第3章 面向对象的编程技术.
单元二:面向对象程序设计 任务二:借书卡程序设计.
第四章 对象与类 掌握面向对象程序设计语言的特点 理解对象、类,类和对象的关系 掌握类,成员变量,方法的定义 掌握构造方法的定义
第三讲 面向对象(上).
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
JAVA 编 程 技 术 主编 贾振华 2010年1月.
四資二甲 第三週作業 物件導向程式設計.
第二章 JAVA语言基础.
Ch07 介面與多重繼承 物件導向程式設計(II).
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
第10讲 Java面向对象编程基础(4) 教学目标 主要内容.
行 言 面向对象程序设计基础(下) 类属性 类方法 包 限定符 接口 内部类.
第六章 JAVA语言中的面向对象特性 6.1 类 6.2 对象 6.3 面向对象的特性 6.4 抽象类、接口和Inner Class.
第三章 控制结构.
Ch08 巢狀類別 物件導向程式設計(II).
程式設計實作.
Q1: 追蹤程式: 印出結果? 搶答 while (i<=n) { p=p*i; i=i+2; }
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
物件導向程式設計 (Object-Oriented rogramming)
實作輔導 日期: 3/11 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
程序與函數的類別方法 目的:模組化程式設計 方法:由上而下設計 注意事項:(1)獨立性 (2)結合問題 (3)子問題間的溝通.
第3章 語法入門 第一個Java程式 文字模式下與程式互動 資料、運算 流程控制.
第二讲 搭建Java Web开发环境 主讲人:孙娜
程式設計實作.
CH09 套件 物件導向程式設計(II).
第2章回顾 标识符:不用记,动手 关键字:if, else, switch, for, while, do, break, continue, void, …… 局部变量和成员变量 ①变量作用域 ②内存布局 基本数据类型 ①4类8种 ②互相转换 流程控制语句 ①分支 if……else, switch.
Java程序设计 第9章 继承和多态.
辅导课程六.
類別的繼承 Vehicle Car.
中国矿大计算机学院杨东平 第5章 接口和包 中国矿大计算机学院杨东平
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
實作輔導 3 日期: 4/14(星期六) 09:10~12:00、13:10~16:00
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
2019/1/16 Java语言程序设计-类与对象 教师:段鹏飞.
2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞.
Ch02-基礎語法.
* 單元:電腦與問題解決 主題:Java物件導向程式設計-類別與物件 台南縣國立善化高中 蕭嘉民 老師
第7章 包及访问控制权限 7.1 包的基本概念 7.2 系统常见包 7.3 包的导入 7.4 访问控制权限修饰符 7.5 jar命令的使用.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
實作輔導 2 日期: 3/24(星期六) 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
第二章Java基本程序设计.
$9 泛型基础.
第二章 Java基本语法 讲师:复凡.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
本节内容 类成员的访问控制 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第二章 Java语法基础.
3.5 Java的包与访问控制符.
Chapter 18 使用GRASP的对象设计示例.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
辅导课程十五.
龍老師我不會Debug QQ.
第二章 Java基本语法 讲师:复凡.
第二章 Java基本语法 讲师:复凡.
第7章 模板 陈哲 副教授 南京航空航天大学 计算机科学与技术学院.
第二章 Java基本语法 讲师:复凡.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
JAVA 程式設計與資料結構 第三章 物件的設計.
第2章 Java语言基础.
迴圈(重複性結構) for while do while.
判斷(選擇性敘述) if if else else if 條件運算子.
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
第二章 Java基础语法 北京传智播客教育
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
第二章 Java基本语法 讲师:复凡.
方法(Method) 函數.
Presentation transcript:

主讲:朱红英 e-mail:hongyingzhy@gmail.com tel:13979115835 java程序设计 主讲:朱红英 e-mail:hongyingzhy@gmail.com tel:13979115835

7.1 定义和使用类方法 银行卡类的使用 package com.task07; //创建包com.task07 /** * AccountCard.java * 银行卡的使用 */ public class AccountCard { //定义类AccountCard …… //类的属性描述,详细实现代码参见6.4.7 public void deposit(double cash){ //类的存款行为,详细实现代码参见6.4.7 …… } public void withdraw(double cash){ //类的取款行为,详细实现代码参见6.4.7 public void query(){ //类的查询行为,详细实现代码参见6.4.7

银行卡类的使用 package com.task07; //创建包com.task07 /** * AccountCardTest */ public class AccountCardTest { //定义测试类 public static void main(String[] args) { //程序的入口 AccountCard wang=new AccountCard(); //创建类的对象 wang.account="1111111111"; wang.name="王朝"; wang.passportCode="321020199809181215"; wang.address="持卡人地址"; wang.balance=1000.8; wang.deposit(1000.5); //存款 wang.query(); //查询 wang.withdraw(500); //取款 }

银行卡类的使用 方法deposit()、withdraw()和query()没有返回数值。现改为,正确存款、取款后,返回true,否则返回false。查询返回余额。 public boolean deposit(double cash){ //类的存款行为 …… return true; //返回true } public boolean withdraw(double cash){ //类的取款行为 boolean correct=true; if ((balance-cash)>0){ balance=balance-cash; System.out.println("最终存款余额:"+balance); }else{ System.out.println("取出数额太大!请重新输入。"); correct =false; return correct; //返回correct public double query(){ //类的查询行为 System.out.println("===================="); System.out.println("您的余额是:"+balance); return balance; //返回balance

7.1 定义和使用类方法 方法的声明 格式: [修饰符] 返回值类型 方法名(形式参数列表) [throws 异常名列表] { //方法体的实现部分; 局部变量声明; 语句序列; }

7.1 定义和使用类方法 public class Student1{ …… public String getInfo(){ 如下的类的方法定义有哪些不对的地方? public class Student1{ …… public String getInfo(){ String name = “Harui”; String address = “London ”; return name, address; } public class Student2{ public static void main(String[ ] args){ return "返回"; 提示:有2个错误。

7.1 定义和使用类方法 方法的修饰符 访问控制符(含义、作用和属性的访问控制符相同) 静态修饰符static 抽象方法修饰符abstract 最终方法修饰符final等

7.1 定义和使用类方法 方法的修饰符---静态修饰符static 静态方法:用static修饰符修饰的方法。 (又称类方法) 二者的区别: 调用方式的不同:实例方法只能在类的实例和子类的实例中调用(也即先要用new运算符创建类的实例,再用 对象名.方法 的方式调用);而由于静态方法属于类,因此只要声明了一个类,不需要实例化对象就可调用其静态方法。

7.1 定义和使用类方法 方法的修饰符---静态修饰符static 静态方法的编写与使用时应注意的问题: static方法只能处理静态变量(也称static 域 即static 成员变量)或调用static方法。 static方法中不能访问实例变量或调用实例方法,也不能使用this或super(关于this,super将在后续章节介绍)。 调用static方法时,既可用某一个具体的对象名调用(对象名.方法),也可以使用类名直接调用(类名.方法)(如下页UseStatic.java所示)

说明:static 也可修饰类的成员变量 static修饰符 类变量/静态变量: 在类外访问静态变量时,若该静态变量非private,则可以直接用类名访问也可以通过对象访问(两种方式的结果是一样的),实例变量则只能通过实例对象才能访问。

7.1 定义和使用类方法 //UseStatic.java: Static void main(String args[]) { class UseStatic { int i; static int j; void seti(int ii) i=ii; } static void setj(int jj) j=jj; Static void main(String args[]) { UseStatic aa=new UseStatic(); UseStatic.j=2; System.out.println(“j:“+ UseStatic.j+”,”+aa.j); aa.j=3; UseStatic.setj(3); aa.i=4; System.out.println(“i=“+ aa.i); aa.seti(4); }

7.1 定义和使用类方法 方法的参数传递 1.基本数据类型的参数传递 形参类型为基本数据类型(值传递) 基本类型的变量作为实参传递,并不能改变这个变量的值 方法中的形式参数相当于局部变量,方法调用结束后自行释放,不会影响到主程序中的同名变量 举例见下页

class PassValue{ public static void main(String args[]){ int x=5; chang(x); System.out.println(x); } public static void chang(int x){ x=3;

7.1 定义和使用类方法 方法的参数传递 2.形参类型为引用数据类型(地址传递) 引用数据类型的参数调用可以改变对象的内容 对象的引用变量并不是对象本身,而是对象的句柄(名称),一个对象可以有多个句柄 举例见下页:

public static void main(String [] args){ class PassRef{ int x; public static void main(String [] args){ PassRef obj=new passRef(); obj.x=5; chang(obj); System.out.println(obj.x); } public static void chang(PassRef obj){ obj.x=3;

7.1 定义和使用类方法 方法之间的调用 在一个类中调用另一个类的方法。 例如,定义AccountCard类后,在AccountCardTest测试类的main()方法中调用AccountCard类的方法。 public static void main(String[] args) { //程序入口方法 AccountCard wang=new AccountCard(); //创建AccountCard类的对象 …… wang.deposit(1000.5); //在一个类的方法中调用另一个类的deposit()存款 方法 wang.query(); //在main()方法中调用AccountCard类的query()查询方法 wang.withdraw(500); //在main()方法中调用AccountCard类withdraw() 取款方法 wang.query(); }

在同一个类中,方法也可以相互调用: public class Car { String brand = "奥迪"; public String getBrand (){//方法1:获得小轿车品牌属性 return brand; } public String showCar() {//方法2:描述小轿车特性 return “这是一辆” + getBrand() + “品牌的小轿车。”; //调用同一个类 中的另一个方法 同一个类中方法之间调用时,不用写“对象名.”,而是直接调用方法。

7.2 变量的作用域 变量的作用域与变量的声明位置有关。 变量的有效范围称为变量的作用域。 当变量在方法之外定义时,称为类的成员变量类的成员变量的作用域在整个类的范围之内。 注:别的类能否使用,与类、变量的修饰符有关。 当变量在类的方法中定义时,变量的作用域只局限于该方法内部,称局部变量。

例如: public class Car { String brand = "奥迪"; public String getBrand (){ String color = "黑色"; //方法内部的局部变量,作用域为本方法 System.out.println(color); //只能本方法调用 return brand; //类的成员变量,在方法中也可以使用 } public String showCar() { System.out.println(color); //使用了getBrand()方法内的局部变量,出错 return "这是一辆" + getBrand() + "品牌的小轿车。";

变量还有一种常见的用法。 在方法体中,用{}括号划分了一个区域,然后,在区域中进行变量的定义。 例如,在一个方法体中: …… for(int i = 1, sum = 0; i <= 100; i++){ sum=sum+i; System.out.println(i+" "+sum); //i,sum的作用域仅在for循环中 }

编写员工信息类 package com.task07; //创建包com.task07 import java.util.Scanner; //导入程序中用到的系统类 /** * Employee */ public class Employee { //自定义Employee类 String no; //类的属性描述 String name; double basicSalary; double unfixedSalary; double realSalary; public void inputEmployee(){ //类的从键盘输入数据行为(方法) Scanner input = new Scanner(System.in); System.out.print("请输入员工号:"); no = input.nextLine(); System.out.print("请输入姓名:"); name = input.nextLine(); System.out.print("请输入基本工资:"); basicSalary = input.nextDouble(); System.out.print("请输入岗位津贴:"); unfixedSalary = input.nextDouble(); } public void calcRealSalary(){ //类的计算实际工资的行为(方法) realSalary=basicSalary+unfixedSalary; public void showRealSalary(){ //类的显示实际工资的行为(方法) System.out.println("实际收入: "+realSalary); public void showEmployeeInfo(){ //类的员工信息的行为(方法) System.out.println("员工号:"+no+" 姓名:"+name);

package com.task07; public class EmployeeTest { //测试类 /** * @param args */ public static void main(String[] args) { //程序入口方法 Employee employee1=new Employee(); //创建类的对象 employee1.inputEmployee(); employee1.calcRealSalary(); employee1.showEmployeeInfo(); employee1.showRealSalary(); }

eclipse3.2汉化包的安装 (外挂式,假设eclipse已安装在 eclipse3.2.2目录下,即在eclipse3.2.2目录下自动创建了一个eclipse目录) 1)建立一个D:\eclipse3.2.2\eclipse\myPlugins目录,这个目录是我们准备存放所有eclipse插件的地方 2)然后建立一个D:\eclipse3.2.2\eclipse\myPlugins\NLPack1-eclipse-SDK-3.2目录,这个目录是我们存放汉化包的地方 3)然后解压eclipse汉化包,NLPack1-eclipse-SDK-3.2.zip,在D:\eclipse3.2.2\eclipse\myPlugins\NLPack1-eclipse-SDK-3.2目录里面解压缩,解压缩后的内容会在一个名为eclipse目录中 4)建立一个D:\eclipse3.2.2\eclipse\links目录,新建一个文件language.link(文件名可随意),文件的内容只有一行,如下: path=D:\\eclipse3.2.2\\eclipse\\myPlugins\\NLPack1-eclipse-SDK-3.2 5)启动eclipse,汉化成功

7.3 定义包和导入包的关键字 包的概念: 包是组织java程序中类的一种手段。 包实际上是类和接口的集合,利用包可以把常用的类或功能相似的类放在一个程序包中,就像文件放在文件夹中一样,使类的管理更清晰,更有条理。 包是一种松散的类集合,一般不要求处于同一包中的类有明确的相互关系,但通常把需要一起工作的类放在一个包中。 使用包的一个主要原因还在于保证类名的惟一性。假设两个程序员都提供了一个employee类。只要他们把类放在不同的包中,那么就不会有冲突。 如: department1.employee department2.employee

包的创建 note: 格式:package 程序包名; Package语句必须放在java源文件的第一行,该行前可以有空格及注释行。 创建包就是在当前文件夹下创建一个子文件夹,以便存放这个包中包含的所有类文件。“.”代表目录分隔符。

包的引用 将类组织成包的目的是为了更好地利用包中的类,为了使用java中已提供的类,需要用import语句来引入所需要的类 格式: (在每个类名前加上完整的包名的方式也可访问该类,但显然重复而冗长)。 格式: import package1[.package2…].(classname或*) eg: import java.awt.*; import java.util.Date; Note: 编译器为所有程序自动引入包java.lang,因此不必用import语句引入它所包含的所有类,但若是需要使用其他包中的类,则必须用import语句引入。 使用*只能表示本层次的所有类,而不包括子层次下的类。import语句必须先于所有类的声明

eclipse中如何创建一个包? 方法1: 方法2 分别创建包和类。 创建项目→创建包→创建类 创建类的过程中创建类所在的包 创建项目→创建类(在此过程中声明所属包,如无声明,则显示“缺省包”)。

命令行方式下,编译和运行包中的类 命令行方式下,编译和运行包中的类 举例见: 编译 运行方式: 使用javac的 -d 参数来指定包的根目录 在classpath中添加包的根目录 运行方式: 进入启动运行类所在的目录(如果已经在classpath中添加了启动运行类所在的目录,则在任何位置下都可以) 使用 java 运行类的类名 的方式运行程序. 举例见: javacode\包的使用\Mypk2-rectangle文件夹

上机练习: 编译运行javacode\包的使用\mypk文件夹中的例子 D:\javawork\source---放Paker.java,PakerTest.java D:\javawork\classes---放前面两个文件中编译产生的类文件

7.4 Javadoc注释 Javadoc注释与单行注释和多行注释不同,它主要是为自动建立文档做准备,通常用来注释类、方法等。Javadoc注释使用“/**”开始和“*/”结束。例如,给AccountCard类加Javadoc注释: /** *AccountCard类 描述信息 *银行卡的使用 *@author wang @author 描述作者信息 *@version 2.0 2010-10-8 @version :描述版本信息 */ 给AccountCars类的deposit()方法添加Javadoc注释: * 存款 描述信息 * @return true 存款是否成功 @return:描述方法的返回值 public boolean deposit(double cash){ …… System.out.println("最终存款余额:"+balance); return true; }

Javadoc注释用在类、方法的声明之前,Javadoc注释中以@开头的部分称为固定的Javadoc标记。

/** * Score类 * @author wang * @version 2.0 2010-10-8 */ public class Score { int score1; // 语文成绩 int score2; // 数学成绩 * 计算总成绩 * @return total public int calcTotalScore() { int total = score1 + score2; return total; } * 显示总成绩 public void showTotalScore() { System.out.println("总成绩是: " + calcTotalScore()); /** * 计算平均成绩 * @return avg */ public int calcAvg() { int avg = (score1 + score2) / 2; return avg; } *显示平均成绩 public void showAvg() { System.out.println("平均成绩是: " + calcAvg());

eclipse中生成javadoc文档 项目—生成javadoc

命令行方式下,生成注释文件: javadoc [-d 文档寄存目录][ -author][ -version]源文件名.java