Pomoc w rozwiązaniu zadania :)

Odpowiedz Nowy wątek
2016-12-08 10:50

Rejestracja: 3 lata temu

Ostatnio: 3 lata temu

0

Profesor wystawił przykładowe kolokwium rozwiązałem 4 zadania myślę że dobrze.
Co do 5 to znalazłem błędy takie:

*<int> powinno być <integer> ale nie wiem jak to uzasadnić

  • if((liczby.get -> tutaj niepotrzebny jest ten drugi (

nie znalazłem innych błędów, czy może ktoś pomóc je znaleźć i uzasadnić czemu tak powinno być? :)

076fc64467.png

Pozostało 580 znaków

2016-12-08 11:16
Moderator

Rejestracja: 16 lat temu

Ostatnio: 3 godziny temu

4

2: jest źle bo stringi porównuje się przez .equals() a nie ==
4: jest źle bo nie przypisałeś wartości do pola nr konta
5:

  • genericsy w javie mogą być tworzone tylko dla klas, a nie dla prymitywów (ale może kiedyś to przyjdzie ze Scali...) więc nie można mieć ArrayList<int> a co najwyżej ArrayList<Integer>
  • new ArrayList() to tworzenie raw-type collection a próbujesz potem przypisać to do typowanej generycznej referencji. Powinno być new ArrayList<Integer>()
  • jeden nawias otwierajacy za dużo przy if((liczby.get

Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
edytowany 1x, ostatnio: Shalom, 2016-12-08 11:16

Pozostało 580 znaków

eL
2016-12-08 11:19
eL

Rejestracja: 8 lat temu

Ostatnio: 1 dzień temu

1

Zadanie 1. Metoda sprawdzająca hasła. Warunek jest błędny ponieważ powinieneś porównać je przez equals (Wyjaśnienie: http://stackoverflow.com/a/513839/5877109)
Może to nie jest jakiś duży błąd ale zamiast zwracać int w metodzie "sprawdzHaslo" lepiej byłoby aby zwracała true/false.

Zadanie 4.
W konstruktorze przekazujesz 2 parametry (nrKonta i haslo) a przypisujesz tylko hasło. nrKonta nadaj jest null'em.

Widze że @Shalom mnie wyprzedził :( - eL 2016-12-08 11:20
@eL ja szanuję :) - Burdzi0 2016-12-08 13:53

Pozostało 580 znaków

2016-12-08 16:40

Rejestracja: 3 lata temu

Ostatnio: 3 lata temu

0

Czyli rozumiem, że lepiej zrobić w 1 zadaniu:

public Boolean sprawdzHaslo(String haslo)
{
    if(this.haslo.equals(haslo)){return true;}
    return false;
}

A co do 4 tak jest OK?

    Konto(String nrKonta, String haslo)
{   super(haslo);
    this.nrKonta = nrKonta; 
}
edytowany 1x, ostatnio: bogdans, 2016-12-09 07:22
Wstawiaj kod w znaczniki &lt;code=java&gt;&lt;/code&gt;. - bogdans 2016-12-09 07:23

Pozostało 580 znaków

2016-12-08 23:39

Rejestracja: 5 lat temu

Ostatnio: 2 lata temu

Lokalizacja: Gdańsk

0

Tak, teraz jest dobrze. Pozwolę sobie jeszcze powiedzieć coś o operatorze ==

String A = "napis" ;
String B = "napis";
return A.equals(B);     // zwróci true
return A==B;              // zwróci false
B = A ;
return A==B               // zwróci true, ten operator porównuje czy te dwie zmienne referencyjne
                                  // wskazują na ten sam obiekt w pamięci.
edytowany 5x, ostatnio: markosz1, 2016-12-08 23:42
String tworzony przez "" jest dodawany do string pool'a, jeśli w string poolu nie ma takiego obiektu to tworzy nowy i go tam dodaje. Przy Stringu B, taki obiekt już istnieje więc przypisuje do niego referencje. Dopiero się ucze, ale wydaje mi sie, ze tak jest. Jeśli chcesz stworzyć stringa przez konstruktor i dodać go do string poola to chyba wygląda to tak: String A = new String("napis"); A = A.intern(); - elmohamati 2016-12-09 03:00

Pozostało 580 znaków

2016-12-09 01:28
Moderator

Rejestracja: 16 lat temu

Ostatnio: 3 godziny temu

0

@markosz1 nie masz racji. Porównanie A==B najpewniej zwróci true bo Stringi w javie mają cache. Powinieneś zrobić

String A = new String("napis");
String B = new String("napis");

I wtedy faktycznie uzyskasz oczekiwany efekt.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

eL
2016-12-09 08:54
eL

Rejestracja: 8 lat temu

Ostatnio: 1 dzień temu

1
drondal napisał(a):

Czyli rozumiem, że lepiej zrobić w 1 zadaniu:

public Boolean sprawdzHaslo(String haslo)
{
if(this.haslo.equals(haslo)){return true;}
return false;
}

Jest co prawda ok, ale metoda equals sama w sobie już zwraca true/false więc if tak naprawdę jest zbędny:

public Boolean sprawdzHaslo(String haslo){
    return this.haslo.equals(haslo);
}

Pozostało 580 znaków

Odpowiedz

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