Konstrukor usw.

Status
Nicht offen für weitere Antworten.

LongDongLude

Mitglied
hab heute mal wieder angefangen und wollte ein kleines programm schreibe, doch wie ich merke kann ich mich an die grundlegendsten sachen nicht mehr erinnern ich habe folgenden code:

Code:
import java.io.*;
import java.util.*;

public class sort {
 String[][] SortAlgo;
 public static String pfad = "//Users/jurgenludwig/Documents/workspace/DnBfileSort/dnbSingels";

	
	public static void main(String[] args){ 
	    String[] entries = new File("/files").list(); 
		System.out.println( Arrays.toString(entries) );
		sort.readFile("/Users/jurgenludwig/Documents/workspace/DnBfileSort/dnbSingels/SortAlgo.txt");
		
		    
	}
	
	public static void readFile(String listname) {
		String trenn="><><";
		String beginn="!<>!";
		String tempLine; 
		int laengeSubfix,laengeLabel, i=0;
		String[] subFix = new String[1000];
		String[] label = new String[1000];
		
		try {
			FileReader reader = new FileReader(listname);
			BufferedReader in = new BufferedReader(reader);
			String line = in.readLine();
			
			while(line!= null) {
				
				
				tempLine = line;
				
				do{
					
					tempLine = tempLine.substring(4); //begin zeichen zeichen weg
					laengeSubfix =  tempLine.indexOf(trenn); //wo fängt trenn an
					subFix[i] = tempLine.substring(0, laengeSubfix); //Subfix in Feld
					tempLine = tempLine.substring(laengeSubfix); //subfix weg
					tempLine = tempLine.substring(4); //trenn zeichen zeichen weg
					laengeLabel =  tempLine.indexOf(beginn); //wo fängt beginn wieder an
					label[i] = tempLine.substring(0, laengeLabel); //Label in Feld
					tempLine = tempLine.substring(laengeLabel); //Label weg
					System.out.println("SUBFIX: " + subFix[i] +" LABEL:" + label[i] + tempLine.length() );
					i++;
					
					 
				}while(tempLine.length()>4);
				
				System.out.println(line);
				line = in.readLine();
			}
			in.close();
		} catch (FileNotFoundException e1) {
			System.err.println(e1);
		} catch (IOException e2) {
			System.err.println(e2);
		}
	}
	
	
		

}



jetzt will ich auf die Felder subFix und label von einer anderen methode zugreifen, wie mach ich das?
 

JPKI

Top Contributor
Du musst sie als Objektvariablen definieren, etwa so:
Code:
public class Sort //Klassennamen groß schreiben
private String[] label, subFix;
//Rest der Klasse
Ich rate dir auch, diese Felder gleich im Konstruktor zu initialisieren, damit vermeidest du NullPointerExceptions, wenn du von einer anderen Methode drauf zugreifst.
 
N

NeuHier

Gast
JPKI hat gesagt.:
Du musst sie als Objektvariablen definieren, etwa so:
Code:
public class Sort //Klassennamen groß schreiben
private String[] label, subFix;
//Rest der Klasse
Ich rate dir auch, diese Felder gleich im Konstruktor zu initialisieren, damit vermeidest du NullPointerExceptions, wenn du von einer anderen Methode drauf zugreifst.

Wie ... ? Wenn ich das private vor eine String variable schreibe ist sie ein(e) objekt(-variable) der Klasse Sort und hat damit Zugriff auf alle Methoden der Klasse Sort?
 

Leroy42

Top Contributor
NeuHier hat gesagt.:
Wie ... ? Wenn ich das private vor eine String variable schreibe ist sie ein(e) objekt(-variable) der Klasse Sort und hat damit Zugriff auf alle Methoden der Klasse Sort?

Nein! Wichtig ist nicht private davor zu schreiben, sondern wo du die Variable
deklarierst. Wenn du sie direkt in der Klasse definierst, haben alle Methoden der
Klasse Zugriff auf sie (nicht die Variable hat Zugriff auf die Methoden :D ) Ansonsten
ist sie nur in der Methode bekannt, in der sie deklariert wurde.
 

JPKI

Top Contributor
Das private dient lediglich als Zugriffsschutz von außen. Auf Objektvariablen, die als private deklariert wurden, kann nur innerhalb der eigenen Klasse zugegriffen werden.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben