Einführung in die objektorientierte Programmierung

Aufg1 von 2016

siehe http://mylinux.rmz.uni-lueneburg.de/fernuni/java/sitzung16_5.html


Aufg1 vom 2.6.17

import java.awt.*;
import java.awt.event.*;
public class Rechner extends Frame {
private BorderLayout borderLayout1 = new BorderLayout();
Taste p= new Taste("1",this);
Anzeige anzeige= new Anzeige();
Ziffernpanel zf= new Ziffernpanel(this);
Operatorpanel op= new Operatorpanel(this);
int op1=0;
int op2=0;
String operation="";
/*
* AWT-Komponenten fuer Eingabetextfeld, Zifferntasten, Operatortasten sowie
* Ziffernpanel und Operatorpanel deklarieren und soweit moeglich bereits
* zugehoerige Objekte erzeugen
*/
public Rechner() {
/* Ggf. lokale Variablen deklarieren */
/* Layout fuer Frame festlegen */
this.setLayout(borderLayout1);
this.setSize(150, 200);
this.setLocation(100, 100);
this.setBackground(Color.gray);
this.add(anzeige, BorderLayout.NORTH);
this.add(zf, BorderLayout.CENTER);
this.add(op, BorderLayout.SOUTH);
/* FlowLayout fuer Ziffern- und Operatorpanel setzen */
/* Zifferntasten ggf. erzeugen und in Ziffernpanel einfuegen */
/* Operatortasten ggf. erzeugen und in Operatorpanel einfuegen */
/* Objekte in Frame plazieren */
// this.add(...);
/* ... */
}
/* ... */
public static void main(String argv[]) {
Rechner rechner = new Rechner();
rechner.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
rechner.setVisible(true);
}
}
 
import java.awt.*;
class  Anzeige extends TextField{
   String value;
   Anzeige(){
   super();
   }
   }
import java.awt.*;
class Ziffernpanel extends Panel{
   Ziffernpanel(Rechner akt_rechner){
   FlowLayout flowLayout1 = new FlowLayout();
   Taste[] arr_taste= new Taste[10];
   this.setLayout(flowLayout1);
   for (int i=0;i<10 ;i++ ) {
   arr_taste[i]= new Taste(Integer.toString(i),akt_rechner);
   this.add(arr_taste[i]);
   arr_taste[i].setVisible(true);
   } // end of for
   }
   }
import java.awt.*;
class Operatorpanel extends Panel{
   Operatorpanel(Rechner akt_rechner){
   FlowLayout flowLayout1 = new FlowLayout();
   Taste[] arr_taste= new Taste[4];
   this.setLayout(flowLayout1);
   arr_taste[0]= new Taste("+",akt_rechner);
   arr_taste[1]= new Taste("-",akt_rechner);
   arr_taste[2]= new Taste("*",akt_rechner);
   arr_taste[3]= new Taste("=",akt_rechner);
   
   for (int i=0;i<4 ;i++ ) {
   this.add(arr_taste[i]);
   arr_taste[i].setVisible(true);
   } // end of for
   }
   }
import java.awt.*;
 import java.awt.event.*;
class Taste extends Button{
   String value;
   Taste(String zeichen, Rechner akt_rechner) {
   super(zeichen);
   this.value=zeichen;
   this.addActionListener(new java.awt.event.ActionListener() {
   public void actionPerformed(ActionEvent e) {
   if (value=="+" || value=="-" || value=="*") {
   akt_rechner.op1= Integer.parseInt(akt_rechner.anzeige.getText());
   akt_rechner.anzeige.setText("");
   akt_rechner.operation=value;
   } // end of if
   else if (value=="="){
   akt_rechner.op2= Integer.parseInt(akt_rechner.anzeige.getText());
   int erg=0;
   if (akt_rechner.operation=="+") {
   erg= akt_rechner.op1+akt_rechner.op2;
   } // end of if
   if (akt_rechner.operation=="-") {
   erg= akt_rechner.op1-akt_rechner.op2;
   } // end of if
   if (akt_rechner.operation=="*") {
   erg= akt_rechner.op1*akt_rechner.op2;
   } // end of if
   akt_rechner.anzeige.setText(""+erg);
   
   } // end of if-else
   else {
   akt_rechner.anzeige.setText(akt_rechner.anzeige.getText()+value   );
   } // end of if-else
   
   }
   });
   }
   }
 

NK12 Aufg 2

public class Main {
 public static void main(String[] args) {
 Tier ente = new Ente();
 Tier baer = new Baer();
 ente.gibLaut();
 baer.gibLaut();
 }
 }
abstract class Tier{
String tierart;

abstract public void gibLaut();
}
class Ente extends Tier{
Ente(){
tierart="Ente";
}

public void gibLaut(){
System.out.println("Nak! Nak!");
};
} class Baer extends Tier{
Baer(){
tierart="Baer";
}

public void gibLaut(){
System.out.println("Brumm!");
};
}