Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用get set code';Java中的数组_Java_Arrays_Class_External_Getter Setter - Fatal编程技术网

如何使用get set code';Java中的数组

如何使用get set code';Java中的数组,java,arrays,class,external,getter-setter,Java,Arrays,Class,External,Getter Setter,我可以尝试使用数组获取集合代码。 我的外部类数组代码 int dersNot [][]; 我的外部类获取设置代码 public int getVizeNotu(int dersNo) { return dersNot[dersNo][0]; } public void setVizeNotu(int dersNo) { vizeNot = dersNot[dersNo][0]; } 我想用get set获取值。我在外部类中创建了数组。因为这就是我们的要求。我需要使用get s

我可以尝试使用数组获取集合代码。 我的外部类数组代码

int dersNot [][];
我的外部类获取设置代码

public int getVizeNotu(int dersNo) {
    return dersNot[dersNo][0];
}
public void setVizeNotu(int dersNo) {
    vizeNot = dersNot[dersNo][0];
}
我想用get set获取值。我在外部类中创建了数组。因为这就是我们的要求。我需要使用get set获取在外部类中创建的数组的元素

这些代码中有错误。 我收到的错误是:

我的班级代码

包ogrenci.bilgi.sistemi.pkg2

import ogrenci.bilgi.sistemi.pkg2.Ogrenci;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class OgrenciBilgiSistemi2 {
    public static void main(String[] args) {
        Scanner Scan = new Scanner(System.in);
        // Değişkenler
        int ogrenciSayisi;
        String OgrenciNo;
        String OgrenciAd;
        String OgrenciSoyad;
        int DersSayisi;
        int VizeNot = 0;
        int FinalNot = 0;
        int dersNo;
        Ogrenci ogrenci1 = new Ogrenci();
        // Öğrenci ve Ders sayısı alınır 
        System.out.println("Öğrenci sayısını giriniz : ");
        ogrenciSayisi = Scan.nextInt();
        System.out.println("Ders sayısını giriniz : ");
        DersSayisi = Scan.nextInt();
        // HashMap Tanımı 
        Map<String, Ogrenci> ogrenciMap = new HashMap<String, Ogrenci>();
        // Öğrenci bilgileri alınır 
        for (int i = 0; i < ogrenciSayisi; i++) {
            System.out.println((i + 1) + ". Öğrencinin numarasını giriniz : ");
            OgrenciNo = Scan.next();
            System.out.println(OgrenciNo + ". Öğrencinin ismini giriniz : ");
            OgrenciAd = Scan.next();
            System.out.println(OgrenciNo + ". Öğrencinin soyismini giriniz : ");
            OgrenciSoyad = Scan.next();
            System.out.println("-----------------------------------------------------");
            System.out.println("-----------------------------------------------------");
            // Değerleri HashMap'e atama
            ogrenciMap.put(OgrenciNo, new Ogrenci(OgrenciNo, OgrenciAd, OgrenciSoyad));
        }
           // Vize ve Final notları 
           for (int m = 0; m < ogrenciSayisi; m++){
           for (int j = 0; j < DersSayisi; j++) {
               System.out.println("Lütfen " + DersSayisi + ". dersin vize notunu giriniz : ");
               VizeNot = Scan.nextInt();
               ogrenci1.setVizeNotu(VizeNot);
               System.out.println("Lütfen " + DersSayisi + ". final notunu giriniz : ");
               FinalNot = Scan.nextInt();
               ogrenci1.setFinalNotu(FinalNot);
           }
            }
        // Öğrenci bilgilerini yazdırmak
        for (Map.Entry<String, Ogrenci> entry : ogrenciMap.entrySet()) {
            System.out.println("Öğrenci numarası : " + entry.getKey() + "  Öğrenci bilgileri : " + entry.getValue().getOgrenciAd() + " " + entry.getValue().getOgrenciSoyad());
        }
    }
}

请帮助我:(

您遇到异常,因为您没有在类中初始化dersNot数组。请修复它并查看程序的输出

从构造函数中获取dersSayisi变量以初始化dersNot数组

public Ogrenci(String ogrenciNo, String ogrenciAd, String ogrenciSoyad, int dersSayisi) {
    this.ogrenciNo = ogrenciNo;
    this.ogrenciAd = ogrenciAd;
    this.ogrenciSoyad = ogrenciSoyad;
    dersNot = new int[dersSayisi][3]; // I assumed that 2 midterm exam(vize) 1 final exam
}
在主菜单中,编辑以下行:

ogrenciMap.put(OgrenciNo, new Ogrenci(OgrenciNo, OgrenciAd, OgrenciSoyad, DersSayisi));
另一个错误是在下面的循环中发生的,您只更改了一个对象,而不是hashMap。您需要从hashMap中获取Ogrenci对象,并更改它的变量,而不是仅更改一个对象

for (int m = 0; m < ogrenciSayisi; m++) {
    for (int j = 0; j < DersSayisi; j++) {
        System.out.println("Lütfen " + DersSayisi + ". dersin vize notunu giriniz : ");
        VizeNot = Scan.nextInt();
        ogrenci1.setVizeNotu(VizeNot);
        System.out.println("Lütfen " + DersSayisi + ". final notunu giriniz : ");
        FinalNot = Scan.nextInt();
        ogrenci1.setFinalNotu(FinalNot);
    }
}
for(int m=0;m

要解决此问题,您需要从HashMap中获取Ogrenci对象,其密钥为
ogrenciNo

您应该编写
Ogrenci
Ogrencibiligististemi2
类以及调用方类,如main。请查看并提供如何初始化
dersNot
,这可能是空的,也可能是空的这就是空指针异常的原因。@EmreSavcı我不理解你的评论。@SMA我已经定义了courseNot数组。我用get set代码定义了值。@YılmazYaızDokumacı你必须在你的问题中复制并粘贴你的类代码。因此,任何想要重现你的错误的人都可以运行代码。我理解构造函数。。但是我没有将注释保留在hashmap中。它们将只保留在数组中。我尝试过。但是,在输入vize注释时再次出现错误。错误:您的
setVizeNotu
方法不正确。您直接将其传递给
dersNotu
。相反,您应该传递两个参数,第一个是
dersNo
,这是数组的边界,第二个是分数。你需要重构你的方法、逻辑和循环。如果不麻烦的话,你能为setVizeNot写一个例子吗?我理解你说的,但我不能。如果你有固定的考试,比如说2个vize和1个final,你可以遵循以下步骤:
setNot(int-dersKodu,int-examNumber,int-score)
.ExamNumber指定内部数组索引。Exampe:dersNot[1][2]=50,表示dersKod=1考试=2,分数=50。
ogrenciMap.put(OgrenciNo, new Ogrenci(OgrenciNo, OgrenciAd, OgrenciSoyad, DersSayisi));
for (int m = 0; m < ogrenciSayisi; m++) {
    for (int j = 0; j < DersSayisi; j++) {
        System.out.println("Lütfen " + DersSayisi + ". dersin vize notunu giriniz : ");
        VizeNot = Scan.nextInt();
        ogrenci1.setVizeNotu(VizeNot);
        System.out.println("Lütfen " + DersSayisi + ". final notunu giriniz : ");
        FinalNot = Scan.nextInt();
        ogrenci1.setFinalNotu(FinalNot);
    }
}