多注了些控制流程,希望我的注釋能夠?qū)δ阌袔椭?/p>
成都創(chuàng)新互聯(lián)公司專注于吉陽網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供吉陽營銷型網(wǎng)站建設(shè),吉陽網(wǎng)站制作、吉陽網(wǎng)頁設(shè)計、吉陽網(wǎng)站官網(wǎng)定制、微信小程序定制開發(fā)服務(wù),打造吉陽網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供吉陽網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GoodLucky extends JFrame implements ActionListener{
JTextField tf = new JTextField(); //實例化一個文本域
//設(shè)置兩個按鈕
JButton b1 = new JButton("開始");
JButton b2 = new JButton("停止");
boolean isGo = false;
//構(gòu)造函數(shù)
public GoodLucky(){
b1.setActionCommand("start");//在開始按鈕上設(shè)置一個動作監(jiān)聽 start
JPanel p = new JPanel(); //實例化一個可視化容器
//將兩個按鈕添加到可視化容器上面,用add方法
p.add(b1);
p.add(b2);
//在兩個按鈕上增加監(jiān)聽的屬性,自動調(diào)用下面的監(jiān)聽處理方法actionPerformed(ActionEvent e),如果要代碼有更好的可讀性,可用內(nèi)部類實現(xiàn)動作
//監(jiān)聽處理。
b1.addActionListener(this);
b2.addActionListener(this);
//將停止按鈕設(shè)置為不可編輯(即不可按的狀態(tài))
b2.setEnabled(false);
this.getContentPane().add(tf,"North"); //將上面的文本域放在面板的北方,也就是上面(上北下南左西右東)
this.getContentPane().add(p,"South"); //將可視化容器pannel放在南邊,也就是下面
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //設(shè)置用戶在此窗體上發(fā)起 "close" 時默認執(zhí)行的操作,參數(shù)EXIT_ON_CLOSE是使用 System exit 方法退出應(yīng)用程序。僅在應(yīng)用程序中使用
this.setSize(300,200); //設(shè)置面板大小,寬和高
this.setLocation(300,300); //設(shè)置面板剛開始的出現(xiàn)的位置
Cursor cu = new Cursor(Cursor.HAND_CURSOR); //用指定名稱創(chuàng)建一個新的定制光標(biāo)對象,參數(shù)表示手狀光標(biāo)類型
this.setCursor(cu); //為指定的光標(biāo)設(shè)置光標(biāo)圖像,即設(shè)置光標(biāo)圖像為上面所創(chuàng)建的手狀光標(biāo)類型
this.setVisible(true); //將面板可視化設(shè)置為true,即可視,如果為false,即程序運行時面板會隱藏
tf.setText("welcome you! "); //設(shè)置面板的標(biāo)題為歡迎
this.go(); //調(diào)用go方法
}
public void go(){
while(true){ //這里是死循環(huán),也就是說用戶不點擊停止按鈕的話他一直循環(huán)出現(xiàn)隨機數(shù),直到用戶點擊停止按鈕循環(huán)才能推出,具體流程在actionPerformed方法中控制。
if(isGo == true){ //上面所定義的isGo的初始值為false,所以程序第一次到此會跳過
String s = ""; //設(shè)置空字符串
for(int j = 1; j = 7;j++){ //產(chǎn)生7個隨機數(shù)
int i = (int)(Math.random() * 36) + 1;//每個隨機數(shù)產(chǎn)生方式,這里定義靈活,可以自由定義隨機數(shù)產(chǎn)生的方式
if(i 10){
s = s + " 0" + i; //如果產(chǎn)生的隨機數(shù)小于10的話做處理:這里就牽扯到一個重要的概念,簡單敘述一下:
/*
當(dāng)一個字符串與一個整型數(shù)項相加的意思是連接,上面的s = s + " 0" + i的意思是字符串s鏈接0再連接整型i值,而不會導(dǎo)致0和整型的i相加,
產(chǎn)生的效果為s0i,由于s為空字符串(上面定義過的),所以當(dāng)i小于零時,在個位數(shù)前面加上0,比如產(chǎn)生的隨機數(shù)i為7的話,顯示效果為 07.
*/
}else{
s = s + " " + i; //如果產(chǎn)生的隨機數(shù)比10打的話,那么加上空格顯示,即數(shù)字和數(shù)字之間有個空格
}
//以上循環(huán)循環(huán)七次,以保證能出現(xiàn)7個隨機數(shù)
}
tf.setText(s); //將產(chǎn)生的隨機數(shù)全部顯示在文本域上,用文本域?qū)ο髏f調(diào)用它的設(shè)置文本的方法setText(String)實現(xiàn)。
}
//以下為線程延遲
try{
Thread.sleep(10); //線程類同步方法sleep,睡眠方法,括號里的單位為ms。
}catch(java.lang.InterruptedException e){
e.printStackTrace(); //異常捕獲,不用多說。
}
}
}
//以下是上面設(shè)置的事件監(jiān)聽的具體處理辦法,即監(jiān)聽時間處理方法,自動調(diào)用
public void actionPerformed(ActionEvent e){ //傳入一個動作事件的參數(shù)e
String s = e.getActionCommand(); //設(shè)置字符串s來存儲獲得動作監(jiān)聽,上面的start
/*
以下這個條件語句塊的作用為:用戶點擊開始后(捕獲start,用方法getActionCommand()),將命令觸發(fā)設(shè)置為true,從而執(zhí)行上面的go方法中的循環(huán)體(因為循環(huán)體中要求isGo參數(shù)為true,而初始為false)。
執(zhí)行循環(huán)快產(chǎn)生隨機數(shù),并將開始按鈕不可編輯化,而用戶只可以使用停止按鈕去停止。如果用戶按下停止時,也就是沒有傳入?yún)?shù)“start”的時候,
執(zhí)行else語句塊中的語句,isGo設(shè)置為false,將不執(zhí)行上面go中的循環(huán)語句塊,從而停止產(chǎn)生隨機數(shù),并顯示,并且把開始按鈕設(shè)置為可用,而把
停止按鈕設(shè)置為不可用,等待用戶按下開始再去開始新一輪循環(huán)產(chǎn)生隨機數(shù)。
*/
if(s.equals("start")){ //如果捕獲到start,也就是用戶觸發(fā)了動作監(jiān)聽器,那么下面處理
isGo = true; //設(shè)置isGo為true
b1.setEnabled(false); //將開始按鈕設(shè)置為不可用
b2.setEnabled(true); //將停止按鈕設(shè)置為可用
}else{
isGo = false; //將isGo設(shè)置為false,isGo為循環(huán)標(biāo)志位
b2.setEnabled(false); //設(shè)置停止按鈕為不可用(注意看是b2,b2是停止按鈕)
b1.setEnabled(true); //設(shè)置開始按鈕為可用
}
}
public static void main(String[] args){
new GoodLucky(); //產(chǎn)生類的實例,執(zhí)行方法
}
}
圣誕平安夜了,祝朋友開心快樂!
我看動力節(jié)點的java基礎(chǔ)大全301集教中的三種注釋方法:
1、單行注釋?? //注釋的內(nèi)容
2、多行注釋??/*......*/
3、/**......*/,這種方式和第二種方式相似。這種格式是為了便于javadoc程序自動生成文檔。
下面介紹一下Javadoc的標(biāo)記:
特別聲明:
(1)javadoc針對public類生成注釋文檔
(2)javadoc只能在public、protected修飾的方法或者屬性之上
(3)javadoc注釋的格式化:前導(dǎo)*號和HTML標(biāo)簽
(4)javadoc注釋要僅靠在類、屬性、方法之前
下面主要舉例說明第三種注釋的應(yīng)用:
(1)首先編寫.java文件
(2)在命令行中執(zhí)行以下dos命令:
javadoc *.java //根據(jù)相應(yīng)的Java源代碼及其說明語句生成HTML文檔
//javadoc標(biāo)記:是@開頭的,對javadoc而言,特殊的標(biāo)記。
(3)在當(dāng)前目錄下就會產(chǎn)生doc文件夾,里面有一系列的.html文件
附上代碼:
[java]?view plain?copy
span?style="font-size:18px;"*/
/**javadoc注釋的內(nèi)容
*/
public?class?Hello{
/**屬性上的注釋*/
public?String?name;
/**這是main方法,是程序的入口
*@param?args?用戶輸入?yún)?shù)
*/
public?static?void?main(String[]?args){
System.out.println("Hello?World!");
f1();
}
/**?這是第1個方法,其作用是...*/
public?static?void?f1(){
System.out.println("f1()!");
}
}/span
[java]?view plain?copy
span?style="font-size:18px;"import?java.io.IOException;
/**javadoc注釋內(nèi)容
*@since?1.0
*@version?1.1
*@author?Blue?Jey
*br鏈接到另一個文檔{@link?Hello},就這些
*see?Hello
*/
public?class?HelloWorld{
/**非public,protected?屬性上的注釋不生成*/
public?String?name;
/**這是main方法,是程序的入口
*@param?args?用戶輸入的參數(shù),是數(shù)組
*@throws?IOException?main方法io異常
*/
public?static?void?main(String?args[])?throws?IOException{
System.out.println("hello?World!");
f1();
f2(1);
}
/**這是第一個方法,其作用是....
*@deprecated?從版本1.2開始,不再建議使用此方法
*/
public?static?void?f1(){
System.out.println("fl()!");
}
/**這是第二個方法,其作用是....
*@return?返回是否OK
*@param?i?輸入?yún)?shù)i
*@see?Hello
*@throws?IOException?io異常
*/
public?static?String?f2(int?i)throws?IOException{
System.out.println("f1()!");
return?"OK";
}
}?/span
注意:
如果源文件中有用到@version,@author標(biāo)記,則在執(zhí)行javadoc命令時,要加-version?-author
javadoc?-version?-author?-d?doc?*.java
(其中用-version用于提取源文件中的版本信息?-author用于提取源文件中的作者信息)
注釋是用來給開發(fā)者或者是軟件后續(xù)的維護者來看的。一般是用來描述這一段代碼或者是程序做了些什么樣的事情。實現(xiàn)了哪些功能,java里面注釋代碼,可以分為行注釋和塊注釋,方法注釋等。
行注釋就是在需要注釋的代碼前加 //
塊注釋則是用 /* 和 */ 把文本段落框起來即可
好像和另外一個一樣,貼一下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GoodLucky extends JFrame implements ActionListener{
JTextField tf = new JTextField(); //實例化一個文本域
//設(shè)置兩個按鈕
JButton b1 = new JButton("開始");
JButton b2 = new JButton("停止");
boolean isGo = false;
//構(gòu)造函數(shù)
public GoodLucky(){
b1.setActionCommand("start");//在開始按鈕上設(shè)置一個動作監(jiān)聽 start
JPanel p = new JPanel(); //實例化一個可視化容器
//將兩個按鈕添加到可視化容器上面,用add方法
p.add(b1);
p.add(b2);
//在兩個按鈕上增加監(jiān)聽的屬性,自動調(diào)用下面的監(jiān)聽處理方法actionPerformed(ActionEvent e),如果要代碼有更好的可讀性,可用內(nèi)部類實現(xiàn)動作
//監(jiān)聽處理。
b1.addActionListener(this);
b2.addActionListener(this);
//將停止按鈕設(shè)置為不可編輯(即不可按的狀態(tài))
b2.setEnabled(false);
this.getContentPane().add(tf,"North"); //將上面的文本域放在面板的北方,也就是上面(上北下南左西右東)
this.getContentPane().add(p,"South"); //將可視化容器pannel放在南邊,也就是下面
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //設(shè)置用戶在此窗體上發(fā)起 "close" 時默認執(zhí)行的操作,參數(shù)EXIT_ON_CLOSE是使用 System exit 方法退出應(yīng)用程序。僅在應(yīng)用程序中使用
this.setSize(300,200); //設(shè)置面板大小,寬和高
this.setLocation(300,300); //設(shè)置面板剛開始的出現(xiàn)的位置
Cursor cu = new Cursor(Cursor.HAND_CURSOR); //用指定名稱創(chuàng)建一個新的定制光標(biāo)對象,參數(shù)表示手狀光標(biāo)類型
this.setCursor(cu); //為指定的光標(biāo)設(shè)置光標(biāo)圖像,即設(shè)置光標(biāo)圖像為上面所創(chuàng)建的手狀光標(biāo)類型
this.setVisible(true); //將面板可視化設(shè)置為true,即可視,如果為false,即程序運行時面板會隱藏
tf.setText("welcome you! "); //設(shè)置面板的標(biāo)題為歡迎
this.go(); //調(diào)用go方法
}
public void go(){
while(true){ //這里是死循環(huán),也就是說用戶不點擊停止按鈕的話他一直循環(huán)出現(xiàn)隨機數(shù),直到用戶點擊停止按鈕循環(huán)才能推出,具體流程在actionPerformed方法中控制。
if(isGo == true){ //上面所定義的isGo的初始值為false,所以程序第一次到此會跳過
String s = ""; //設(shè)置空字符串
for(int j = 1; j = 7;j++){ //產(chǎn)生7個隨機數(shù)
int i = (int)(Math.random() * 36) + 1;//每個隨機數(shù)產(chǎn)生方式,這里定義靈活,可以自由定義隨機數(shù)產(chǎn)生的方式
if(i 10){
s = s + " 0" + i; //如果產(chǎn)生的隨機數(shù)小于10的話做處理:這里就牽扯到一個重要的概念,簡單敘述一下:
/*
當(dāng)一個字符串與一個整型數(shù)項相加的意思是連接,上面的s = s + " 0" + i的意思是字符串s鏈接0再連接整型i值,而不會導(dǎo)致0和整型的i相加,
產(chǎn)生的效果為s0i,由于s為空字符串(上面定義過的),所以當(dāng)i小于零時,在個位數(shù)前面加上0,比如產(chǎn)生的隨機數(shù)i為7的話,顯示效果為 07.
*/
}else{
s = s + " " + i; //如果產(chǎn)生的隨機數(shù)比10打的話,那么加上空格顯示,即數(shù)字和數(shù)字之間有個空格
}
//以上循環(huán)循環(huán)七次,以保證能出現(xiàn)7個隨機數(shù)
}
tf.setText(s); //將產(chǎn)生的隨機數(shù)全部顯示在文本域上,用文本域?qū)ο髏f調(diào)用它的設(shè)置文本的方法setText(String)實現(xiàn)。
}
//以下為線程延遲
try{
Thread.sleep(10); //線程類同步方法sleep,睡眠方法,括號里的單位為ms。
}catch(java.lang.InterruptedException e){
e.printStackTrace(); //異常捕獲,不用多說。
}
}
}
//以下是上面設(shè)置的事件監(jiān)聽的具體處理辦法,即監(jiān)聽時間處理方法,自動調(diào)用
public void actionPerformed(ActionEvent e){ //傳入一個動作事件的參數(shù)e
String s = e.getActionCommand(); //設(shè)置字符串s來存儲獲得動作監(jiān)聽,上面的start
/*
以下這個條件語句塊的作用為:用戶點擊開始后(捕獲start,用方法getActionCommand()),將命令觸發(fā)設(shè)置為true,從而執(zhí)行上面的go方法中的循環(huán)體(因為循環(huán)體中要求isGo參數(shù)為true,而初始為false)。
執(zhí)行循環(huán)快產(chǎn)生隨機數(shù),并將開始按鈕不可編輯化,而用戶只可以使用停止按鈕去停止。如果用戶按下停止時,也就是沒有傳入?yún)?shù)“start”的時候,
執(zhí)行else語句塊中的語句,isGo設(shè)置為false,將不執(zhí)行上面go中的循環(huán)語句塊,從而停止產(chǎn)生隨機數(shù),并顯示,并且把開始按鈕設(shè)置為可用,而把
停止按鈕設(shè)置為不可用,等待用戶按下開始再去開始新一輪循環(huán)產(chǎn)生隨機數(shù)。
*/
if(s.equals("start")){ //如果捕獲到start,也就是用戶觸發(fā)了動作監(jiān)聽器,那么下面處理
isGo = true; //設(shè)置isGo為true
b1.setEnabled(false); //將開始按鈕設(shè)置為不可用
b2.setEnabled(true); //將停止按鈕設(shè)置為可用
}else{
isGo = false; //將isGo設(shè)置為false,isGo為循環(huán)標(biāo)志位
b2.setEnabled(false); //設(shè)置停止按鈕為不可用(注意看是b2,b2是停止按鈕)
b1.setEnabled(true); //設(shè)置開始按鈕為可用
}
}
public static void main(String[] args){
new GoodLucky(); //產(chǎn)生類的實例,執(zhí)行方法
}
}
1、【文檔注釋】是寫在類或者方法的上面的。
文檔注釋可以用eclipse導(dǎo)出chm格式的幫助文檔,拿給其他人用時,方便他人理解。文檔注釋被調(diào)用的方法,當(dāng)鼠標(biāo)移到上面時提醒注釋內(nèi)容。
使用文檔注釋時,需要在開始的?/**?之后,第一行或幾行是關(guān)于類、變量和方法的主要描述。
之后,可以包含一個或多個何種各樣的@?標(biāo)簽。每一個@標(biāo)簽必須在一個新行的開始或者在一行的開始緊跟星號(*)。多個相同類型的標(biāo)簽應(yīng)該放成一組。
2、【多行注釋】注釋的也是方法或類,言下之意就是一次性的將程序中的多行代碼注釋掉,但多行注釋的內(nèi)容不能用于生成一個開發(fā)者文檔。
3、【多行注釋與文檔注釋的區(qū)別】多行注釋的內(nèi)容不能用于生成一個開發(fā)者文檔,而文檔注釋 的內(nèi)容可以生產(chǎn)一個開發(fā)者文檔。
擴展資料
java常用的文檔注釋標(biāo)簽
1、@author:標(biāo)識一個類的作者
實例:?@author description
2、@deprecated:指名一個過期的類或成員
實例:?@deprecated description
3、@exception:標(biāo)志一個類拋出的異常
實例:@exception exception-name explanation
4、{@inheritDoc}:從直接父類繼承的注釋
實例:Inherits a comment from the immediate surperclass.
5、{@link}:插入一個到另一個主題的鏈接
實例:{@link name text}
6、{@linkplain}:插入一個到另一個主題的鏈接,但是該鏈接顯示純文本字體
實例:Inserts an in-line link to another topic.
7、@param:說明一個方法的參數(shù)
實例:@param parameter-name explanation
8、@return:說明返回值類型
實例:@return explanation
9、@see:指定一個到另一個主題的鏈接
實例:@see anchor
10、@serial:說明一個序列化屬性
實例:@serial description
參考資料:百度百科-java注釋
1、單行(single-line)--短注釋://……
單獨行注釋:在代碼中單起一行注釋,
注釋前最好有一行空行,并與其后的代碼具有一樣的縮進層級。如果單行無法完成,則應(yīng)采用塊注釋。
注釋格式:/*
注釋內(nèi)容
*/
行頭注釋:在代碼行的開頭進行注釋。主要為了使該行代碼失去意義。
注釋格式://
注釋內(nèi)容
行尾注釋:尾端(trailing)--極短的注釋,在代碼行的行尾進行注釋。一般與代碼行后空8(至少4)個格,所有注釋必須對齊。
注釋格式:代碼
+
8(至少4)個空格
+
//
注釋內(nèi)容
2、塊(block)--塊注釋:/*……*/
注釋若干行,通常用于提供文件、方法、數(shù)據(jù)結(jié)構(gòu)等的意義與用途的說明,或者算法的描述。一般位于一個文件或者一個方法的前面,起到引導(dǎo)的作用,也可以根據(jù)需要放在合適的位置。這種域注釋不會出現(xiàn)在HTML報告中。注釋格式通常寫成:
/*
*
注釋內(nèi)容
*/
3、文檔注釋:/**……*/
注釋若干行,并寫入javadoc文檔。每個文檔注釋都會被置于注釋定界符
/**......*/
...