class Punct{
private int x;
private int y;
public void init(int xx, int yy) {
x = xx; y = yy;
}
public void move(int dx, int dy) {
x += dx; y += dy;
}
public void setX(int xx) { x = xx; }
public void setY(int yy) { y = yy; }
public int getX( ) { return x; }
public int getY( ) { return y; }
// distanta fata de origine
public double distance(){
return Math.
sqrt(x
* x
+ y
* y
); } // distance
return "(x, y) = (" + x + ", " + y + ")";
} // afisare
} // Punct
public class Main {
public static void main
(String[ ] arg
) {
Punct p1 = new Punct( ); //creez o instanta a clasei Punct
Punct p2 = new Punct( ); // si inca una
// afisare obiecte dupa instantiere
System.
out.
println("Puncte dupa instantiere"); System.
out.
println("(x1,y1) = ("+p1.
getX( )+","+p1.
getY( )+")"); //afisez coordonatele curente ale primului punct
System.
out.
println("(x2,y2) = ("+p2.
getX( )+","+p2.
getY( )+")");
System.
out.
println("p1: " + p1.
afisare()); System.
out.
println("p2: " + p2.
afisare());
//afisez coordonatele curente ale celui de-al 2-lea punct
// afisam distantele punctelor fata de origine
System.
out.
println("distanta p1 = " + p1.
distance()); System.
out.
println("distanta p2 = " + p2.
distance());
p1.init (10,20); p2.init (30,40); //apelez metodele init ale instantelor
// afisare obiecte dupa initializare
System.
out.
println("\nPuncte dupa initializare"); System.
out.
println("(x1,y1) = ("+p1.
getX( )+","+p1.
getY( )+")"); //afisez coordonatele curente ale primului punct
System.
out.
println("(x2,y2) = ("+p2.
getX( )+","+p2.
getY( )+")"); //afisez coordonatele curente ale celui de-al 2-lea punct
// afisam distantele punctelor fata de origine
System.
out.
println("distanta p1 = " + p1.
distance()); System.
out.
println("distanta p2 = " + p2.
distance());
// modific pe rand datele membru
p1.setX(-10);
p2.setY(p1.getX()); // y pentru p2 sa devina egal cu x pentru p1
// afisare obiecte dupa modificare date membru
System.
out.
println("\nPuncte dupa modificare"); System.
out.
println("(x1,y1) = ("+p1.
getX( )+","+p1.
getY( )+")"); //afisez coordonatele curente ale primului punct
System.
out.
println("(x2,y2) = ("+p2.
getX( )+","+p2.
getY( )+")"); //afisez coordonatele curente ale celui de-al 2-lea punct
// afisam distantele punctelor fata de origine
System.
out.
println("distanta p1 = " + p1.
distance()); System.
out.
println("distanta p2 = " + p2.
distance());
p1.move(5,5); p2.move(6,-2); //apelez metodele move ale instantelor
// afisare obiecte dupa mutare
System.
out.
println("\nPuncte dupa mutare"); System.
out.
println("(x1,y1) = ("+p1.
getX( )+","+p1.
getY( )+")"); //afisez coordonatele curente ale primului punct
System.
out.
println("(x2,y2) = ("+p2.
getX( )+","+p2.
getY( )+")"); //afisez coordonatele curente ale celui de-al 2-lea punct
// afisam distantele punctelor fata de origine
System.
out.
println("distanta p1 = " + p1.
distance()); System.
out.
println("distanta p2 = " + p2.
distance());
}
}
Y2xhc3MgUHVuY3R7IApwcml2YXRlIGludCB4OyAKcHJpdmF0ZSBpbnQgeTsgCnB1YmxpYyB2b2lkIGluaXQoaW50IHh4LCBpbnQgeXkpIHsgCgp4ID0geHg7IHkgPSB5eTsgCn0gCnB1YmxpYyB2b2lkIG1vdmUoaW50IGR4LCBpbnQgZHkpIHsgCgp4ICs9IGR4OyB5ICs9IGR5OyAKfSAKCnB1YmxpYyB2b2lkIHNldFgoaW50IHh4KSB7IHggPSB4eDsgfSAKCnB1YmxpYyB2b2lkIHNldFkoaW50IHl5KSB7IHkgPSB5eTsgfSAKCnB1YmxpYyBpbnQgZ2V0WCggKSB7IHJldHVybiB4OyB9IAoKcHVibGljIGludCBnZXRZKCApIHsgcmV0dXJuIHk7IH0gCgovLyBkaXN0YW50YSBmYXRhIGRlIG9yaWdpbmUKcHVibGljIGRvdWJsZSBkaXN0YW5jZSgpewoJcmV0dXJuIE1hdGguc3FydCh4ICogeCArIHkgKiB5KTsKfSAvLyBkaXN0YW5jZQoKcHVibGljIFN0cmluZyBhZmlzYXJlKCl7CglyZXR1cm4gIih4LCB5KSA9ICgiICsgeCArICIsICIgKyB5ICsgIikiOwp9IC8vIGFmaXNhcmUKCn0gLy8gUHVuY3QKCnB1YmxpYyBjbGFzcyBNYWluIHsgCgpwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbIF0gYXJnKSB7IAoJClB1bmN0IHAxID0gbmV3IFB1bmN0KCApOyAvL2NyZWV6IG8gaW5zdGFudGEgYSBjbGFzZWkgUHVuY3QKUHVuY3QgcDIgPSBuZXcgUHVuY3QoICk7IC8vIHNpIGluY2EgdW5hCgovLyBhZmlzYXJlIG9iaWVjdGUgZHVwYSBpbnN0YW50aWVyZQpTeXN0ZW0ub3V0LnByaW50bG4oIlB1bmN0ZSBkdXBhIGluc3RhbnRpZXJlIik7ClN5c3RlbS5vdXQucHJpbnRsbigiKHgxLHkxKSA9ICgiK3AxLmdldFgoICkrIiwiK3AxLmdldFkoICkrIikiKTsgCi8vYWZpc2V6IGNvb3Jkb25hdGVsZSBjdXJlbnRlIGFsZSBwcmltdWx1aSBwdW5jdApTeXN0ZW0ub3V0LnByaW50bG4oIih4Mix5MikgPSAoIitwMi5nZXRYKCApKyIsIitwMi5nZXRZKCApKyIpIik7CgpTeXN0ZW0ub3V0LnByaW50bG4oInAxOiAiICsgcDEuYWZpc2FyZSgpKTsKU3lzdGVtLm91dC5wcmludGxuKCJwMjogIiArIHAyLmFmaXNhcmUoKSk7CgovL2FmaXNleiBjb29yZG9uYXRlbGUgY3VyZW50ZSBhbGUgY2VsdWkgZGUtYWwgMi1sZWEgcHVuY3QKLy8gYWZpc2FtIGRpc3RhbnRlbGUgcHVuY3RlbG9yIGZhdGEgZGUgb3JpZ2luZQpTeXN0ZW0ub3V0LnByaW50bG4oImRpc3RhbnRhIHAxID0gIiArIHAxLmRpc3RhbmNlKCkpOwpTeXN0ZW0ub3V0LnByaW50bG4oImRpc3RhbnRhIHAyID0gIiArIHAyLmRpc3RhbmNlKCkpOwoKcDEuaW5pdCAoMTAsMjApOyBwMi5pbml0ICgzMCw0MCk7IC8vYXBlbGV6IG1ldG9kZWxlIGluaXQgYWxlIGluc3RhbnRlbG9yCgovLyBhZmlzYXJlIG9iaWVjdGUgZHVwYSBpbml0aWFsaXphcmUKU3lzdGVtLm91dC5wcmludGxuKCJcblB1bmN0ZSBkdXBhIGluaXRpYWxpemFyZSIpOwpTeXN0ZW0ub3V0LnByaW50bG4oIih4MSx5MSkgPSAoIitwMS5nZXRYKCApKyIsIitwMS5nZXRZKCApKyIpIik7IAovL2FmaXNleiBjb29yZG9uYXRlbGUgY3VyZW50ZSBhbGUgcHJpbXVsdWkgcHVuY3QKU3lzdGVtLm91dC5wcmludGxuKCIoeDIseTIpID0gKCIrcDIuZ2V0WCggKSsiLCIrcDIuZ2V0WSggKSsiKSIpOyAKLy9hZmlzZXogY29vcmRvbmF0ZWxlIGN1cmVudGUgYWxlIGNlbHVpIGRlLWFsIDItbGVhIHB1bmN0Ci8vIGFmaXNhbSBkaXN0YW50ZWxlIHB1bmN0ZWxvciBmYXRhIGRlIG9yaWdpbmUKU3lzdGVtLm91dC5wcmludGxuKCJkaXN0YW50YSBwMSA9ICIgKyBwMS5kaXN0YW5jZSgpKTsKU3lzdGVtLm91dC5wcmludGxuKCJkaXN0YW50YSBwMiA9ICIgKyBwMi5kaXN0YW5jZSgpKTsKCi8vIG1vZGlmaWMgcGUgcmFuZCBkYXRlbGUgbWVtYnJ1CnAxLnNldFgoLTEwKTsKcDIuc2V0WShwMS5nZXRYKCkpOyAvLyB5IHBlbnRydSBwMiBzYSBkZXZpbmEgZWdhbCBjdSB4IHBlbnRydSBwMQoKLy8gYWZpc2FyZSBvYmllY3RlIGR1cGEgbW9kaWZpY2FyZSBkYXRlIG1lbWJydQpTeXN0ZW0ub3V0LnByaW50bG4oIlxuUHVuY3RlIGR1cGEgbW9kaWZpY2FyZSIpOwpTeXN0ZW0ub3V0LnByaW50bG4oIih4MSx5MSkgPSAoIitwMS5nZXRYKCApKyIsIitwMS5nZXRZKCApKyIpIik7IAovL2FmaXNleiBjb29yZG9uYXRlbGUgY3VyZW50ZSBhbGUgcHJpbXVsdWkgcHVuY3QKU3lzdGVtLm91dC5wcmludGxuKCIoeDIseTIpID0gKCIrcDIuZ2V0WCggKSsiLCIrcDIuZ2V0WSggKSsiKSIpOyAKLy9hZmlzZXogY29vcmRvbmF0ZWxlIGN1cmVudGUgYWxlIGNlbHVpIGRlLWFsIDItbGVhIHB1bmN0Ci8vIGFmaXNhbSBkaXN0YW50ZWxlIHB1bmN0ZWxvciBmYXRhIGRlIG9yaWdpbmUKU3lzdGVtLm91dC5wcmludGxuKCJkaXN0YW50YSBwMSA9ICIgKyBwMS5kaXN0YW5jZSgpKTsKU3lzdGVtLm91dC5wcmludGxuKCJkaXN0YW50YSBwMiA9ICIgKyBwMi5kaXN0YW5jZSgpKTsKCnAxLm1vdmUoNSw1KTsgcDIubW92ZSg2LC0yKTsgLy9hcGVsZXogbWV0b2RlbGUgbW92ZSBhbGUgaW5zdGFudGVsb3IKCi8vIGFmaXNhcmUgb2JpZWN0ZSBkdXBhIG11dGFyZQpTeXN0ZW0ub3V0LnByaW50bG4oIlxuUHVuY3RlIGR1cGEgbXV0YXJlIik7ClN5c3RlbS5vdXQucHJpbnRsbigiKHgxLHkxKSA9ICgiK3AxLmdldFgoICkrIiwiK3AxLmdldFkoICkrIikiKTsgCi8vYWZpc2V6IGNvb3Jkb25hdGVsZSBjdXJlbnRlIGFsZSBwcmltdWx1aSBwdW5jdApTeXN0ZW0ub3V0LnByaW50bG4oIih4Mix5MikgPSAoIitwMi5nZXRYKCApKyIsIitwMi5nZXRZKCApKyIpIik7IAovL2FmaXNleiBjb29yZG9uYXRlbGUgY3VyZW50ZSBhbGUgY2VsdWkgZGUtYWwgMi1sZWEgcHVuY3QKLy8gYWZpc2FtIGRpc3RhbnRlbGUgcHVuY3RlbG9yIGZhdGEgZGUgb3JpZ2luZQpTeXN0ZW0ub3V0LnByaW50bG4oImRpc3RhbnRhIHAxID0gIiArIHAxLmRpc3RhbmNlKCkpOwpTeXN0ZW0ub3V0LnByaW50bG4oImRpc3RhbnRhIHAyID0gIiArIHAyLmRpc3RhbmNlKCkpOwoKfSAKfSA=
Puncte dupa instantiere
(x1,y1) = (0,0)
(x2,y2) = (0,0)
p1: (x, y) = (0, 0)
p2: (x, y) = (0, 0)
distanta p1 = 0.0
distanta p2 = 0.0
Puncte dupa initializare
(x1,y1) = (10,20)
(x2,y2) = (30,40)
distanta p1 = 22.360679774997898
distanta p2 = 50.0
Puncte dupa modificare
(x1,y1) = (-10,20)
(x2,y2) = (30,-10)
distanta p1 = 22.360679774997898
distanta p2 = 31.622776601683793
Puncte dupa mutare
(x1,y1) = (-5,25)
(x2,y2) = (36,-12)
distanta p1 = 25.495097567963924
distanta p2 = 37.94733192202055