# Java 簡介 > **Java**是一種廣泛使用的電腦程式語言,擁有**跨平台**、**物件導向**、**泛型程式設計**的特性,廣泛應用於企業級Web應用開發和移動應用開發。--《維基百科》 *以下皆使用 IntelliJ 做示範* ## 主函數 首先,創建一個 java 檔,IntelliJ 會自動幫你生成一個 class (**必須與檔名相同**) ![](https://i.imgur.com/3E7dnRw.png) 接著打上 `main`,你就會看到自動完成,直接按 enter 即可。 完成後大概長這樣: ![](https://i.imgur.com/5PFgfLT.png) 接著你就可以開始寫你的主程式了。 輸出訊息: ```java= System.out.println(...); ``` 在 IntelliJ 中可以打 `sout` 來快速打出 ## 基本型態 :::warning Java 中只有***單字元型態***,不像 C++ 有 `long long int` 等等之類的。 ::: :::warning C++ 中的 `bool` 在 Java 中為 `boolean` ::: ## 陣列 Java 的陣列跟 C++ 的很不一樣。Java 會把陣列的型態宣告為 `<元素型態>[]`,例如上面的 `String[]`,這樣就可以與 `String` 型態做出區別。 ### 初始化 對於一個陣列的初始化,我們有兩個方法:一是直接宣告陣列;二是宣告陣列大小。 ```java= // Method 1 int[] array = {1, 2, 3, 4, 5}; ``` ```java= // Method 2 int[] array = new int[5]; // init = 0 ``` 至於 Java 會指派陣列初始值,各型態初始值如下: | 資料型態 | 初始值 | | -------- | ------- | | byte | 0 | | short | 0 | | int | 0 | | long | 0L | | float | 0.0f | | double | 0.0d | | char | \\u0000 | | boolean | false | ### length 取得陣列之長度 ```java= int[] array = new int[5]; System.out.println(array.length); // 5 ``` ### 多維陣列 那就多幾個 `[]` 阿: ```java= // Multidimensional double[][] matrix = new double[5][8]; // "matrix" is a 5 by 8 2D array ``` ## 物件導向 物件導向(OOP, Object-Oriented Programming)的基本概念是「透過物件(object)來模擬真實世界的事物」。 物件本身包含了「資料」和「方法」,如果以真實世界的事物來說,「資料」就是事物的特質、資訊或屬性,而「方法」就是該事物與其他事物互動的方式。 [什麼是物件導向程式設計](https://ithelp.ithome.com.tw/articles/10265795) ### 類別 類別(class)是物件的定義;換句話說,物件是類別的實例(instance)。 如果有一個類別叫做 `Car`,那我可以定義一個 `tesla` 為 `Car` 的實例: ```java= Car tesla = new Car(); ``` ### 存取範圍修飾子 [存取範圍修飾子](https://yubin551.gitbook.io/java-note/basic_java_programming/accessmodifier) - public - protected - - private ### 成員 由於 Java 為物件導向程式語言,資料與函數有兩種修飾子:**存取範圍修飾子**、以及**是否靜態(static)**。 ### 靜態成員 一般成員是**專屬於**某物件的資料,必須要有物件才可使用。 靜態成員是所有物件**共用**的資料,不需要有物件也能使用。 ![](https://i.imgur.com/VTU6B4O.png) --- [Object Oriented Programming](https://yubin551.gitbook.io/java-note/object_oriented_programming)