Gyakorlat2

A MathWikiből
(Változatok közti eltérés)
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 szorzás ===
+
=== 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
	}
}
Személyes eszközök