Gyakorlat2
16. sor: | 16. sor: | ||
Figyeljetek oda, hogy minden osztálynak a saját nevével megyegyezõ nevû fájlban kell lennie. Pl a '''Complex''' osztálynak a '''Complex.java''' fájlban kell lennie. | Figyeljetek oda, hogy minden osztálynak a saját nevével megyegyezõ nevû fájlban kell lennie. Pl a '''Complex''' osztálynak a '''Complex.java''' fájlban kell lennie. | ||
− | Egészítsétek ki a feladatokat a '''// TODO''' részeknél. Ez van ahol csak egy parancs, máshol több sor is lehet akár. | + | Egészítsétek ki a feladatokat a '''//TODO''' részeknél. Ez van ahol csak egy parancs, máshol több sor is lehet akár. |
− | === 1. Complex | + | === 1. Complex kiegészítés === |
+ | |||
+ | <java> | ||
+ | public class Complex { | ||
+ | private float realPart_; | ||
+ | private float imaginaryPart_; | ||
+ | |||
+ | public Complex() { | ||
+ | realPart_ = 0; | ||
+ | imaginaryPart_ = 0; | ||
+ | } | ||
+ | |||
+ | public Complex(float realPart) { | ||
+ | realPart_ = //TODO | ||
+ | imaginaryPart_ = //TODO | ||
+ | } | ||
+ | |||
+ | public Complex(float realPart, float imaginaryPart) { | ||
+ | //TODO | ||
+ | } | ||
+ | |||
+ | public Complex add(Complex other) { | ||
+ | float realPart = this.realPart_ + other.realPart_; | ||
+ | float imaginaryPart = this.imaginaryPart_ + other.imaginaryPart_; | ||
+ | Complex retval = //TODO | ||
+ | return retval; | ||
+ | } | ||
+ | |||
+ | public Complex multiply(Complex other) { | ||
+ | //TODO | ||
+ | } | ||
+ | } | ||
+ | </java> | ||
+ | |||
+ | === 2. User === | ||
+ | |||
+ | Egészítsétek ki, ahogy értelmes. Érdekesség (és fontos) ez a kettõ nem ekvivalens: | ||
+ | |||
+ | <java> | ||
+ | password_ == enteredPassword | ||
+ | </java> | ||
+ | |||
+ | <java> | ||
+ | password_.equals(enteredPassword) | ||
+ | </java> | ||
+ | |||
+ | Az második azt csinálja amit az elsõre gondolna az ember. Összehasonlítja a 2 Stringet, ha megegyeznek '''true'''-t, ha különböznek '''false'''-t ad vissza. | ||
+ | |||
+ | Viszont az elsõ nem ezt csinálja. Hanem azt vizsgálja meg, hogy ugyanazon a memóriacímen vannak-e tárolva, azaz, hogy tényleg megegyeznek-e, nem csak tartalomban. Ez azért van amit már említettem, hogy itt kb minden pointer (referencia) csak rejtetten. Errõl lesz szó következõ elõadáson. | ||
+ | |||
+ | <java> | ||
+ | public class User { | ||
+ | private String realName_; | ||
+ | private String nickName_; | ||
+ | private String password_; | ||
+ | |||
+ | public User(String realName, String nickName, String password) { | ||
+ | realName_ = realName; | ||
+ | nickName_ = nickName; | ||
+ | password_ = password; | ||
+ | } | ||
+ | |||
+ | public boolean passwordCheck(String enteredPassword) { | ||
+ | if (password_.equals(enteredPassword)) { | ||
+ | //TODO | ||
+ | } | ||
+ | //TODO | ||
+ | } | ||
+ | |||
+ | public void setNickName(String newNickName) { | ||
+ | //TODO | ||
+ | } | ||
+ | } | ||
+ | </java> |
A lap 2013. szeptember 18., 07:20-kori változata
Tartalomjegyzék |
Feladatok tagolása
Már több osztállyal dolgozunk akár egy feladaton belül is. Így egy új tagolást javasolok.
- Eclipse-ben a már létezõ vagy új projectet nyissátok le, és az src mappára jobb klikk New -> Package
- Nevezzétek el és kész is
- Minden összetartozó osztályt egy ilyen package-be rakjatok
- Amikor egy osztály egy Gyak2 package-ben van azt jelezni kell a fájl elején a következõ módon:
package Gyak2;
- Package-eket lehet egymásba is ágyazni, késõbb a komolyabb dolgokat majd külön projectben sok package-ben fogjuk tárolni
Bemelegítõ feladatok
Figyeljetek oda, hogy minden osztálynak a saját nevével megyegyezõ nevû fájlban kell lennie. Pl a Complex osztálynak a Complex.java fájlban kell lennie.
Egészítsétek ki a feladatokat a //TODO részeknél. Ez van ahol csak egy parancs, máshol több sor is lehet akár.
1. Complex kiegészítés
public class Complex { private float realPart_; private float imaginaryPart_; public Complex() { realPart_ = 0; imaginaryPart_ = 0; } public Complex(float realPart) { realPart_ = //TODO imaginaryPart_ = //TODO } public Complex(float realPart, float imaginaryPart) { //TODO } public Complex add(Complex other) { float realPart = this.realPart_ + other.realPart_; float imaginaryPart = this.imaginaryPart_ + other.imaginaryPart_; Complex retval = //TODO return retval; } public Complex multiply(Complex other) { //TODO } }
2. User
Egészítsétek ki, ahogy értelmes. Érdekesség (és fontos) ez a kettõ nem ekvivalens:
password_ == enteredPassword
password_.equals(enteredPassword)
Az második azt csinálja amit az elsõre gondolna az ember. Összehasonlítja a 2 Stringet, ha megegyeznek true-t, ha különböznek false-t ad vissza.
Viszont az elsõ nem ezt csinálja. Hanem azt vizsgálja meg, hogy ugyanazon a memóriacímen vannak-e tárolva, azaz, hogy tényleg megegyeznek-e, nem csak tartalomban. Ez azért van amit már említettem, hogy itt kb minden pointer (referencia) csak rejtetten. Errõl lesz szó következõ elõadáson.
public class User { private String realName_; private String nickName_; private String password_; public User(String realName, String nickName, String password) { realName_ = realName; nickName_ = nickName; password_ = password; } public boolean passwordCheck(String enteredPassword) { if (password_.equals(enteredPassword)) { //TODO } //TODO } public void setNickName(String newNickName) { //TODO } }