Script Java
Script Java Script Java
6.1 Instanzmethode versus Klassenmethode 6 Instanz-/Klassenmethoden ItemEvent, ItemListener Visibility Modifiers In diesem Kapitel wird die Unterteilung von Methoden in Instanz- und Klassenmethoden vollzogen. Es wird ebenfalls auf die Sichtbarkeitsattribuierung mit Hilfe der sogenannten visibility modifiers eingegangen. Das ganze Kapitel basiert auf einem Beispielprogramm, welches in zwei Versionen vorliegt. 6.1 Instanzmethode versus Klassenmethode Das Programm „Random Sentences - Version 1“ implementiert wiederum ein Spiel, bei welchem der Computer die durch den Benutzer eingegebenen Satzbausteine zufällig zu ganzen Sätzen kombiniert. import java.util.*; import java.awt.*; import java.awt.event.*; public class Rndm { static Random rndm = new Random(); } static public int nextInt(int n) {return Math.abs(rndm.nextInt())%n;} public class UserFrame extends Frame implements ActionListener{ private Label sentence; private TextField subjectField, verbField, objectField; private List subjectList, verbList, objectList; private void place(Component comp,int x,int y,int width,int height) { comp.setBounds(x, y, width, height); add(comp); } public UserFrame() { setTitle("Sentences"); 146
6.1 Instanzmethode versus Klassenmethode } setLayout(null); setSize(560,420); Button button; place(sentence=new Label(),30,30,460,20); place(button=new Button("SHOW"),490,30,40,20); button.addActionListener(this); place(subjectField=new TextField(),30,60,160,20); subjectField.addActionListener(this); place(verbField=new TextField(),200,60,160,20); verbField.addActionListener(this); place(objectField=new TextField(),370,60,160,20); objectField.addActionListener(this); place(subjectList=new List(),30,90,160,300); place(verbList=new List(),200,90,160,300); place(objectList=new List(),370,90,160,300); setVisible(true); sentence.setText("Enter phrases and press RETURN!"); subjectField.requestFocus(); private void update(List list, TextField textField) { if (!textField.getText().equals("")) { list.addItem(textField.getText()); textField.setText(""); } } } public void actionPerformed(ActionEvent event){ if (event.getSource() instanceof TextField) { //RETURN update(subjectList, subjectField); update(verbList, verbField); update(objectList, objectField); subjectField.requestFocus(); } else if (event.getActionCommand().equals("SHOW")) { sentence.setText( subjectList.getItem(Rndm.nextInt(subjectList.getItemCount()))+" "+ verbList.getItem(Rndm.nextInt(verbList.getItemCount()))+" "+ objectList.getItem(Rndm.nextInt(objectList.getItemCount()))); } } public class TestProg { public static void main(String[] args) {new UserFrame();} } 6.1.1 Zum Programm Die Application bittet den Benutzer, Sätze einzugeben, wobei Subjekt, Verb und Objekt getrennt voneinander in die separaten TextFields geschrieben werden müssen. Durch Drücken der RETURN-Taste werden die Elemente aus den Textfeldern in die 147
- Seite 95 und 96: 3.1 int, boolean und Programmstrukt
- Seite 97 und 98: 3.1 int, boolean und Programmstrukt
- Seite 99 und 100: 3.1 int, boolean und Programmstrukt
- Seite 101 und 102: 3.1 int, boolean und Programmstrukt
- Seite 103 und 104: 3.1 int, boolean und Programmstrukt
- Seite 105 und 106: 3.2 Unicode und char } } textArea.a
- Seite 107 und 108: 3.2 Unicode und char Farben sind in
- Seite 109 und 110: 3.2 Unicode und char for (int i=0;i
- Seite 111 und 112: 3.3 Zusammenfassung Beschreibung We
- Seite 113 und 114: 4.1 Strings 4Strings Komplexe Daten
- Seite 115 und 116: 4.2 Einfache versus komplexe Datent
- Seite 117 und 118: 4.2 Einfache versus komplexe Datent
- Seite 119 und 120: 4.3 Type Casting Will man aber zwei
- Seite 121 und 122: 4.3 Type Casting 4.3.1.3 Datentyp b
- Seite 123 und 124: 4.4 Zusammenfassung 4.4 Zusammenfas
- Seite 125 und 126: 5.1 ActionEvent und ActionListener
- Seite 127 und 128: 5.1 ActionEvent und ActionListener
- Seite 129 und 130: 5.1 ActionEvent und ActionListener
- Seite 131 und 132: 5.1 ActionEvent und ActionListener
- Seite 133 und 134: 5.1 ActionEvent und ActionListener
- Seite 135 und 136: 5.1 ActionEvent und ActionListener
- Seite 137 und 138: 5.1 ActionEvent und ActionListener
- Seite 139 und 140: 5.1 ActionEvent und ActionListener
- Seite 141 und 142: 5.1 ActionEvent und ActionListener
- Seite 143 und 144: 5.1 ActionEvent und ActionListener
- Seite 145: 5.2 Zusammenfassung ♦ Damit eintr
- Seite 149 und 150: 6.1 Instanzmethode versus Klassenme
- Seite 151 und 152: 6.1 Instanzmethode versus Klassenme
- Seite 153 und 154: 6.1 Instanzmethode versus Klassenme
- Seite 155 und 156: 6.2 Visiblity Modifiers ClassMethod
- Seite 157 und 158: 6.2 Visiblity Modifiers } subjectLi
- Seite 159 und 160: 6.2 Visiblity Modifiers Eine Instan
- Seite 161 und 162: 6.2 Visiblity Modifiers 6.2.2 Synta
- Seite 163 und 164: 7.1 Calendar 7Method Overloading Ar
- Seite 165 und 166: 7.1 Calendar } text.requestFocus();
- Seite 167 und 168: 7.1 Calendar In den restlichen Zeil
- Seite 169 und 170: 7.1 Calendar Die Klassenmethode get
- Seite 171 und 172: 7.2 Graphics public void setTime(in
- Seite 173 und 174: 7.2 Graphics in der Methode paint()
- Seite 175 und 176: 7.2 Graphics zunehmen, muss man als
- Seite 177 und 178: 7.3 Arrays g.drawLine(x+r,y+r, x+r+
- Seite 179 und 180: 7.3 Arrays } } "one","two","three",
- Seite 181 und 182: 7.3 Arrays message.setText(time.toF
- Seite 183 und 184: 7.3 Arrays if (minutes%15==0) gepr
- Seite 185 und 186: 7.4 Exception Handling ArrayAcess I
- Seite 187 und 188: 7.4 Exception Handling Abbildung 7-
- Seite 189 und 190: 7.4 Exception Handling Handling Ins
- Seite 191 und 192: 7.4 Exception Handling Wenn es im P
- Seite 193 und 194: 7.4 Exception Handling public void
- Seite 195 und 196: 7.4 Exception Handling Schlüsselwo
6.1 Instanzmethode versus Klassenmethode<br />
6<br />
Instanz-/Klassenmethoden<br />
ItemEvent, ItemListener<br />
Visibility Modifiers<br />
In diesem Kapitel wird die Unterteilung von Methoden in Instanz- und Klassenmethoden<br />
vollzogen. Es wird ebenfalls auf die Sichtbarkeitsattribuierung mit Hilfe der sogenannten<br />
visibility modifiers eingegangen. Das ganze Kapitel basiert auf einem Beispielprogramm,<br />
welches in zwei Versionen vorliegt.<br />
6.1 Instanzmethode versus Klassenmethode<br />
Das Programm „Random Sentences - Version 1“ implementiert wiederum ein Spiel, bei<br />
welchem der Computer die durch den Benutzer eingegebenen Satzbausteine zufällig zu<br />
ganzen Sätzen kombiniert.<br />
import java.util.*;<br />
import java.awt.*;<br />
import java.awt.event.*;<br />
public class Rndm {<br />
static Random rndm = new Random();<br />
}<br />
static public int nextInt(int n) {return Math.abs(rndm.nextInt())%n;}<br />
public class UserFrame extends Frame implements ActionListener{<br />
private Label sentence;<br />
private TextField subjectField, verbField, objectField;<br />
private List subjectList, verbList, objectList;<br />
private void place(Component comp,int x,int y,int width,int height) {<br />
comp.setBounds(x, y, width, height);<br />
add(comp);<br />
}<br />
public UserFrame() {<br />
setTitle("Sentences");<br />
146