Mtehoden auslagern

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Ich habe folgende Klasse geschrieben die auch funkioniert :

Code:
public static void main(String[] args) {
        // Objects construction
		Point point=new Point("Punkt",10,20,30,40);
		Linie linie=new Linie("Linie",20,5,10);
		Sphere sphere=new Sphere("Kugel",30,3,1,"gelb");
		Triangle triangle=new Triangle("Dreieck",40,50,-25,-40,"pink");
		
		
		
         // Consctrucion of an ArrayList
		ArrayList c = new ArrayList();
		
		c.add(point);		
		c.add(linie);
		c.add(sphere);
		c.add(triangle);
		
		
		
		

				
		
	boolean ende=false;
	    // Printing of the "Objektverwaltung" with Switch Construct
		System.out.println("Die Objekteverwaltung von Grafiken");
		System.out.println("=================================="+
				           "==================================");
		System.out.println("\nHauptmenue");
		System.out.println("\n(1) Neues Objekte hinzufuegen");
		System.out.println("(2) Objekte anzeigen");
		System.out.println("(3) Objekte suchen");
		System.out.println("(4) Objekt loeschen");
		System.out.println("(5) Objekte filtern");
		System.out.println("\n(0) Programm beenden");
		try{
			System.out.println("\nAuswahl: ");
			Scanner eingabe=new Scanner(System.in);
			int auswahl=eingabe.nextInt();
			switch(auswahl){
			
            //	Fall 1 Legt neues Objekt an 
			
			case 1: System.out.println("\nNeues Objekt anlegen");
                    String b;
                    
			        try{
			        	// Serialisiert Objekt und legt ArrayList und Eingabe in Datei
			        	FileOutputStream fos = new FileOutputStream("test.txt");
						ObjectOutputStream oos = new ObjectOutputStream(fos);
						
					/*	InputStreamReader in=new InputStreamReader(System.in);
					    BufferedReader puffer=new BufferedReader(in);
					    
					    b=puffer.readLine();
					    
					    if(b!="Exit"){
					    oos.writeObject(b);
					    					    
				        System.out.println("Liste enthält vorher "+c.size()+" Elemente");
				        // fügt  Eingabe in ArrayList
				        c.add(b);
					    	    
		        		System.out.println("Neues Element angelegt jetzt "+c.size()+" Elemente");
		        	*/
		        		// Schreibt ArrayList in Datei
		        		
		        		oos.writeObject((ArrayList) c);
		        		System.out.println(c);
					    						
					    System.out.println("ArrayList wurde in Datei gespeichert");
					    oos.close();
					    }
			        
			        
			        
			catch(IOException e){
				e.printStackTrace();
			}
					
			break;
             //	 Fall 2 Liest aus ArrayList
			case 2:  System.out.println("Objekte anzeigen");
			       	 String daten;       	        
	        
	        	 try{
	        		 FileInputStream in=new FileInputStream("test.txt");
	        		 ObjectInputStream in1=new ObjectInputStream(in);
	        		 // String auslesen
	        	/*	 FileReader read1=new FileReader("C:\\test.txt");
	        		 BufferedReader read=new BufferedReader(read1);
	        		 daten=read.readLine();
	        	     System.out.println(daten.toString());
	        			 
	        		 
	        		 read.close();
	        		*/
	        		
	        		 c=(ArrayList)in1.readObject();
	        		 System.out.println(c.toString());
	        		 in1.close();
	        		 
	        	 }	 
	        catch(FileNotFoundException e){
	        	System.out.println("Datei nicht gefunden");
	        }
	        break;
			// Fall 3 Objekt anhand ID suchen	
			case 3: Iterator it1=c.iterator();
			        while(it1.hasNext()){
			        	it1.next();
			        	
			        	if(sphere.getID()==30){
			        		c.remove(sphere);
			        		
			        	
			        		System.out.println("Das Objekt " +sphere+" wurde gefunden");
			        			
			        	}
			        	else{
			        		
			        		System.out.println("Das Objekt mit der ID wurde nicht gefunden");
			        	}
			        }
				break;
				
			// Fall 4  Objekte Anhand ID in der ArrayList löschen
			case 4:    
				       
				       Iterator it=c.iterator();
			           while (it.hasNext()){	
				       Object o=it.next();
			           
				       if(point.getID()==10){
					   c.remove(o);
										
			           
					System.out.println("Objekt mit der ID "+point.getID()+" wurde gelöscht,"
					                  +" Restlist ist:"+c);
				       }
				       else{
				    	   c.remove(o);
				    	   System.out.println("Das Objekt mit der ID wurde nicht gefunden");
				      }
			           }
				       
				            
			break;
			// Fall 5 Objekte nach Namen filtern
			
			case 5: Iterator it2=c.iterator();
			        while(it2.hasNext()){
			        	Object o=it2.next();
			        	if(c.contains(linie)){
			        		c.remove(o);
			        		System.out.println("Die Liste enthält ein "+c.get(0));
			        	}
			        		else{
			        			System.out.println("Das Objekt ist nicht vorhanden");
			        	}
			        }
				
			// Fall 0 Exit Program
			case 0: System.out.println("\nProgramm wurde beendet");
			ende=true;
			break;
			default: System.out.println("\nEingabe existiert nicht");
		
			
			}}
		catch(Exception e){
			System.out.println("");
		}

		
	}}
