程式設計日記:Java學習之路(二)
2.Java的基本概念
2.1 包
包的作用是用於分類:Java中的包把不同功能模組的class檔案組織起來,便於管理,使用package關鍵字定義類所屬的包。
package p1; public class First{...}
必須是Java檔案中的第一行程式碼,寫在程式碼的最前端。
在執行時要保證每個class檔案都處於正確的包中,解釋執行命令後要使用類的完全限定名如:
java p1.First
完全限定名=包名.類名
那麼java.p1.First命令做了那些事呢?
(1)啟動Java虛擬機器
(2)到環境變數CLASSPATH中找到p1資料夾
(3)在p1資料夾中找到First.class檔案
(4)驗證First類是否屬於p1包
(5)解釋執行
在包中還可以包含子包如:
package p1.p2.p3.p4.p5; public class First{...}
編譯後的First.class應該被放在p5資料夾下
編譯時使用-d引數可以自動把編譯後的class檔案放到正確的位置上:
javac –d.First.java
執行時同樣要使用類的完全限定名:
java p1.p2.p3.p4.p5.First
在實際開發時,每個類都要有包
引入包前:
java.util.Date d1; java.util.Date d2; java.util.Date d3; java.util.Date d4; java.util.Date d4;
引入包後:
import java.util.Date; Date d1; Date d2; Date d3; Date d4; Date d5;
包的引入:
一個類使用其他包中的類時,需要使用完全限定名,也可以使用import語句引入一個類或者一個包中的所有類,這樣就可以直接使用類名代替完全限定名
import 完全限定名;
import 包名.*;
java.lang包是Java的核心包,編譯器會自動引入,像String,System等類都是在lang包中。
Java檔案的基本結構:
package 包,必須是程式碼的第一行
import 引入包,可以引入很多個
class 類,可以寫多個,但是公開類最多寫一個
2.2 註釋:
註釋是程式碼的描述,是用來寫給程式設計師看的,註釋可以用來提高程式碼的可讀性,是判斷程式碼好壞的重要標準。
註釋的分類和寫法:
單行註釋 | 單行內有效 | 從//開始到換行結束 |
多行註釋 | 可以寫多行 | 從/*開始到*/結束 |
文件註釋 | 可以寫多行 | 從/**開始到*/結束 |
Javadoc工具可以抽取java檔案中的文件註釋,可以在不暴露原始碼的情況下讓別人看到註釋中的文字;使用方法為:javadoc –d doc FIrst.java
2.3 識別符號:
給程式中的某個部分起的名字,例如:包名,類名,函式名,常量名,變數名
語法要求:
(1)由字母,數字,$,_組成,數字不能開頭
(2)大小寫敏感
(3)不能使用java關鍵字和保留字
儘可能望文生義
命名習慣:
(1)包名:全小寫
(2)類名:所有單詞首字母大寫
(3)變數名和函式名:首單詞小寫,其他單詞首字母大寫
(4)常量名:全大寫
2.4 變數:
一個變數就代表記憶體中的一塊空間,用來儲存資料,變數就是容納資料的容器
在java中變數必須先定義後使用,定義變數就是在開闢一塊記憶體空間
定義變數:變數型別 變數名;如int a;就是定義了一個整形變數a
使用變數的操作分別為賦值和取值,賦值是向這塊記憶體空間中儲存資料,取值是從這塊記憶體空間中取出資料
int a = 10;//定義變數賦值 System.out.println(a);//取值
Java是強型別語言,也就是說Java的資料型別和儲存資料的變數的型別必須一致。
區域性變數:在函式中定義的變數都是區域性變數。
區域性變數的特點:
必須先賦值,後使用,作用範圍是從定義開始到所在的語句塊結束,在重合的作用範圍內不能有重名的區域性變數
2.5 資料型別
Java中的變數按照其資料型別可以分為兩大類:
(1)基本型別:簡單型別 原始型別
(2)引用型別:物件型別
其中基本型別分為:整形(byte,short,int,long),浮點型(float,double),字元型(char),布林型(boolean)。
字串型別:java.lang.String
(1)引用型別比較特殊
(2)引用型別中為數不多哦的有字面值的型別
(3)使用雙引號表示的一串字元,可以包含轉義符
(4)可以進行加法運算,字串拼接
哥德巴赫猜想:任何一個大於4的偶數都能被拆成兩個質數的和
import java.util.Scanner; public class Java_day01_01 { public static void Gdbhcx(int num) { int num1=0,num2=0; int a=0,b=0; if(num<4){ return; } for(int i = 2;i<=num;i++) { if (i % 2 == 0) { continue; } num1 = num - i; num2 = i; a = isPrime(num1); b = isPrime(num2); if (a+b==0){ System.out.println(num1); System.out.println(num2); return; } } } public static int isPrime(int n){ int m = 0,a=0,b=0; for (int i = 2; i < n ; i++) { if(n % i==0) m++; } if (m == 0) a=0; else a++; return a; } public static void main (String[] args){ System.out.println("請輸入一個大於4的偶數:"); Scanner sc = new Scanner(System.in); int i = sc.nextInt(); Gdbhcx(i); } }