Java-Prog - Schieberegister

Asgart
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
import java.io.*;

class Cpureg{
	private short reg[];		//Array für Bitwerte
	private Cpureg(){};			//Sperrung des Standartkonstruktors
	
	public int setBit (int index, short wert){	//Setzen eines Bits
		if( (index >= reg.length)||(wert!=0 && wert!=1) )
			return -1;
		else{
			reg[index]=wert;
			return 0;
		}
	}
	public void printArray (){					//Ausgabe des Inhaltes
		for(int i=reg.length-1; i>=0; i--)
			System.out.print(reg[i]);
	}
	public Cpureg(int len){						//Konstruktor mit Länge
		reg = new short [len];
		for(int i=0; i<len; i++)
			reg[i]=0;
	}
}

class Schiebreg extends Cpureg{
	public short rechtsshift (short wert){ // >> (alles um eins nach rechts, also von links)
		if(wert == 0 || wert == 1){
			[COLOR=red]Hier soll jetzt der Shift-Code kommen, aber ich weiß nicht, wie auf die Oberklasse mit dem private Objekt zugreifen kann, es soll laut meiner Aufgabe über die getArray funktion über die Oberklasse funktionieren[/COLOR]
			return 0;
		}
		else
			return -1;
	}
	public int linksshift (short wert){ // << (alles um eins nach rechts, also von rechts)
	/*Noch nicht ausprogrammiert*/
return 0;
	}
	public Schiebreg(short sreg[]){
		super(sreg.length);
		for(int i=0; i<sreg.length; i++)
			super.setBit(i,sreg[i]);
	}
}

class aufgabe5_2{
	public static void main(String args[]) throws IOException {
		BufferedReader in = new BufferedReader (new InputStreamReader (System.in));
		
		System.out.print("Bitte geben Sie die Laenge des Registers an: ");
		int laenge = Integer.parseInt(in.readLine());
		
		short regvek[] = new short[laenge];
		System.out.println("- Bitte geben Sie eine Bitkombination fuer das Registers an -");
		for(int i=0; i<laenge; i++){
			System.out.print("Bitte geben Sie das "+(i+1)+".Bit ein: ");
			regvek[i] = Short.parseShort(in.readLine());
		}
		
		Schiebreg schiebeobj=new Schiebreg(regvek);
		schiebeobj.printArray();
	}
}


Problem siehe Code, in der abgeleiteten Klasse

MfG
SirTwist
hab auch ein wenig geflucht über die Aufgabenstellung
aber da die variable private sein soll gibts da wohl nur die lösung dass du noch zwei methoden schreiben musst (getBit und getRegisterLength)
alternativ könnte man auch statt
private short reg[];
protected short reg[];
nehmen aber ist ja leider nicht gefragt
mal sehen vielleicht sagt der prof ja nächste woche noch was dazu

mfg SirTwist