Was ich nun allerdings möchte der Übersichthablber ist das die switch cases zum Beispiel case 5: in einer Funkion ausgelagert wird das ich also nur noch die Funkion im case 5 aufrufe. Allerdings weiß ich nicht genau wie ich die Methode schreiebn soll damit ich sie aufrufen kann kann mir da jemand helfen.
 
S

SlaterB

Gast
Code:
public class Test
{
    public Test()
    {
        int k = 3;
        switch (k)
        {
            case 2:
                doSomething();
                break;
            case 3:
                System.out.println("3");
                break;

        }
    }

    private void doSomething()
    {
        System.out.println("2");
    }

    public static void main(String[] args)
        throws Exception
    {
        new Test();
    }
}
 
G

Guest

Gast
Kann ich die Methoden dann einfach in eine neue Klasse schreiben und die main Klasse davon erben lassen damit ich die Methoden nutzen kann?
 

ARadauer

Top Contributor
erben wäre in diesem fall nicht richtig

entweder machst du die methoden static oder du instanzierst ein objekt deiner startklasse....

allgemein, möchte ich anmerken, das dein programm mit objektorientierung gar nichts zu tun hat. ist vielleicht auch so gewollt, falls du doch aber was in die richtung machen möchtest, würd ich mir die grundlagen der objektorientierung ansehen....
 
G

Guest

Gast
Mein Programm hat insgesamt 4 Klassen jede Klasse ist ein Grafikobjekt und das wird doch instanziert oder nicht? ganz oben in der main Klasse erzeuge ich doch von allen Klassen ein Objekt mit Attributen die mein Konstruktor bereitstellt.
 
S

SlaterB

Gast
du musst deine Frage deutlicher stellen,
du hast also 4 Klassen und 4 Objekte, nun gut,

Methoden kannst in beliebige Klassen schreiben und aufrufen,
eqal wer von wen erbt oder nicht
 
G

Guest

Gast
Ja mein Problem ist dieses Ich möchte die Methoden in diese Klasse schreiben :

Code:
package Objektverwaltung;

import java.util.*;

public class Objekteverwaltung {
        
        
		protected  int ID;
		protected  String name;	
				
		
}


Nun weiß ich nicht wie ich an die Sache genau ran gehn soll dieser code soll in eine Methode gepackt werden :

Code:
Iterator it2=c.iterator();
			        while(it2.hasNext()){
			        	Object o=it2.next();
			        	if(c.contains(linie)){
			        		c.remove(o);
			        		System.out.println("Die Liste enthält ein "+c.get(0));
			        	}
			        		else{
			        			System.out.println("Das Objekt ist nicht vorhanden");
			        	}
			        }


Nun stellt sich mir die Frage wie ich die Methode formulieren soll und zweitens in dieser sind weder die Objekte noch die ArrayListe bekannt wie kann man das dann alles zusammen hestellen ?? Das ist das Problem was ich habe. :)
 
S

SlaterB

