今天開始就是解釋JAVA程式碼~
因為程式碼只是照打~真的知道自己在打甚麼嗎?
這裡會介紹的程式碼就像蓋房子一樣會從底開始~
希望是可以真的跑出甚麼的~
才不會看不下去
試試看下面程式碼會顯示?
程式碼
package oop01;
import java.util.Scanner;
public class Text05 {
public static void main(String[] args) {
Product p1 = new Product();
//System.out.println(p1.name);//private無法在外被使用
p1.setInfo();
p1.setPrice(100);
}
}
class Product{
private String name;
private int price;
void setInfo() {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入商品名稱:");
String n = sc.nextLine();
System.out.println("請輸入商品價格:");
int p = sc.nextInt();
name = n;
price = p;
System.out.println("已設定商品名:"+name+" 價格:"+price);
}
void setPrice(int a) {
price = a;
System.out.println("已修改商品名:"+name+" 價格:"+price);
}
}
顯示
依序鍵入後顯示
解釋程式碼
這段Java程式碼定義了兩個類別:Text05
和 Product
。
Text05
類別:
public static void main(String[] args)
是程式的進入點(主函式)。main
函式中,它建立了一個 Product
物件 p1
。p1.setInfo()
方法,它請求用戶輸入商品名稱和價格。p1.setPrice(100)
方法,將商品價格設置為100。Product
類別:
name
(商品名稱)和 price
(商品價格)。setInfo()
方法是用來設定商品名稱和價格的方法。它使用 Scanner
類別來接收用戶輸入,並將輸入的值設置給 name
和 price
。setPrice(int a)
方法用於修改商品價格,它將傳入的整數 a
設置給 price
,並顯示已修改的商品名稱和價格。請注意,name
是私有變數,因此只能在 Product
類別內部訪問,無法在 Text05
類別中直接訪問,這是因為它被定義為私有(private)。這種封裝性確保了只有 Product
類別內部的方法可以訪問和修改 name
。
程式碼
package oop01;
import java.util.Scanner;
public class Test08 {
public static void main(String[] args) {
Game g1 = new Game();
g1.check(g1.keyin());
}
}
class Game{
int input=0, count=0;
int ans = (int)(Math.random()*100);
//接收輸入
int keyin() {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入0-99間任一整數");
input = sc.nextInt();
count++;
return input;
}
//判斷
void check(int a) {
//當答錯時 a != ans
while(a != ans) {
if(a > ans) {
System.out.println("數字太大,請重猜");
}else {
System.out.println("數字太小,請重猜");
}
a = keyin();
}
//當答對時 a == ans
System.out.println("猜對了,共猜次數:"+count);
}
}
顯示
填入後
終於猜對
解釋程式碼
這段Java程式碼實現了一個猜數字遊戲,讓使用者猜一個0到99之間的隨機數字。
Test08
類別:
public static void main(String[] args)
是程式的進入點(主函式)。main
函式中,它建立了一個 Game
物件 g1
。g1.keyin()
方法,該方法接受用戶輸入一個整數,並將輸入的數字返回。g1.check()
方法來檢查是否猜對。Game
類別:
在這個類別中,有幾個成員變數:
input
:用戶輸入的數字。count
:猜測次數。ans
:隨機生成的0到99之間的數字,用戶需要猜測的答案。keyin()
方法用來接收用戶輸入,並將其存儲在 input
變數中,同時增加 count
累計猜測次數,然後返回用戶輸入的數字。
check(int a)
方法用來檢查用戶的猜測是否正確。當用戶的猜測 a
不等於正確答案 ans
時,它會提示用戶繼續猜測,並根據用戶的猜測給出提示是太大還是太小。當用戶猜中正確答案時,它會輸出猜對了的消息,並顯示猜測的總次數。
總結來說,這個程式碼實現了一個簡單的猜數字遊戲,讓用戶通過不斷猜測數字來試圖猜中隨機生成的數字,直到猜中為止。
程式碼
package oop01;
import java.util.Scanner;
public class Test11 {
public static void main(String[] args) {
// 寫法:沒有變數 不能看剩下多少錢 無法操作第二次
new Bank("小明", 2000).withdraw();
// 有變數 可操作第二次
Bank b1 = new Bank("小明", 2000);
b1.withdraw();
Bank b2 = new Bank("AA", 2000, "M");
b1.withdraw();
System.out.println(Bank.count);
//若class沒有定義任何建構方法,JVM會自動補上"預設建構方法"
//若class有定義建構方法,則需按照定義的來執行
//Bank b2 = new Bank();
}
}
class Bank {
private String name;
private int money;
private String sex;
static int count=0;
// 建構方法
Bank(String name, int money, String sex) {
this.name = name;
this.money = money;
this.sex = sex;
System.out.println("開戶成功1");
count++;
}
Bank(String name, int money) {
this.name = name;
this.money = money;
System.out.println("開戶成功2");
count++;
}
void withdraw() {
Scanner sc = new Scanner(System.in);
System.out.println("請選擇功能:1[提款] 2[存款] 3[退出]");
int a = sc.nextInt();
if (a == 1) {// 提款
System.out.println("請輸入金額");
int m = sc.nextInt();
if (m > money) {
System.out.println("餘額不足");
} else {
money -= m;
System.out.println("餘額= " + money);
}
} else if (a == 2) {// 存款
System.out.println("請輸入金額");
int m2 = sc.nextInt();
money += m2;
System.out.println("餘額= " + money);
} else {
System.exit(0);// 正常離開執行
}
}
}
顯示
依序填入
解釋程式碼
這段Java程式碼實現了一個簡單的銀行帳戶操作系統,並包含了幾個重要的概念,讓我們逐一解釋:
Test11
類別:
public static void main(String[] args)
是程式的進入點(主函式)。main
函式中,它展示了如何使用不同的建構方法(constructors)來創建 Bank
物件並進行操作。new Bank("小明", 2000).withdraw()
的方式創建了一個匿名的 Bank
物件,進行提款操作。這種方式無法再次操作相同的帳戶。Bank b1 = new Bank("小明", 2000);
創建了一個具名的 Bank
物件 b1
,然後進行提款操作。這種方式可以多次操作相同的帳戶。Bank b2 = new Bank("AA", 2000, "M");
創建了一個具名的 Bank
物件 b2
,並進行提款操作。Bank
類別:
在這個類別中,有幾個成員變數:name
(帳戶名稱)、money
(帳戶餘額)和 sex
(性別)。
count
是靜態(static)變數,用於計算建立的 Bank
物件數量。
有兩個建構方法(constructors):
Bank(String name, int money, String sex)
接受三個參數,分別是帳戶名稱、初始餘額和性別。它初始化了這些變數並顯示 "開戶成功1",然後增加 count
。Bank(String name, int money)
接受兩個參數,分別是帳戶名稱和初始餘額。它初始化這兩個變數並顯示 "開戶成功2",然後也增加 count
。withdraw()
方法用來執行提款、存款或退出操作,它接受用戶的選擇,然後執行相應的操作。如果用戶選擇提款,它會檢查餘額並進行提款,如果選擇存款,則將金額加入餘額中,如果選擇退出,則程式結束執行。
這個程式碼演示了如何使用建構方法來初始化物件,並如何使用物件來執行不同的操作,例如提款和存款。程式還使用了靜態變數 count
來跟蹤建立的 Bank
物件數量。
謝謝收看