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