# Auf Methoden anderer Klassen zugreifen?



## Flobsen (30. Apr 2009)

Nabend,

ich versuche grade aus übungstechnischen Gründen ein triviales Programm zu schreiben, bei der ich eine Methode einer anderen Klasse verwenden möchte.

Hier mal die 2 Klassen (mir gehts nicht darum ob es komplett ist/sinnvoll ist o.ä.):




> public class Zeitumrechnung
> {
> //---Attribute
> double tage;
> ...



sowie



> public class Tage
> {
> public static void main (String [] args)
> {
> ...



Mein Problem ist, dass der Compiler das TageinStunden nicht findet. Wie bekomme ich die Methode in die Klasse Tage?

Danke schonmal


----------



## Lexi (30. Apr 2009)

```
tagestunden = new Zeitumrechnung();
```

Lässt sich das überhaupt compilieren ? Dort weist du einer Variable vom Typ double ein Object vom Typ Zeitumrechnung zu, das kann eigentlich nicht funktionieren.


----------



## Flobsen (30. Apr 2009)

Nee, sorry da hab ich noch was rumgespielt und vergessen vor dem posten wieder zu entfernen. Hatte das ursprünglich ohne void mit ner return Anweisung.
Aber es ging dort auch nicht :>


----------



## Schandro (30. Apr 2009)

```
ergebnis = umwandlung_ref.TageinStunden;
```
1.) Methoden ruft man auf, indem man "(" hinter den Methodennamen schreibt, dann alle Paramter mit "," getrennt reintut und zum Schluss wieder ")" schreibt..
2.) Methoden (und Varaiblennamen) schreibt man im camelCase, d.h. der 1. Buchstabe ist klein


----------



## icarus2 (30. Apr 2009)

Das hilft dir vielleicht etwas:

[Java]

public class A {


	public static void main(String[] args) {
		B b = new B();

		System.out.println(b.addition(5, 10));

	}

}

class B {

	public int addition(int a, int b){
		return a + b;
	}

}
[/Java]


----------



## Flobsen (30. Apr 2009)

Ja das Grundkonzept in der einfachst möglichen Darstellung hilft mir wirklich fürs erste.
Danke euch


----------



## icarus2 (1. Mai 2009)

Bei einigen Methoden macht es auch Sinn sie als 'static' zu definieren. Sie sind dann nicht an ein Objekt, sondern an eine Klasse gebunden. Der Aufruf erfolgt dann über Klassenname.Methodenname()

z.B. so:

[Java]
public class A {


    public static void main(String[] args) {

        System.out.println(B.addition(25,5));

    }

}

class B {

    public static int addition(int a, int b){
        return a + b;
    }

}
[/Java]


----------



## faetzminator (1. Mai 2009)

... wobei da Zeile 5 völlig unnötig ist


----------



## icarus2 (1. Mai 2009)

faetzminator hat gesagt.:


> ... wobei da Zeile 5 völlig unnötig ist



Hast recht ;-)

Copy Paste und dann vergessen rauszunehmen... naja, ist jetzt behoben.


----------

