# Java 第三章 112/10/22 --- 先給範例程式碼 :::success ### 檔名:t1.java ```java= public class t1 { private int a; //記憶體-1 private int b; //記憶體-2 public void put(int a, int b){ //接收 this.a = a; //存進記憶體-1 this.b = b; //存進記憶體-2 } public void give(){ //計算並印出 a = a ^ b; //計算過程-1 b = a ^ b; //計算過程-2 a = a ^ b; //計算過程-3 System.out.printf("%d, %d", a, b); //輸出 } } ``` ::: --- :::success ### 檔名:t2.java ```java= import java.util.Scanner; public class t2 { public static void main(String[] args){ Scanner input = new Scanner(System.in); t1 tt = new t1(); //調用 t1.java int a = input.nextInt(); //輸入值-1 int b = input.nextInt(); //輸入值-2 tt.put(a, b); //將資料送給 t1 tt.give(); //命令 t1 計算並印出 } } ``` ::: --- :::info ### 程式碼講解 | | t1.java | t2.java | | -------- | -------- | -------- | |工作| 接收資料並執行運算 |負責送資料給 t1 | |地位|底層員工|高階主管| |現實|負責處理上層交代的事情|負責把事情丟給下層執行| t1 所執行的計算,是把 a 和 b 兩個變數的值交換 (至於為什麼 t1 這樣寫可以實現變數交換,這裡暫且不提) t1 的 `put(int a, int b)` ***"負責接收"*** a, b 兩個數 this 是用來將接收到的值,***"存進"*** 自己的記憶體裡(相當於做筆記) t1 的 `give()` 負責 ***"計算"*** a, b 的值,並印出 --- 把 t1 寫好之後,就可以開始寫 t2 t2 的開頭跟我們平時練習的一模一樣 > `public static void main(String[] args){...}` 調用 t1 是第六行,調用方式跟 Scanner 一樣 只是少了 import put()用於收資料 give()用於輸出值 ::: --- :::danger 以上內容有一個大前提 t1.java 與 t2.java 在同一個資料夾內 否則 t2 會無法調用 :::