Hogyan közötti adatátvitelre osztályok
A szám a számológép, nem mutat egy üzenet doboz, de ez mutatja a számot a kijelzőn. A probléma akkor keletkezik - meg kell, hogy hozzáférjenek a területen osztály kalkulátor displayField eljárás actionPerformed (CalculatorEngine osztály). Ez úgy valósítható meg, ami egy osztály CalculatorEngine változó tárolja hivatkozás egy példányát egy tárgy kalkulátor.
A következő verzió, akkor adjunk hozzá CalculatorEngine osztály konstruktor. Ez a designer az egyik típusú argumentumot kalkulátor. Ne lepődj meg az érveket a módszerek lehetnek típusú osztályok, hogy már létrehozott!
JVM végrehajtja CalculatorEngine osztály konstruktor létrehozása során egy példány a memóriában. Osztály kalkulátor teremt CalculatorEngine, és továbbítja azt a kivitelező hivatkozást magát:
CalculatorEngine calcEngine = új CalculatorEngine (e);
Ez a két sor vettünk a következő példa: import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.JButton;
// konstruktor tárolja utalás a számológép ablakban
// változó az osztályban „szülő” CalculatorEngine (kalkulátor szülő)
ez a .PARENT = szülő;
public void actionPerformed (ActionEvent e)
// A forrás a jelenlegi cselekvési
JButton clickedButton = (JButton) e.getSource ();
// A jelenlegi szövege kiadási területen ( „display”)
Karakterlánc dispFieldText = parent.displayField.getText ();
// A gomb felirata
Karakterlánc clickedButtonLabel = clickedButton.getText ();
Amikor, hogy egy változót tartsa utalás egy példányát - egy osztály, ez a változó legyen, vagy a típus az osztály vagy típus egyik superclasses.
Bármilyen osztály Java származik az Object osztályban, és ha például Hal osztály - a jogutód az osztály Pet, akkor ezen sorok helyes:
Hal myFish = új Hal (); Pet myFish = új Hal ();
Object myFish = új Hal ();
Befejezés kalkulátor nézzük meg néhány szabályt (algoritmus) pokotorym kell működnie a kalkulátor:
1. Először is, a felhasználó belép a számokat először chisla.2. Ha a felhasználó rákattint néhány - egyes gombok számtani művelet +, -. / Vagy *. meg kell menteni az első számot, és a kiválasztott cselekvési területek az osztály száma és a törlés kalkulyatora.3 kijelzőn. Ezután a felhasználó belép a második számot, és prések knopkuravno. 4. átalakítani a karakterláncot numerikus kijelző dupla, hogy képes tárolni nagy tört számok. És végezze el a számtani műveletet a kiválasztott tevékenység és az első szám alatt a 2. lépésben.
5. eredményét kijelző 4. lépésében a számológép kijelző és sohraniteto értéket egy változó, hogy használták a 2. lépésben.
import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.JButton;
char selectedAction = ''; // +, -, /, vagy a *
kettős currentResult = 0;
// konstruktor tárolja utalás a számológép ablakban
// változó Egy Például
ez a .PARENT = szülő;
public void actionPerformed (ActionEvent e)
// A forrás akció
JButton clickedButton = (JButton) e.getSource (); Karakterlánc dispFieldText = parent.displayField.getText (); kettős displayValue = 0;
// A számos megjelenítési kalkulátor
// ha nem üres.
// A felkiáltójel - ez a tagadás művelete
Object src = e.getSource ();
// Minden kulcs számtani művelet
// emlékszik rá: +, -, /, *, vagy tartsa a jelenlegi száma
// változó currentResult, és világos kijelző
// be az új számot
ha (src == parent.buttonPlus)
selectedAction = '+'; currentResult = displayValue; parent.displayField.setText ( "");
> Else if (src == parent.buttonMinus)
selectedAction = '-'; currentResult = displayValue; parent.displayField.setText ( "");
> Else if (src == parent.buttonDivide)
selectedAction = '/'; currentResult = displayValue; parent.displayField.setText ( "");
> Else if (src == parent.buttonMultiply)
selectedAction = '*'; currentResult = displayValue; parent.displayField.setText ( "");
> Else if (src == parent.buttonEqual)
// Vegyünk egy matematikai művelet, attól
// a selectedAction, frissíti a változó currentResult
// és mutassa az eredményt a kijelzőn
// átalakítani az eredményt egy húr, hozzátéve,
// egy üres string, és jelenítse meg
> Else if (selectedAction == '-')
> Else if (selectedAction == '/')
> Else if (selectedAction == '*')
// Minden numerikus gombok csatolni a felirat
// gombot, hogy megjelenítse jelek
Karakterlánc clickedButtonLabel = clickedButton.getText ();
A végleges változat a számológép ablak jelenik meg kak--?
Osztály kalkulátor a következőket teszi:
Létrehozza és megjeleníti az összes ablak alkotóelemeit. CalculatorEngine létrehoz egy hallgató példány. CalculatorEngine küld egy linket is. Regisztrál egy figyelőt összes komponens, hogy hozzon létre az eseményt.
Itt a legújabb változata a kalkulátor osztály:
public class kalkulátor
// állapítsa és inicializálja ablak alkotóelemeit
JButton button0 = új JButton ( "0"); JButton button1 = új JButton ( "1"); JButton Button2 = új JButton ( "2");
JButton button3 = új JButton ( "3"); JButton 4-es gombot = új JButton ( "4"); JButton button5 = új JButton ( "5"); JButton button6 = új JButton ( "6"); JButton button7 = új JButton ( "7"); JButton button8 = új JButton ( "8"); JButton button9 = új JButton ( "9"); JButton buttonPoint = új JButton ( ""); JButton buttonEqual = új JButton ( "=");
JButton buttonPlus = új JButton ( "+"); JButton buttonMinus = új JButton ( "-"); JButton buttonDivide = új JButton ( "/"); JButton buttonMultiply = új JButton ( "*");
JPanel windowContent = új JPanel (); JTextField displayField = új JTextField (30);
// állítsa az elrendezés menedzsere a panel
BorderLayout bl = új BorderLayout ();
// Add a kijelző tetején
// Létrehozunk egy panelt GridLayout layout manager
// melyik lesz 12 gomb - 10 számjeggyel,
// „pont” gombot, és „egyenlő”
JPanel p1 = új JPanel ();
GridLayout gl = új GridLayout (4,3);
p1.setLayout (gl); p1.add (button1); p1.add (Button2); p1.add (button3); p1.add (4-es gombot); p1.add (button5); p1.add (button6); p1.add (button7); p1.add (button8); p1.add (button9); p1.add (button0);
P1 // hozzá panelt az ablak közepén
// Létrehozunk egy panelt GridLayout layout manager
// melyik lesz 4 gomb -
// plusz, mínusz, osztani és szorozni
JPanel p2 = új JPanel ();
GridLayout gl2 = új GridLayout (4,1);
p2.setLayout (GL2); p2.add (buttonPlus); p2.add (buttonMinus); p2.add (buttonMultiply); p2.add (buttonDivide);
P2 // Add a panel a jobb oldalon az ablak
// létrehozása egy keretet, és hozzáadjuk a tartalmát JFrame frame = új JFrame ( "számológép");
// Az ablak mérete úgy, hogy illik
// egy példányának létrehozása az esemény hallgató és
// regisztrálja azt az egyes gombok
CalculatorEngine calcEngine = új CalculatorEngine (e);
button0.addActionListener (calcEngine); button1.addActionListener (calcEngine); button2.addActionListener (calcEngine); button3.addActionListener (calcEngine); button4.addActionListener (calcEngine); button5.addActionListener (calcEngine); button6.addActionListener (calcEngine); button7.addActionListener (calcEngine); button8.addActionListener (calcEngine); button9.addActionListener (calcEngine);
buttonPoint.addActionListener (calcEngine); buttonPlus.addActionListener (calcEngine); buttonMinus.addActionListener (calcEngine); buttonDivide.addActionListener (calcEngine); buttonMultiply.addActionListener (calcEngine); buttonEqual.addActionListener (calcEngine);
public static void main (String [] args)
// egy példányának létrehozása a „kalkulátor” kalkulátor Calc = új kalkulátor ();
Most fordítsd a projekt fut az osztály kalkulátor. Úgy működik, ugyanúgy, mint az igazi számológépek. Gratulálunk! Ez az első program, amely hasznos lehet, hogy sok ember - adja meg a barátaidnak.
Hogy jobban megértsük, hogyan működik a program, azt javasoljuk, hogy megtanulják programok hibáinak. Kérjük, olvassa el függelék az Eclipse hibakereső, majd tovább olvasás
Forrás: Java programozási gyerekeknek a szülők és nagyszülők által Yakov Fain