程序與函數的類別方法 目的:模組化程式設計 方法:由上而下設計 注意事項:(1)獨立性 (2)結合問題 (3)子問題間的溝通.

Slides:



Advertisements
Similar presentations
软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
Advertisements

多元評量與 Greenfoot 簡介 南港高中高慧君. 演講大綱 多元評量 高中階段程式設計教學目標與困境 Greenfoot 快速入門 – 袋熊吃樹葉 – 沙灘螃蟹 Greenfoot 臺灣社群介紹 2.
第3-2章 类与 对象 Java类的特性 教学内容: 类的私有成员与公共成员 方法的重载 构造方法 实例成员与静态成员 重点: 重载 难点:
单元二:面向对象程序设计 任务二:借书卡程序设计.
第三讲 面向对象(上).
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
JAVA 编 程 技 术 主编 贾振华 2010年1月.
项目6 通用堆栈.
Java程序设计教程 第一讲 Java概述.
四資二甲 第三週作業 物件導向程式設計.
面向对象的程序设计(一).
面向对象程序设计(Java) 徐志红
第7章 C#函數與.NET Framework類別函數庫
第一章 面向对象程序设计.
设计模式可以帮助我们改善系统的设计,增强 系统的健壮性、可扩展性,为以后铺平道路。
類別與物件 Class & Object.
Ch07 介面與多重繼承 物件導向程式設計(II).
1 Department of Computing.
第三章 控制结构.
Ch08 巢狀類別 物件導向程式設計(II).
程式設計實作.
第5章 异常处理 王德俊 上海交通大学继续教育学院.
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)
第四章 在 C# 中实现 OOP 概念.
Java基础 JavaSE异常.
程式敘述執行順序的轉移 控制與重複、方法 Lecturer:曾學文.
西南科技大学网络教育系列课程 高级语程序设计(Java) 第五章 继承、接口与范型.
Ch10 類別與物件-方法 Java程式設計(2).
程式設計實作.
第四章 基本輸出入 Java應用程式的輸出入介面有三種,分別是命令提示字元視窗、AWT元件、及Swing元件。本單元先介紹命令提示字元視窗,AWT請看第16、17章,Swing請看第20章。 輸入 輸出.
第2章回顾 标识符:不用记,动手 关键字:if, else, switch, for, while, do, break, continue, void, …… 局部变量和成员变量 ①变量作用域 ②内存布局 基本数据类型 ①4类8种 ②互相转换 流程控制语句 ①分支 if……else, switch.
Java语言程序设计 第五部分 Java异常处理.
第9章 多线程 王德俊 上海交通大学继续教育学院.
Java程序设计 第9章 继承和多态.
Ch01 物件與類別複習 物件導向系統實務.
中国矿大计算机学院杨东平 第5章 接口和包 中国矿大计算机学院杨东平
實作輔導 3 日期: 4/14(星期六) 09:10~12:00、13:10~16:00
Ch02 陣列 JAVA程式設計入門(II).
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
第9讲 Java的继承与多态(一) 类的继承 子类的创建 方法覆盖.
异常及处理.
第一章 Java语言概述.
Ch02-基礎語法.
C/C++/Java 哪些值不是头等程序对象
第六章 属性、索引器、委托和事件.
* 單元:電腦與問題解決 主題:Java物件導向程式設計-類別與物件 台南縣國立善化高中 蕭嘉民 老師
辅导课程八.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
實作輔導 2 日期: 3/24(星期六) 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
第二章Java基本程序设计.
第二章 Java基本语法 讲师:复凡.
C#程序设计基础 $3 成员、变量和常量.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
第二章 Java基本语法 讲师:复凡.
龍老師我不會Debug QQ.
第二章 Java基本语法 讲师:复凡.
方法進階及物件導向基礎 Lecturer: 楊昌樺.
第6單元 6-1 類別的繼承 (Class Inheritance) 6-2 抽象類別 (Abstract Class)
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
JAVA 程式設計與資料結構 第三章 物件的設計.
對於成員(member)存取權的限制 成員的資料被毫無限制的存取,任誰都可以指定任意值給成員,Java語言為了防止這種現象的產生,規定:有一種成員的資料不能任由類別外部的任何人隨意存取。
迴圈(重複性結構) for while do while.
判斷(選擇性敘述) if if else else if 條件運算子.
第二章 Java基础语法 北京传智播客教育
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
第二章 Java基本语法 讲师:复凡.
Summary
Presentation transcript:

程序與函數的類別方法 目的:模組化程式設計 方法:由上而下設計 注意事項:(1)獨立性 (2)結合問題 (3)子問題間的溝通

程序是一個黑盒子 傳入參數 黑盒子 程式碼呼叫 傳回值 程序 使用界面

