Commit 86c33711 by Patryk Czarnik

oceny studenta - zmiana tablicy na listę

parent ab968b21
......@@ -2,14 +2,14 @@ package p11_klasy.enkapsulacja;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Student extends Osoba {
private String kierunek;
private int rok;
private int[] oceny = new int[5];
private int liczbaOcen = 0;
private List<Integer> oceny = new ArrayList<>();
// tu zmienialiśmy reprezentację tablicową na listową
// dzięki enkapsulacji mieliśmy pewność, że zmiany ograniczają się do klasy Student
public Student(String imie, String nazwisko, LocalDate dataUrodzenia, String kierunek, int rok) {
super(imie, nazwisko, dataUrodzenia);
......@@ -37,29 +37,19 @@ public class Student extends Osoba {
}
public void dodajOcene(int ocena) {
// ważny schemat w programowaniu, używany m.in. przez klasy ArrayList, StringBuilder
// gdy w tablicy brakuje miejsca, tworzymy nową tablicę 2x większą i kopiujemy do niej elementy
if(liczbaOcen == oceny.length) {
System.out.println("powiększanie tablicy");
oceny = Arrays.copyOf(oceny, 2 * oceny.length);
}
oceny[liczbaOcen++] = ocena;
oceny.add(ocena);
}
public List<Integer> getOceny() {
List<Integer> lista = new ArrayList<>(liczbaOcen);
for(int i = 0; i < liczbaOcen; i++) {
lista.add(oceny[i]);
}
return lista;
return oceny;
}
public double sredniaOcen() {
double suma = 0;
for(int i = 0; i < liczbaOcen; i++) {
suma += oceny[i];
for(int ocena : oceny) {
suma += ocena;
}
return suma / liczbaOcen;
return suma / oceny.size();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment