gpt4 book ai didi

java - 在创建对象之前设置实例变量

转载 作者:行者123 更新时间:2023-12-01 12:10:18 25 4
gpt4 key购买 nike

所以我得到了这个程序,它可以设置主题并对其进行评分。

现在我得到了这段代码:

package ectsmonitor;

import java.util.Scanner;
import java.util.stream.IntStream;

/**
*
* @author JasperF
*/
public class ECTSMonitor {

private int aantalvakken;
private final double voldoende = 5.5;
private String[] vak = new String[aantalvakken];
private Scanner input = new Scanner(System.in);
private int[] ECTS = new int[aantalvakken];
private double[] Cijfer = new double[aantalvakken];
private int totaalECTS;

/**
* @param args the command line arguments
*/

/**
* Asks for amount of Subjects, and sets instance variable for size of
* Arrays
*/
public void setSubjects() {
//System.out.println("Hoeveel vakken heb je?");
//aantalvakken = input.nextInt();
System.out.println(vak.length);
for (int x = 0; x < getAantalvakken(); x++) {
System.out.println("Voer de naam in van je vak!");
vak[x] = input.next();
System.out.println("Voer het aantal punten in voor " + vak[x]);
ECTS[x] = input.nextInt();
System.out.println("Vak Toegevoegd!!");
}

}

public void setCijfer() {
for (int x = 0; x < vak.length; x++) {
System.out.println("Wat is je Cijfer voor " + vak[x] + "?");
Cijfer[x] = input.nextDouble();
System.out.println("Voor het vak " + vak[x] + "heb je als cijfer ingevuld " + Cijfer[x]);
}

}

public void Checkscore() {
for (int x = 0; x < vak.length; x++) {
if (Cijfer[x] >= voldoende) {
System.out.println("vak:" + vak[x] + "\t\t\t\t Cijfer: " + Cijfer[x] + "ECTS behaald: " + ECTS[x]);
} else {
System.out.println("vak:" + vak[x] + "\t\t\t\t Cijfer: " + Cijfer[x] + "ECTS behaald: 0");
}

}

}

public void BAS() {
totaalECTS = IntStream.of(ECTS).sum();

if (totaalECTS < (totaalECTS * (5 / 6))) {
System.out.println("PAS OP!!: Je ligt op schema voor een BAS!");
} else {
System.out.println("Gefeliciteerd!!: Je bent op weg naar je Propodeuse!!");
}
}

/**
* @return the aantalvakken
*/
public int getAantalvakken() {
return aantalvakken;
}

/**
* @param aantalvakken the aantalvakken to set
*/
public void setAantalvakken(int aantalvakken) {
this.aantalvakken = aantalvakken;
}
}

我得到了这段代码来运行它:

public class Run {

/**
*
* @author JasperF
* @param args
*/
public static void main(String[] args) {


ECTSMonitor mon = new ECTSMonitor();


mon.setSubjects();
mon.setCijfer();
mon.Checkscore();
mon.BAS();

}
}

现在在第一个代码中,数组的长度由变量“aantalvakken”设置,但是当我运行我的程序并打印数组的长度时,它显示为 0。

如何设置变量aantalvakken来设置数组长度

最佳答案

将 aantalvakken 值传递给构造函数。并创建 ArrayList 依赖于构造函数中的 aantalvakken。

public class ECSTMonitor {        
private int aantalvakken;
private final double voldoende = 5.5;
private String[] vak;
private Scanner input = new Scanner(System.in);
private int[] ECTS;
private double[] Cijfer;
private int totaalECTS;

public ECSTMonitor(int aantalvakken) {
this.aantalvakken = aantalvakken;
vak = new String[aantalvakken];
ECTS = new int[aantalvakken];
Cijfer = new double[aantalvakken];
}

关于java - 在创建对象之前设置实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27316109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com