Gast
einen Namen musst du dir schon selber ausdenken,
fehlende Objeke als Parameter übergeben,
ansonsten einfach den Code kopieren und

public void x(Parameter) {

// Code

}

drumherum
 
G

Guest

Gast
So hab das schonmal

Code:
public void suchen(){
			Iterator it1=c.iterator();
	        while(it1.hasNext()){
	        	it1.next();
	        	
	        	if(sphere.getID()==30){
	        		c.remove(sphere);
	        		
	        	
	        		System.out.println("Das Objekt " +sphere+" wurde gefunden");
	        			
	        	}
	        	else{
	        		
	        		System.out.println("Das Objekt mit der ID wurde nicht gefunden");
	        	}
	        }

Was für Parameter bräuchte ich denn jetzt? einmal das Objekte Sphere und die ArrayList?
 
S

SlaterB

Gast
so funktioniert programmieren nicht,
wenn es dir nicht möglich ist, Java-Fehlermeldungen wie 'sphere nicht gefunden' zu lesen und in die Schlussfolgerung 'ich muss also sphere als Parameter übergeben' umzuwandeln, dann eben nicht,

aber ich werde das hier nicht mit dir zusammen machen
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Methoden in großen Klassen gruppieren oder auslagern? Java Basics - Anfänger-Themen 10
T Auslagern von Methoden bei einem JFrame Java Basics - Anfänger-Themen 6
S Funktion in Klasse auslagern Java Basics - Anfänger-Themen 4
N Methode auslagern mal wieder Java Basics - Anfänger-Themen 8
R KeyListener auslagern Java Basics - Anfänger-Themen 3
J Threads Prozess in Thread auslagern Java Basics - Anfänger-Themen 2
B Erste Schritte JFrame in Klasse auslagern Java Basics - Anfänger-Themen 4
K Erste Schritte jpanel in einer klasse auslagern Java Basics - Anfänger-Themen 3
K Exceptions auslagern Java Basics - Anfänger-Themen 15
K Vererbung Methoden in klassen auslagern und in mehreren Klassen verfügbar machen Java Basics - Anfänger-Themen 8
A Objekte in eigene Klasse auslagern Java Basics - Anfänger-Themen 2
D Programmteile in Klassen auslagern Java Basics - Anfänger-Themen 2
M MVC - gui auslagern Java Basics - Anfänger-Themen 2
K JPanel auslagern Java Basics - Anfänger-Themen 9
M Vererbung Auslagern von UI AbstractAction? Java Basics - Anfänger-Themen 2
D Codezeilen "auslagern" Java Basics - Anfänger-Themen 4
T ActionListener auslagern Java Basics - Anfänger-Themen 14
E OOP Methoden auslagern Java Basics - Anfänger-Themen 9
F Klasse bzw Objekt in eigenen Thread auslagern Java Basics - Anfänger-Themen 3
W Eventhandling auslagern Java Basics - Anfänger-Themen 4
M Java Objekte auf Platte auslagern. Java Basics - Anfänger-Themen 8
S Bild aus paint() Methode auslagern Java Basics - Anfänger-Themen 14
MrMilti einzelne Methoden einer Klasse auslagern Java Basics - Anfänger-Themen 6
K SQL Statement formatieren + Swingzeug auslagern Java Basics - Anfänger-Themen 18
I Listenerklassen in externe Dateien auslagern? Java Basics - Anfänger-Themen 7
S Icons in Icon-Odner auslagern Java Basics - Anfänger-Themen 2
S auslagern von Methoden in andere Klasse Java Basics - Anfänger-Themen 4
T Operation in Thread auslagern? Java Basics - Anfänger-Themen 7
N Mehrfach von Klassen benutze Methode in Interface auslagern? Java Basics - Anfänger-Themen 3
P Thread auslagern Java Basics - Anfänger-Themen 4
G Daten auslagern? Java Basics - Anfänger-Themen 7
P class in neuen Thread auslagern Java Basics - Anfänger-Themen 3
G Zeichenklasse auslagern Java Basics - Anfänger-Themen 5
T classen auslagern Java Basics - Anfänger-Themen 16
F FileChooser auslagern Java Basics - Anfänger-Themen 2
N Methode auslagern Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben