日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Matlab面向对象编程

發布時間:2025/3/17 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Matlab面向对象编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

名稱:簡單計算器程序

面向對象思想的由來:面向對象編程思想的由來是從面向過程演變而來,所以我們用一個簡單的計算器程序用面向過程的方式去實現。

以下是面向過程方式實現計算器程序:

public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("input 1 figure...");double figure1 = Double.parseDouble(scanner.nextLine());System.out.println("input operator...");String operator = scanner.nextLine();System.out.println("input 2 figure...");double figure2 = Double.parseDouble(scanner.nextLine());double resultOperator = 0.0;if ("+".equals(operator)) {resultOperator = figure1 + figure2;} else if ("-".equals(operator)) {resultOperator = figure1 - figure2;} else if ("*".equals(operator)) {resultOperator = figure1 * figure2;} else if ("/".equals(operator)) {resultOperator = figure1 / figure2;}System.out.println("result:" + resultOperator);} }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

運行效果:?


這實現起來確實很快,代碼運行起來也沒有異常,但是并不是代碼無錯就是優,我們要多方面考慮就知道問題的所在了,例如:以后要在平板電腦上計算,以后要在javaWeb程序上計算,能到這個計算過程都要在去寫一遍?,這肯定沒有體現出復用性?
所以我們要考慮如何復用??
業務封裝:

package com.dahua.demo1.b;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("input 1 figure...");double figure1 = Double.parseDouble(scanner.nextLine());System.out.println("input operator...");String operator = scanner.nextLine();System.out.println("input 2 figure...");double figure2 = Double.parseDouble(scanner.nextLine());double operatorResult = Operator.getOperatorResult(figure1, figure2, operator);System.out.println("result:" + operatorResult);}}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
package com.dahua.demo1.b;public class Operator {/*** 此方法的用于計算兩個數的值* @param figure1 第一個數值* @param figure2 第二個數值* @param operator 傳入運算符* @return*/public static double getOperatorResult(double figure1, double figure2, String operator) {double resultOperator = 0.0;if ("+".equals(operator)) {resultOperator = figure1 + figure2;} else if ("-".equals(operator)) {resultOperator = figure1 - figure2;} else if ("*".equals(operator)) {resultOperator = figure1 * figure2;} else if ("/".equals(operator)) {resultOperator = figure1 / figure2;}return resultOperator;} }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

所以我們定義一個計算類(Operator),里面有一個計算的方法,以后不管是平板電腦程序需要計算,還是JavaWeb程序需要計算 等等,都可以使用這個Operator類的計算方法了,從而實現了復用,面向對象特征之一封裝

我們在以面向對象編程思想里考慮,這樣寫耦合度太高,擴展性也不好,因為如果現在要增加一個平方根運算呢,難道要去修改代碼嗎?

所以我們以面向對象的思想來考慮的話,抽取共用相同的行為,無論(加 減 乘 除)他們都用算法的行為,所以我們定義一個父類,用子類來實現:

public abstract class Counter {private double figure1;private double figure2;public double getFigure1() {return figure1;}public void setFigure1(double figure1) {this.figure1 = figure1;}public double getFigure2() {return figure2;}public void setFigure2(double figure2) {this.figure2 = figure2;}/*** 抽象方法* 計算兩個數值* @return 返回計算結果*/public abstract double counterResult();}// 加法類 public class CounterAdd extends Counter{public double counterResult() {return Operator.getOperatorResult(getFigure1(), getFigure2(), "+");} }// 減法類 public class CounterMinus extends Counter {public double counterResult() {return Operator.getOperatorResult(getFigure1(), getFigure2(), "-"); } }// 乘法類 public class CounterRide extends Counter {public double counterResult() {return Operator.getOperatorResult(getFigure1(), getFigure2(), "*");} }// 除法類 public class CounterRemove extends Counter {public double counterResult() {return Operator.getOperatorResult(getFigure1(), getFigure2(), "/");} }// 計算類 public class Operator {/*** 此方法的用于計算兩個數的值* @param figure1 第一個數值* @param figure2 第二個數值* @param operator 傳入運算符* @return*/public static double getOperatorResult(double figure1, double figure2, String operator) {double resultOperator = 0.0;if ("+".equals(operator)) {resultOperator = figure1 + figure2;} else if ("-".equals(operator)) {resultOperator = figure1 - figure2;} else if ("*".equals(operator)) {resultOperator = figure1 * figure2;} else if ("/".equals(operator)) {resultOperator = figure1 / figure2;}return resultOperator; } }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86

客戶端程序調用:

public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("input 1 figure...");double figure1 = Double.parseDouble(scanner.nextLine());System.out.println("input operator...");String operator = scanner.nextLine();System.out.println("input 2 figure...");double figure2 = Double.parseDouble(scanner.nextLine());Counter counter = CounterFactory.getInstance().getOperator(operator);counter.setFigure1(figure1);counter.setFigure2(figure2);double counterResult = counter.counterResult();System.out.println("result:" + counterResult); } }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

執行結果:?

以上說這些:完全是模擬從一個簡單的計算器程序,用常規面向過程思想實現,慢慢的演化到面向對象思想中來體現,以上還有很多不足,沒有去完善,主要是體現出面向對象程序設計一種方式。

?
轉自?http://blog.csdn.net/u011967006

總結

以上是生活随笔為你收集整理的Matlab面向对象编程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。