在java中聲明一個(gè)類的方式有兩種 即:public class 類名稱 和 class 類名稱。
(1)使用public class 聲明一個(gè)類時(shí),類名稱必須和文件名一致,否則程序?qū)o法編譯。
(2)使用class聲明一個(gè)類時(shí),類名稱可以和文件名不一致,但是在執(zhí)行時(shí)一定要執(zhí)行生成后的*。class文件。
(3)在一個(gè)java文件中可以有多個(gè)class類的定義,但是只能有一個(gè)public class定義。
(4)在定義類名稱時(shí),類的名稱首字母必須要大寫。這是命名規(guī)則。
java中的關(guān)鍵字:
(1)雖然goto、const在java中并沒有任何意義,卻也是保留字,他們與其他的關(guān)鍵字一樣,在程序中不能用來作為自定義的標(biāo)識(shí)符。
(2)true、false、null雖然也不是關(guān)鍵字,但是卻作為一個(gè)標(biāo)識(shí)類型,也不能直接使用。
(3)assert、enum關(guān)鍵字是java新增加的,assert是jdk1.4增加的,enum是jdk1.5后增加的
我們?cè)诰帉戭惖臅r(shí)候可以使用兩種方式定義類:
public class定義類:
class定義類:
如果一個(gè)類聲明的時(shí)候使用了public class進(jìn)行了聲明,則類名稱必須與文件名稱完全一致。
定義一個(gè)類(文件名稱為:HelloWorld.java)
public class HelloWorld{ //聲明一個(gè)類,類名稱的命名規(guī)范:所有單詞的首字母大寫
public static void main(String args[]){ //主方法
System.out.println("Hello World!!!"); //系統(tǒng)輸出,在屏幕上打印
}
};
public class HelloWorld { //聲明一個(gè)類,類名稱的命名規(guī)范:所有單詞首字母大寫
如果類的聲明使用了class的話,則類名稱可以與文件名稱不一致,但是執(zhí)行的時(shí)候,執(zhí)行的是生成后的名稱【HelloJava】。
定義一個(gè)類(文件名稱為:Hello.java)
class HelloJava{
public static void main(String args[]){
System.out.println("Hello Java!!!");
}
};
文件名稱為Hello.java,文件名稱與類名稱不一致,但是因?yàn)槭褂昧薱lass聲明所以,此時(shí)編譯不會(huì)產(chǎn)生任何錯(cuò)誤,但是生成之后的*.class文件的名稱是和class聲明的類名稱完全一致的:HelloJava.class
執(zhí)行的時(shí)候不能再執(zhí)行java Hello ,而是應(yīng)該執(zhí)行java HelloJava
在一個(gè)*.java的文件中,只能有一個(gè)public class的聲明,但是允許有多個(gè)class的聲明
public class Hello{
public static void main(String args[]){
System.out.println("Hello World!!!");
}
};
class A{};
class B{};
小結(jié):public class是公共類的意思,public 是訪問修飾符.java規(guī)定,一個(gè)類文件,public 修類的class只有一個(gè),并且類名必須和你新建的這個(gè)類文件名一樣,所以一個(gè)類文件中可以有多個(gè)類,但由public修飾的類只能有一個(gè).
//File name: HelloDemo.java package com.package1; public class Hello { } public class A{}; private class B{}; // protected class B{};
編譯出錯(cuò):
Error:(4, 8) java: class Hello is public, should be declared in a file named Hello.java
Error:(7, 8) java: class A is public, should be declared in a file named A.java
Error:(8, 9) java: modifier private not allowed here //Error:(8, 11) java: modifier protected not allowed here
編譯OK后,將生成三個(gè)class文件:A.class B.class HelloDemo.class
與C++的區(qū)別:
C++中public關(guān)鍵字不能修飾類,只能修飾成員變量,成員方法。
C++沒有包的概念,與之類似的是C++名字空間(比如:using namespace std)
包中,只有public修飾的類,才能在包外部包可見,否則只是包內(nèi)私有的類。
//File name: HelloDemo.java package com.package1; public class HelloDemo { public static void main_test(String[] args) { System.out.println("Enter ..."); } } class A{} class B{}
//File name: Main.java package com.company; public class Main { public static void main(String[] args) { System.out.println("Enter main ..."); com.package1.HelloDemo demo = new com.package1.HelloDemo(); com.package1.A a; //沒有import,也可通過全路徑訪問HelloDemo, java中的import與C++中的include就不是相似的東東。
Main.java編譯出錯(cuò):
Error:(8, 21) java: com.package1.A is not public in com.package1; cannot be accessed from outside package
如對(duì)本文有疑問,請(qǐng)?zhí)峤坏浇涣髡搲瑥V大熱心網(wǎng)友會(huì)為你解答??! 點(diǎn)擊進(jìn)入論壇