CMETAHA, основная моя мысль в том, что изучать можно любой из этих языков, а потом легко мигрировать на другой (сделать замену "import" <-> "using"
).
Единственное, чего мне хотелось бы в Java из C#, это перегрузка стандартных операторов, сеттеры и геттеры:
Перегрузка операторов:
Скрытый текст:
Код:
// C#
public class MyClass {
public MyClass operator+(MyClass firstValue, MyClass secondValue) {
return ...;
}
}
Тогда можно так:
Код:
newMyObj = myObj1 + myObj2;
вместо такого
Код:
// Java
public class MyClass {
public static MyClass add(MyClass firstValue, MyClass secondValue) {
return ...;
}
}
Код:
newMyObj = MyClass.add(myObj1, myObj2));
сеттеры и геттеры:
Скрытый текст:
Код:
//C#:
public class SomeClass {
private MyClass fMyValue;
public MyClass myValue {
get {
return fMyValue;
}
set {
// Здесь можно выкинуть исключение, если value не подходит
fMyValue = value;
}
}
}
А далее инкапсулированное поле используется как открытая переменная:
Код:
SomeClass someObject;
...
someObject.myValue = ...;
... = someObject.myValue;
Java:
Код:
//Java
public class SomeClass {
private MyClass myValue;
public MyClass getMyValue {
return myValue;
}
public void setMyValue(MyClass value) {
// Здесь можно выкинуть исключение, если value не подходит
this.myValue = value;
}
}
А далее нужно использовать методы:
Код:
SomeClass someObject;
...
someObject.setMyValue(...);
... = someObject.getMyValue();