建立Java的類別方法 存取敘述 static 傳回值型態 方法名稱 (參數列); { …………… public:方法可在程式任何地方呼叫 程式敘述; private:方法只能在同一個類別 class內進行呼叫 ……………. }

沒有傳回值和參數列的方法 Public class Ch5_3_1 { //類別方法:顯示星號三角形 Private.static void writeTriangle( ) //變數宣告 int I,,j; //巢狀迴圈 for (I=1;I<=5;I++) for(j=1;j<=i;;j++) System.out.print(“*”); System.out.print(“\n); } //類別方法:顯示1加到5 public static void add2Five( ) { //變數宣告 Int i; Int total=0; //迴圈敘述 for(i=1;i<=5;i++) System.out.print(“1”+i); total+=i; } System.out.println(“\從小到大的總合:”+total); //主程式 public static voidmain(String[] args) //類別方法的呼叫 writeTriangle( ); //另一種類別方法的呼叫 Ch5_3_1.add2Five();

類別方法的參數傳遞 public class Ch5_9 { //主程式 public static void main(String[] args) int n=5;//變數宣告 printStars(n);//呼叫類別方法 } static void printStars(int n)//類別方法 { int i,j,k;//變數宣告 for(i=1;i<=n;i++)//迴圈敘述 for(j=n-i;j>=0;j--) System.out.print(" "); for(k=1;k<=i;k++) System.out.print("* "); System.out.print("\n"); }

類別方法的傳回值 } public class Ch5_8 { //類別方法:平方 static int square(int a) return(a*a);//傳回值 } //類別方法:三次方 static int cube(int a) return(a*a*a);//傳回值 public static void main(String[] args) { int a=9;//宣告變數 //呼叫類別方法 System.out.println("square="+square(a)); System.out.println("cube="+cube(a)); }

傳值或傳址參數 傳值呼叫(Call by Value) 傳址呼叫(Call by Reference) 只是將變數的值傳入方法,方法另外需要配置記憶體儲存參數值,所以並不會更改參數的值 傳址呼叫(Call by Reference) 將變數實際儲存的記憶體位置傳入,如果在方法變更參數值,也會同時變更原呼叫值 Int、char和double等基本資料型態 傳值 基本資料型態的參數傳遞都是使用傳值方式 String物件 不論是否使用new關鍵字建立的字串物件都是傳值,因為字串物件並不能更改字串內容 Array陣列 傳址 Java的陣列是一種物件,其參數傳遞方式是傳址方式

Java的類別變數和範圍 成員變數宣告 方法參數範圍 區域變數範圍 Class class_name { 成員變數宣告: ……. public void method_name( ) ………. 區域變數宣告; } 成員變數宣告 方法參數範圍 區域變數範圍

遞迴程式設計 遞迴的特性 遞迴方法在每次呼叫時,都可以使問題逐漸縮小 方法需要擁有一個終止條件,以便結束遞迴方法的執行。

範例:計算1到參數a的和 設a=5 5 5 5+4 5+10=15 return 5+4 4+3 4+6=10 return 4+3 1+2+3+4+..a=a+(a-1)+(a-2)+(a-3)+..+1 設a=5 5 5+4 4+3 3+2 2+1 1 (終止條件) (a)遞迴呼叫的進行 5 5+4 5+10=15 return 4+3 4+6=10 return 3+2 3+3=6 return 2+1 3 return 1 1 return (b)由每一個地迴呼叫傳回值

程式 public class Ch5_13 { static int sum(int a) if a==1 //終止條件 return(1); else return(a+sum(a-1)); } public static void main(String[] args) //主程式 { int a=5; //變數宣告 System.out.println("sum="+sum(a)); }

河內塔問題 規則:(1)每次只能移動一個盤子,而且只能從最上面的盤子移動 (2)任何盤子可以搬到任何一根木樁 (3)必須維持盤子的大小是由上而下依序遞增

步驟 步驟(a)將最上面n-1個盤子從木樁1搬移到木樁2 (b)將最後一個盤子從木樁1搬移到木樁3 (c)將木樁2的n-1個盤子搬移到木樁3

結果 盤子從 1 到 3 盤子從 1 到 2 盤子從 3 到 2 盤子從 2 到 1 盤子從 2 到 3

程式內容 //主程式 public static void main(String[ ] args) { //變數宣告 public class Ch5_5_2 { // 遞迴方法:河內塔問題 static void towerofHanoi(int n, int s,int t,int d) if(n==1)//終止條件 System.out.println(“Move”+s+”to”+d); else { //第二步驟 towerofHanoi(n-1,s,d,t); //第三步驟 towerofHanoi(n-1,t,s,d); } //主程式 public static void main(String[ ] args) { //變數宣告 int n=3;//盤子數 //呼叫遞迴的方法 towerofHanoi(n,1,2,3); }