---
# System prepended metadata

title: 變數
tags: [Java]

---

<font style="text-shadow:0px 0px 15px #FF37FD;">變數</font>
==
###### tags: `Java`
如果只是想使用基本型態資料，只要在程式中寫下 10、3.14 即可

:::warning
``` jave=
public class Number {
    public static void main(String[] args) {
    	System.out.println(10);
    	System.out.println(3.14);
    	System.out.println(10);
    }    
}
``` 
:::danger
![](https://i.imgur.com/E9SDqNB.png)
:::

如果程式有很多地方都有 10，要把所有 10 改成 20，可以宣告一個變數(暫存位置)去存放

:::warning
``` jave=
public class Number {
    public static void main(String[] args) {
    	int number = 10;
    	double PI = 3.14;
    	System.out.println(number);
    	System.out.println(PI);
    	System.out.println(number);
    }    
}
```
:::

上列程式片段是宣告變數位置 number 的名稱，這個位置放的是 int 型態的一個整數數字， = 表示指定  number 名稱的位置會存放 10 。

如果之後想把 10 改成 20，只要將 number 變數改成20即可，這就是程式語言中變數的作用：用來暫存資料。

在上列的程式碼中 印出字元，有分三種顯示方式 :


|顯示方式                | 顯示結果  | 
| --------             | -------- | 
| System.out.print()   | 只會印出字 |
| System.out.printf()  | 格式化印出字  |
| System.out.println() | 印出字以後換行 |

:::warning
**System.out.print( )例子**
``` jave=
public class Number {
    public static void main(String[] args) {
    	int number = 10;
    	System.out.print(number);
    	System.out.print(number);
    	System.out.print(number);
    }    
}
```
:::danger
**輸出結果 :**
![](https://i.imgur.com/IfigrGz.png)
*    由於沒有換行，所以會接著輸出 10
:::

:::warning
**System.out.printf( )例子**
``` jave=
public class Number {
    public static void main(String[] args) {
    	int number = 10;
    	//輸出 number 不換行 
    	System.out.printf("%d",number);
    	//輸出 number 換行 
    	System.out.printf("%d%n",number);
    	//輸出 number 用三格來存 number
    	System.out.printf("%3d",number);
    }    
}
```
:::danger
**輸出結果 :**
![](https://i.imgur.com/L3O9UYo.png)
:::

:::warning
**System.out.println( )例子**
``` jave=
public class Number {
    public static void main(String[] args) {
    	int number = 10;
    	System.out.println(number);
    	System.out.println(number);
    	System.out.println(number);
    }    
}
```
:::danger
**輸出結果 :**
![](https://i.imgur.com/7GL9GDD.png) 
:::

## <font color="sandybrown">基本規則</font>
想要宣告何種型態的變數，就使用byte、short、int、long、float、double、char、boolean等關鍵字來宣告，變數命名時，不能用數字作為開頭，也不能使用特殊符號，更不能用與java 裡面保留字來命名，例如goto。

### <font color="#990DFF">駝峰式命名</font>
Java領域中的命名慣例（Naming convention），通常會以小寫字母開始，並在每個單字開始時第一個字母使用大寫

:::danger
**Ex :**
int ageOfStudent ;
int ageOfTeacher ;
:::

### <font color="#990DFF">final 命名</font>
如果在指定變數值之後，就不想再改變變數值，可以在宣告變數時加上final限定，如果後續撰寫程式時，自己或別人不經意想修改final變數，就會出現編譯錯誤。例如這段程式碼：

:::warning
**final變數錯誤例子**
``` jave=
public class Number {
	public static void main(String[] args) {
		final double PI = 3.141596;
		PI = 3.14;
	}
}
```
:::danger
**輸出結果 :**
![](https://i.imgur.com/0qGRPI0.png)
:::

再取 final 的變數名稱時全部須為大寫，如有多個單字結合須加下底線

:::danger
**Ex :**
final int AGE_OF_STUDENT;
final int AGE_OF_TEACHER;
:::
### <font color="#990DFF">Class 命名</font>

在命名Class時，第一個字母要大寫

:::warning
**Class命名例子**
``` jave=
public class Number {
}
```
:::

