ハンズオン脳1:クラスはカスタムのコンストラクタを提供する場合、システムがもはやデフォルトコンストラクタを提供するために引き起こさないでしょう。Fooの呼び出しがパラメータを増やす必要がありOBJ1 =新しいはFoo()。
ハンズオン脳2:静的初期化ブロックは一度だけ実行されます。あなたがオブジェクトのサブタイプを作成すると、それは親の型の静的初期化ブロックの実装につながります。
「奇妙な」機能「の整数:
のみ-128と127の間の整数オブジェクト・クラスは、(整数)の後に、キャッシュを行う100パッキングの両側==(整数)100、ヒープメモリ内の同じオブジェクトへの実際のポイント、(整数)129 ==(整数)129比較が偽であるので、参照型の後に梱包、それは、異なるオブジェクトのヒープを指し、キャッシングを行いません。
ワークショップ:新しいコースを追加します()
パッケージdenglujiemian。
インポート持つjava.awt。*;
輸入java.awt.eventの*。;
輸入java.io.BufferedWriter。
輸入java.io.FileWriter;
インポートにjava.io.IOException;
インポート持つjava.awt。*;
輸入java.awt.eventの*。;
輸入java.io.BufferedWriter。
輸入java.io.FileWriter;
インポートにjava.io.IOException;
インポートするjavax.swing。*;
パブリッククラスclassinformationはJFrameのがのActionListener {実装延び
プライベート静的最終長いのserialVersionUID = 1Lと、
パブリック静的文字列のSOS [] [] =新しいString [1000] [3]。
プライベートJLabelのアドレス=新しいJLabelの( "上课地点");
民間のJButton ADD =新しいJButtonの( "添加");
プライベートJLabelのCNAME =新しいJLabelの( "课程名称");
プライベートJLabelのTEA =新しいJLabelの( "课程教师");
プライベートJTextFieldのjtxtName =新しいJTextFieldの();
民間のJTextFieldのjtxt =新しいJTextFieldの();
民間のJTextFieldのjtxttea =新しいJTextFieldの();
民間のJPanel JP =新しいJPanelの(); //面板
プライベートint型F2 = 0;
プライベート静的int型の合計= 0;
公共ボイド名(){
CNAME.setBounds(20、10、80、26)。
jp.add(CNAME)。
}
公共ボイド教師(){
TEA.setBounds(20、60、80、26)。
jp.add(TEA)。
}
公共ボイド追加(){
ADD.setBounds(60、180、200,26)。
jp.add(ADD)。
ADD.addActionListener(新規のActionListener(){
公共ボイドのactionPerformed(のActionEvent E){
int型F = 0;
int型F5 = 0;
CHAR CH [] =新しいCHAR [2];
文字列N = jtxtName.getText();列P = jtxttea.getText();文字列D = jtxt.getText();文字列T = "";
(d.length()> = 2){もし
CH [0] = d.charAt(0);
をch [1] = d.charAt(1);
T =新しい文字列(CH);
}
(i = 0、int型、iが合計<; I ++の)のために{
IF(n.equals(SOS [I] [0])){
。F5 = 1;
JOptionPane.showMessageDialog(ヌル、 "繰り返しコース");
}
}
IF(F5 == 1){}
他{
F ++;
}
IF( p.equals( "王")|| p.equals( "リューLijia")|| p.equals( "ダン")|| p.equals( "王ホイ")|| p.equals( "ヤンZiguang") ){
F ++;
}
そうでなければ{
JOptionPane.showMessageDialog(NULL、 "いない教師");
}
IF(t.equals( "イルを教える")|| t.equals( "教育")|| t.equals(「二")|| t.equals("教える3つの教育")){
F ++;
}
他{
JOptionPane.showMessageDialog(ヌル、"間違った場所にあります「);
}
であれば(F == 3){
SOS [和] [0] = N。
SOS [SUM] = P [1];
SOS [SUM] [2] = D;
SUM ++;
試み{
のWriteFile();
}キャッチ(IOExceptionをE1){
// TODO自動生成されたブロックキャッチ
e1.printStackTrace();
}
JOptionPane.showMessageDialog(NULL、 "正常に追加");
}
}
});
}
公共ボイドRegistrationE(){
falseにADD.setVisible();
this.setBounds(1000 200、300、250); //設定画面が上に表示され画面上の位置
}
パブリックclassinformation(){
jp.setLayout(NULL); //フルラップ
jp.setBackground(Color.ORANGE);
address.setBounds(20、80、26 110である); //セットテキストデータ30を残し、120ダウン
jp.add(アドレス); //ショー
教師();名();
追加();
jtxtName.setBounds(80,10,180,30); //垂直方向(位置)の周りにテキストボックス8010を設定幅30長さ180
JP .add(jtxtName);
jtxtName.addActionListener(この);
jtxt.setBounds(80,110,180,30);
jp.add(jtxt);
jtxt.addActionListener(この);
jtxttea.setBounds(80,60,180,30);
jp.add (jtxttea);
jtxttea.addActionListener(この);
this.add(JP);
this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
this.setResizable(偽の);
this.setBounds(800、200、300、250); //セット画面は、画面位置に表示され
、(真の)this.setVisible
}
公共ボイド空(){
jtxt.setText( "");
jtxtName.setText( "");
jtxttea.setText( "");
}
公共ボイドのactionPerformed(のActionEvent E){
IF(e.getSource()== jtxtName){
jtxttea.requestFocus()。
}
}
パブリック静的ボイドのWriteFile()のIOException {スロー
てFileWriter fw_o =新しいてFileWriter( "C:\\ユーザー\\ 26624 \\デスクトップ\\ classinformation.txt")。
BufferedWriterの幅BW =新しいBufferedWriterの(fw_o)。
文字列s =新しいString();
int型私= 0;
{(私は++; iは、合計<I = 0)のための
"+ SOS [I] [0] + " "+ SOS [I] [1] +":""のSystem.out.println((I + 1)+ + SOS [I] [2])。
bw.write((I + 1)+ ":
bw.newLine();
}
bw.close()。
}
パブリック静的無効メイン(文字列[] args){
classinformation L1 =新しいclassinformation()。
l1.setTitle( "课程添加");
}
}
プライベート静的最終長いのserialVersionUID = 1Lと、
パブリック静的文字列のSOS [] [] =新しいString [1000] [3]。
プライベートJLabelのアドレス=新しいJLabelの( "上课地点");
民間のJButton ADD =新しいJButtonの( "添加");
プライベートJLabelのCNAME =新しいJLabelの( "课程名称");
プライベートJLabelのTEA =新しいJLabelの( "课程教师");
プライベートJTextFieldのjtxtName =新しいJTextFieldの();
民間のJTextFieldのjtxt =新しいJTextFieldの();
民間のJTextFieldのjtxttea =新しいJTextFieldの();
民間のJPanel JP =新しいJPanelの(); //面板
プライベートint型F2 = 0;
プライベート静的int型の合計= 0;
公共ボイド名(){
CNAME.setBounds(20、10、80、26)。
jp.add(CNAME)。
}
公共ボイド教師(){
TEA.setBounds(20、60、80、26)。
jp.add(TEA)。
}
公共ボイド追加(){
ADD.setBounds(60、180、200,26)。
jp.add(ADD)。
ADD.addActionListener(新規のActionListener(){
公共ボイドのactionPerformed(のActionEvent E){
int型F = 0;
int型F5 = 0;
CHAR CH [] =新しいCHAR [2];
文字列N = jtxtName.getText();列P = jtxttea.getText();文字列D = jtxt.getText();文字列T = "";
(d.length()> = 2){もし
CH [0] = d.charAt(0);
をch [1] = d.charAt(1);
T =新しい文字列(CH);
}
(i = 0、int型、iが合計<; I ++の)のために{
IF(n.equals(SOS [I] [0])){
。F5 = 1;
JOptionPane.showMessageDialog(ヌル、 "繰り返しコース");
}
}
IF(F5 == 1){}
他{
F ++;
}
IF( p.equals( "王")|| p.equals( "リューLijia")|| p.equals( "ダン")|| p.equals( "王ホイ")|| p.equals( "ヤンZiguang") ){
F ++;
}
そうでなければ{
JOptionPane.showMessageDialog(NULL、 "いない教師");
}
IF(t.equals( "イルを教える")|| t.equals( "教育")|| t.equals(「二")|| t.equals("教える3つの教育")){
F ++;
}
他{
JOptionPane.showMessageDialog(ヌル、"間違った場所にあります「);
}
であれば(F == 3){
SOS [和] [0] = N。
SOS [SUM] = P [1];
SOS [SUM] [2] = D;
SUM ++;
試み{
のWriteFile();
}キャッチ(IOExceptionをE1){
// TODO自動生成されたブロックキャッチ
e1.printStackTrace();
}
JOptionPane.showMessageDialog(NULL、 "正常に追加");
}
}
});
}
公共ボイドRegistrationE(){
falseにADD.setVisible();
this.setBounds(1000 200、300、250); //設定画面が上に表示され画面上の位置
}
パブリックclassinformation(){
jp.setLayout(NULL); //フルラップ
jp.setBackground(Color.ORANGE);
address.setBounds(20、80、26 110である); //セットテキストデータ30を残し、120ダウン
jp.add(アドレス); //ショー
教師();名();
追加();
jtxtName.setBounds(80,10,180,30); //垂直方向(位置)の周りにテキストボックス8010を設定幅30長さ180
JP .add(jtxtName);
jtxtName.addActionListener(この);
jtxt.setBounds(80,110,180,30);
jp.add(jtxt);
jtxt.addActionListener(この);
jtxttea.setBounds(80,60,180,30);
jp.add (jtxttea);
jtxttea.addActionListener(この);
this.add(JP);
this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
this.setResizable(偽の);
this.setBounds(800、200、300、250); //セット画面は、画面位置に表示され
、(真の)this.setVisible
}
公共ボイド空(){
jtxt.setText( "");
jtxtName.setText( "");
jtxttea.setText( "");
}
公共ボイドのactionPerformed(のActionEvent E){
IF(e.getSource()== jtxtName){
jtxttea.requestFocus()。
}
}
パブリック静的ボイドのWriteFile()のIOException {スロー
てFileWriter fw_o =新しいてFileWriter( "C:\\ユーザー\\ 26624 \\デスクトップ\\ classinformation.txt")。
BufferedWriterの幅BW =新しいBufferedWriterの(fw_o)。
文字列s =新しいString();
int型私= 0;
{(私は++; iは、合計<I = 0)のための
"+ SOS [I] [0] + " "+ SOS [I] [1] +":""のSystem.out.println((I + 1)+ + SOS [I] [2])。
bw.write((I + 1)+ ":
bw.newLine();
}
bw.close()。
}
パブリック静的無効メイン(文字列[] args){
classinformation L1 =新しいclassinformation()。
l1.setTitle( "课程添加");
}
}