Einführung in die objektorientierte Programmierung

Aufg1 mit Sockets

Server

import java.net.*;
      import java.io.*;

class ZaehlerServer{
      int zaehler=0;
      
      public void incr(){
      zaehler++;
      //    return zaehler;
      }
      
      public void decr(){
      zaehler--;
      //    return zaehler;
      }
      
      public void betrieb(){
      try{
      ServerSocket serverso= new ServerSocket(1234);
      while (true) { 
      
      String kommando;
      Socket so=serverso.accept();
      BufferedReader vomClient = new BufferedReader(
      new InputStreamReader(so.getInputStream()));
      BufferedWriter zumClient= new BufferedWriter(
      new OutputStreamWriter(so.getOutputStream()));
      
      kommando= vomClient.readLine();
      if (kommando.equals("incr")) {
      incr();
      } // end of if
      else if (kommando.equals("decr")){
      decr();
      } // end of if-else
      
      zumClient.write(""+zaehler);
      
      zumClient.flush();
      so.close();
      
      } // end of while
      } 
      catch (IOException e){
      
      }
      }
      
      public static void main(String[] args){
      ZaehlerServer zs = new ZaehlerServer();
      zs.betrieb();
      }
      } 


Client

import java.awt.*;
   import java.awt.event.*;
   import java.net.*;
   import java.io.*;
/**
   *
   * Beschreibung
   *
   * @version 1.0 vom 05.07.2015
   * @author 
   */
public class Client extends Frame {
   // Anfang Attribute
   private Button button1 = new Button();
   private Button button2 = new Button();
   private TextField textField1 = new TextField();
   // Ende Attribute
   
   public Client(String title) { 
   // Frame-Initialisierung
   super(title);
   addWindowListener(new WindowAdapter() {
   public void windowClosing(WindowEvent evt) { dispose(); }
   });
   int frameWidth = 386; 
   int frameHeight = 171;
   setSize(frameWidth, frameHeight);
   Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
   int x = (d.width - getSize().width) / 2;
   int y = (d.height - getSize().height) / 2;
   setLocation(x, y);
   setResizable(false);
   Panel cp = new Panel(null);
   add(cp);
   // Anfang Komponenten
   
   button1.setBounds(48, 40, 57, 41);
   button1.setLabel("<");
   button1.addActionListener(new ActionListener() { 
   public void actionPerformed(ActionEvent evt) { 
   button1_ActionPerformed(evt);
   }
   });
   cp.add(button1);
   button2.setBounds(248, 40, 57, 41);
   button2.setLabel(">");
   button2.addActionListener(new ActionListener() { 
   public void actionPerformed(ActionEvent evt) { 
   button2_ActionPerformed(evt);
   }
   });
   cp.add(button2);
   textField1.setBounds(128, 40, 89, 41);
   cp.add(textField1);
   // Ende Komponenten
   
   setVisible(true);
   kommando("get");
   } // end of public Client
   
   // Anfang Methoden
   public void button1_ActionPerformed(ActionEvent evt) {
   kommando("decr");
   } // end of button1_ActionPerformed
   
   public void button2_ActionPerformed(ActionEvent evt) {
   kommando("incr");
   } // end of button2_ActionPerformed
   
   public void kommando(String befehl){
   try{
   String zaehler;
   Socket so= new Socket("localhost",1234);
   PrintWriter zumServer = new PrintWriter(
   so.getOutputStream(),true);
   
   BufferedReader vomServer = new BufferedReader(
   new InputStreamReader(so.getInputStream()));
   
   zumServer.println(befehl);
   
   zaehler= vomServer.readLine();
   textField1.setText(zaehler); 
   
   so.close(); 
   }
   catch (IOException e){
   textField1.setText("IO-Problem");
   }
   
   }
   
   // Ende Methoden
   
   public static void main(String[] args) {
   new Client("Client");
   } // end of main
   
   } // end of class Client
 

Aufgabe 3

Programm

sup1.m(h,  v2); // Aufruf #1
sup  1 ist vom Typ Super
Aufruf  m(Huhn, Vogel) 
Methode  m(Tier , Tier )
Ausgabe  1
 
sup2.m(v1,  k); // Aufruf #2
sup  2 ist vom Typ Super
Aufruf  m(Vogel, Karpfen) 
Methode  m(Tier , Fisch )
Überschrieben  von m(Tier , Fisch ) in Sub
Ausgabe  3
 
sup1.m(t1,  t2); // Aufruf #3
sup  1 ist vom Typ Super
Aufruf  m(Tier, Tier) 
Methode  m(Tier , Tier )
Ausgabe  1
 
sup1.m(v1,  k); // Aufruf #4
sup  1 ist vom Typ Super
Aufruf  m(Vogel, Karpfen) 
Methode  m(Tier , Fisch )
Ausgabe  2
 
sup1.m(v2,  f); // Aufruf #5
sup  1 ist vom Typ Super
Aufruf  m(Vogel, Fisch) 
Methode  m(Tier , Fisch )
Ausgabe  2
 
sup2.m(v1,  f); // Aufruf #6
sup  1 ist vom Typ Super
Aufruf  m(Vogel, Fisch) 
Methode  m(Tier , Fisch )
Überschrieben  von m(Tier , Fisch ) in Sub
Ausgabe  3