Προς το περιεχόμενο

Java class with attribute an array


dimitrios67

Προτεινόμενες αναρτήσεις

εχω τον παρακάτω κώδικα και μου δινει exception in thread main....

Ti mporei na gtaiei? (σιγουρα κατι ειναι με το initialization of the array grades[]...)

Ευχαριστω εκ των προτερων...

>
Foithths.java
class Foithths{
double[] grades;
String name;

Foithths(String name, int lessons){
	this.name=name;
	double[] grades=new double[lessons];
	for(int i=0;i<grades.length;i++)
		grades[i]=0.0;
}
public void setGrade(int lesson, double bathmos){
	grades[lesson]=bathmos;
}
public double getGrade(int lesson){
	return grades[lesson];
}
public void printGrades(){
	System.out.println(name);
	for(int i=0;i<grades.length;i++)
		System.out.println(grades[i]);
}
}
Main.java
class Main {
public static void main(String args[]){
	Foithths student=new Foithths("giorgos",10);
	System.out.println(student.name);
	student.printGrades();
	//student.setGrade(1,8.0);
	
}
}

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

>
Foithths(String name, int lessons){
	this.name=name;
	double[] grades=new double[lessons];
	for(int i=0;i<grades.length;i++)
		grades[i]=0.0;
}

 

Η γραμμή double[] grades=new double[lessons]; πρέπει να γίνει

 

>
grades=new double[lessons];

 

Ο λόγος είναι ότι ο τύπος της μεταβλητής grades ορίζετε στην αρχή της κλάσης ( double[] grades; ) οπότε όταν ορίζεις ξανά την μεταβλητή μέσα στον constructor κρύβεις το μέλος grades της κλάσης με την τοπική μεταβλητή grades (που τυχαίνει να είναι αντικείμενο τύπου array και να έχει το ίδιο όνομα)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...