У нас есть класс Solution, в котором реализуется метод мэйн:
package com.javarush.task.pro.task08.task0812;
public class Solution {
public static void main(String[] args) {
Pair pair = new Pair(4, 5);
System.out.println(pair);
pair.swap();
System.out.println(pair);
}
}
И класс Pair :
package com.javarush.task.pro.task08.task0812;
public class Pair {
private int x;
private int y;
private int z;
public Pair(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public String toString() {
return String.format("x=%d, y=%d", x, y);
}
public void swap() {
//напишите тут ваш код
int a = y ^ x ;
y = y ^ a;
x = x ^ a;
}
}
1. В классе Pair мы создаём функцию "Pair" ? Я так понимаю если она не void, то значит она возвратная, а раз так то где Return? И почему она "public Pair(int x, int y) { ...." , а не "public int Pair(int x, int y) { ...." ведь она возвращает int ?!!
2. В классе Solution мы же создаём объект класса Pair ?? А параметры (4, 5) передаём как будто функцию....Т.е. не понимаю запись по мне должно быть так :
Pair pair = new Pair(); - создал объект класса "Pair"
pair.pair(4, 5); - потом вызвал функцию и передал в неё параметры
Но так не катит .. почему ????
3. В классе Solution строка : System.out.println(pair); Мы тут обращаемся к печатанию к чему к классу или функции ?? Если к классу, то как тогда он видит параметры, если в классе Pair мы их задаём в функции "public Pair(int x, int y)"
В общем чем дальше в ООП, тем больше не понятней.
4. Про @Override спрашивать не буду, и так хватает простаивания. .....