klasy - metoda statyczna dla całej klasy

0

cześć, mam na uczelni przedmiot programowanie w JAVA - podstawy
mam pewien problem, chcę stworzyć własną metodę do przeszukiwania obiektów własnego typu i zwracanie ich pozycji

Klasa:


package studencik;
import java.util.*;

public class student {
    public static int indeks=0;
    int id;
    public String legitymacja;
    public String nazwisko;
    public int dystans;
    
    public student(){}
    public student(String leg, String nazw) {   id=indeks;legitymacja=leg; nazwisko=nazw; indeks++;   }
    
  
    public static int pozycja2(String leg,String nazw,ArrayList<student> obj)
    {
        for(int i=0;i<obj.size();i++)
            {
            if(leg=="")
            if(obj.get(i).nazwisko==nazw) return i;

            if(nazw=="")
            if(obj.get(i).legitymacja==leg) return i;

            if(leg!="" && nazw!="")
                if(obj.get(i).nazwisko==nazw && obj.get(i).legitymacja==leg) return i;

            break;
            }
        return -1;
    }
    
    
}

 

Program:


package studencik;
import java.util.*;

public class studencik {

    
    public static void main(String[] args) {
        List<student> studenci=new ArrayList();
        studenci.add(new student("zxc123","boniek"));
        studenci.add(new student("zxc124","nawałka"));
        studenci.add(new student("zxc125","stokrotka"));
        int szukaj=-1;
        
        szukaj=studenci.pozycja2("zxc125","",studenci);
        System.out.printf("Szukany2: %d",szukaj);
    }
    
}

błąd jest tutaj (cannot find symbol):

  •    szukaj=studenci.pozycja2("zxc125","",studenci);*
    

Chcę przekazać do metody 2 stringi no i moją listę

Chodzi mi tylko i wyłącznie o metodę statyczną.
Zrobiłem to za pomocą zwyczajnej funkcji(procedury) która wyszukuje po klasie, zrobiłem także metodę sprawdzającą czy aktualny(badany) element równa się tym stringom, ALE CHCĘ STWORZYĆ METODĘ STATYCZNĄ DLA KLASY

proszę o pomoc - co robię źle

0

Po pierwsze: pisz nazwy klas dużymi literami.
Po drugie: źle wywołujesz metodę statyczną. Metodę statyczną o nazwie fun klasy Class wywołuje się następująco:
Class.fun(argumenty)

0
  1. Napisz sobie testy. Takie najprostsze, które sprawdzą czy wszystko jest OK.
  2. nazwisko==nazw co do zasady zwróci false, ponieważ porównujesz referencje, a nie obiekty. Użyj equlas
  3. studenci to lista, która nie zawiera metody o której piszesz. Masz dwa wyjścia a) stworzyć klasę Studenci, która będzie zawierać listę i odpowiednią metodę, b) wywołać student.pozycja2 z odpowiednimi parametrami.

1 użytkowników online, w tym zalogowanych: 0, gości: 1