# Klasse und Objekte



## canyakan95 (18. Mai 2015)

Gegeben ist eine Klasse und ich soll sie mit 3 Methoden vervollständigen.
Vorgegeben war als erstes 

```
public class IntVal
{
private int i;
public IntVal( int i ) { this.i = i; }
public int get() { return i; }
}
```

Mein aufgaben waren : 
Vervollständigen Sie die Klasse Value um die folgenden zusätzlichen Methoden:
• public int get() liefert den in einem Value-Objekt abgelegten int-Wert.
• public void set( int i ) setzt den in einem Value-Objekt abgelegten int-Wert auf
den Wert des Parameters i.
• public void inc() erhöht den in einem Value-Objekt abgelegten int-Wert um den
Wert 1.

und ich habe folgendes hinbekommen

```
public class Value
{
    private IntVal v;
    
    public Value( int i)
    {
        v= new IntVal(i);
    }
    public int get()
    {
        return v.get();
    }
    public void set(int i)
    {
        v= new IntVal(i);
    }
}
```

Nur weis ich jetzt leider nicht wie ich  die methode set und inc machen soll. 
Hoffe das ihr mir ein bsp zeigen könnt damit ich das versuche 
Mfg


----------



## javampir (18. Mai 2015)

die klasse IntVal darfst du nicht verändern oder? dann ist die idee deiner set-methode in ordnung. inc würde ich so angehen: wert von v holen, eins dazuzählen und dann das aus deiner set übernehmen


----------



## canyakan95 (18. Mai 2015)

Ja wie holt man den wert von v .. Kannse mir das vllt zeigen.. ?? 
Ne die klasse intval darf ich nicht verändern.
Habe probleme den wert v zu holen und zu ändern.
Mit freundlichen Grüßen


----------



## javampir (18. Mai 2015)

...
den wert holst du mit get ?!?


----------



## canyakan95 (18. Mai 2015)

Ja
v.get()+1; 
Habe ich versucht wollte aber net klappen??


----------



## javampir (18. Mai 2015)

mit diesem ausdruck bekommst du schon den richtigen wert. jetzt musst du das v nur noch klar machen:

```
set(v.get() + 1
```
und schon hast dus
javampir


----------



## canyakan95 (20. Mai 2015)

Hallo ich soll eine weitere Aufgabe dazu lösen und zwar existiert die KLasse Storage und die ist vorgegeben. 

```
public class Storage
{
    private Value[]ints;
    public void set ( int i , int v) 
    {
        if(!(i<ints.length&&i>ints.length))
        {
            for(int j=0;j<ints.length;j++)
            {
                ints[j]=v;
            }
        }
    }
}
```

Die set methode sollte ich programmieren und die aufgabenstellung war: public void set( int i, int v ) setzt den Wert des Value-Objekts am Index i
auf den Wert von v, falls i im gültigen Indexbereich des Feldes liegt.

nur bekomme ich immer die fehlermeldung: int cannot be converted to value..
Wisst ihr was ich falsch gemacht habe . Die fehlermeldung bekomme ich bei " ints[j]=v;"
Mfg


----------



## X5-599 (21. Mai 2015)

"v" ist ein int. Dein ints Array hält aber Value Objekte. EDIT: Also brauchst du ints_.set(v); EDIT 2: Natürlich geht das nur, wenn auch bereits ein Value Objekt an diesem Index existiert.
Weiter: Warum die for Schleife? Es soll doch nur der Value für "v" an den Index von "i" geschrieben werden (wenn "i" im gültigen Indexbereich)...
Auch: Die if Bedingung wird meiner Meinung nach immer erfüllt sein, da es keinen Index gibt der gleichzeitig kleiner und grösser als die Array Länge ist._


----------

