java中類的顯示初始化會(huì)在首次被“主動(dòng)使用”時(shí)執(zhí)行初始化,為類(靜態(tài))變量賦予正確的初始值。在Java代碼中,一個(gè)正確的初始值是通過(guò)類變量初始化語(yǔ)句或者靜態(tài)初始化塊給出的。而我們這里所說(shuō)的主動(dòng)使用 包括:
為呼圖壁等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及呼圖壁網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站建設(shè)、網(wǎng)站制作、呼圖壁網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
1. 創(chuàng)建類的實(shí)例
2. 調(diào)用類的靜態(tài)方法
3. 使用類的非常量靜態(tài)字段
4. 調(diào)用Java API中的某些反射方法
5. 初始化某個(gè)類的子類
6. 含有main()方法的類啟動(dòng)時(shí)
初始化一個(gè)類包括兩個(gè)步驟:
1、 如果類存在直接父類的話,且直接父類還沒(méi)有被初始化,則先初始化其直接父類
2、 如果類存在一個(gè)初始化方法,就執(zhí)行此方法
注:初始化接口并不需要初始化它的父接口。
我們知道一個(gè)類(class)要被使用必須經(jīng)過(guò)裝載,連接,初始化這樣的過(guò)程。下面先對(duì)這三階段做一個(gè)簡(jiǎn)單的描述,之后會(huì)結(jié)合一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明java中類的初始化過(guò)程。
在裝載階段,類裝載器(Bootstrap ClassLoader 或者用戶自定義的ClassLoader) 把編譯形成的class文件載入內(nèi)存,創(chuàng)建類相關(guān)的Class對(duì)象,這個(gè)Class對(duì)象封裝了我們要使用的類的類型信息。
連接階段又可以分為三個(gè)子步驟:驗(yàn)證、準(zhǔn)備和解析。
驗(yàn)證就是要確保java類型數(shù)據(jù)格式 的正確性,并適于JVM使用。
準(zhǔn)備階段,JVM為靜態(tài)變量分配內(nèi)存空間,并設(shè)置默認(rèn)值,注意,這里是設(shè)置默認(rèn)值,比如說(shuō)int型的變量會(huì)被賦予默認(rèn)值0 。在這個(gè)階段,JVM可能還會(huì)為一些數(shù)據(jù)結(jié)構(gòu)分配內(nèi)存,目的 是提高運(yùn)行程序的性能,比如說(shuō)方法表。
解析過(guò)程就是在類型的常量池中尋找類、接口、字段和方法的符號(hào)引用,把這些符號(hào)引用替換成直接引用。這個(gè)階段可以被推遲到初始化之后,當(dāng)程序運(yùn)行的過(guò)程中真正使用某個(gè)符號(hào)引用的時(shí)候 再去解析它。
類會(huì)在首次被“主動(dòng)使用”時(shí)執(zhí)行初始化,為類(靜態(tài))變量賦予正確的初始值。在Java代碼中,一個(gè)正確的初始值是通過(guò)類變量初始化語(yǔ)句或者靜態(tài)初始化塊給出的。而我們這里所說(shuō)的主動(dòng)使用 包括:
1. 創(chuàng)建類的實(shí)例
2. 調(diào)用類的靜態(tài)方法
3. 使用類的非常量靜態(tài)字段
4. 調(diào)用Java API中的某些反射方法
5. 初始化某個(gè)類的子類
6. 含有main()方法的類啟動(dòng)時(shí)
初始化一個(gè)類包括兩個(gè)步驟:
1、 如果類存在直接父類的話,且直接父類還沒(méi)有被初始化,則先初始化其直接父類
2、 如果類存在一個(gè)初始化方法,就執(zhí)行此方法
注:初始化接口并不需要初始化它的父接口。
追問(wèn)
你這不是初始化實(shí)例么
做了一個(gè)多小時(shí),終于編出來(lái)了,樓上寫(xiě)的程序有很多問(wèn)題而且不完整。樓主的要求沒(méi)寫(xiě)明要操作數(shù)據(jù)庫(kù),所以就初始用戶ID和密碼都設(shè)置成123。密碼正確后出現(xiàn)正在登陸的提示框,等登陸成功后,就關(guān)閉提示,退出程序。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Test extends JFrame implements ActionListener,Runnable {
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JTextField jtUserID = new JTextField();
JLabel jLabel3 = new JLabel();
JPasswordField jpUsePwd = new JPasswordField();
JButton jbEnter = new JButton();
JButton jbExit = new JButton();
//設(shè)置登陸的用戶名和密碼
String userID="123";
String userPwd="123";
public Test() {
super("用戶登陸界面");
try {
// 設(shè)置窗體的大小、位置、可見(jiàn)性
jbInit();
this.setVisible(true);
this.setSize(410, 300);
this.addWindowListener(new WindowAdapter() { // 清空內(nèi)存
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
// 初始化各控件,設(shè)置控件位置,將控件添加到面板上
getContentPane().setLayout(null);
jtUserID.setText("");
jtUserID.setBounds(new Rectangle(182, 50, 141, 22));
jLabel2.setText("用戶名:");
jLabel2.setBounds(new Rectangle(83, 50, 78, 24));
jLabel3.setText("密 碼:");
jLabel3.setBounds(new Rectangle(81, 91, 78, 24));
jpUsePwd.setBounds(new Rectangle(182, 92, 140, 27));
jbEnter.setBounds(new Rectangle(122, 197, 90, 25));
jbEnter.setText("登陸");
jbExit.setBounds(new Rectangle(217, 197, 90, 25));
jbExit.setText("退出");
this.getContentPane().add(jLabel2);
this.getContentPane().add(jLabel3);
this.getContentPane().add(jLabel1);
this.getContentPane().add(jtUserID);
this.getContentPane().add(jpUsePwd);
this.getContentPane().add(jbEnter);
this.getContentPane().add(jbExit);
jbEnter.addActionListener(this);
jbExit.addActionListener(this);
}
//多線程控制登陸信息框
public void run(){
try{
this.setVisible(false);
JOptionPane.showMessageDialog(null, "正在登陸中....");
Thread.sleep(3000);
this.dispose();
}catch(Exception e){
System.out.println(e);
}
}
//當(dāng)點(diǎn)擊按鈕的時(shí)候觸發(fā)下面的方法
public void actionPerformed(ActionEvent e) {
try{
String command=e.getActionCommand();
if (command.equals("退出")) {
System.exit(0);
} else {
// 管理員登陸功能實(shí)現(xiàn)
if (jtUserID.getText().equals("")
|| new String(jpUsePwd.getPassword()).equals("")) {
JOptionPane.showMessageDialog(null, "請(qǐng)輸入完整數(shù)據(jù)");
} else {
if (jtUserID.getText().equals(userID)
new String(jpUsePwd.getPassword())
.equals(userPwd)) {
Thread t=new Thread(this);
t.start();
}
else {
JOptionPane.showMessageDialog(null, "帳號(hào)或者密碼錯(cuò)誤");
jtUserID.setText("");
jpUsePwd.setText("");
}
}
}
}catch(Exception ex){
System.out.println(ex);
}
}
public static void main(String[] args) {
new Test();
}
}
你問(wèn)的是包含項(xiàng)目的多少吧?
Choice自動(dòng)管理項(xiàng)目,不用干預(yù)。只有唯一的構(gòu)造函數(shù)Choice(),必須通過(guò).addItem(...)添加。
簡(jiǎn)便方法是,將所有項(xiàng)構(gòu)造一個(gè)數(shù)組:
Choice itemList=new Choice();
String[] items=new String[]{"第一項(xiàng)","第二項(xiàng)",...};
for(int i=0;iitems.length;i++){
itemList.addItem(items[i]);
}
新聞名稱:java代碼中初始化控件 java初始化數(shù)據(jù)怎么寫(xiě)
當(dāng)前URL:http://muchs.cn/article32/ddcgspc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、網(wǎng)站排名、服務(wù)器托管、做網(wǎng)站、外貿(mào)建站、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)