Vandaag mijn examen Java zitten te leren, eigenlijk gewoon alle oefeningen opnieuw maken, zodat ik terug de feel van Java te pakken krijg (veel gewerkt met C++ laatste tijd), toch gek, die syntax van klasses in Java, t.o.v. die van C++.
Een voorbeeldje:
//Java
public class ProfileTest extends Test
{
public ProfileTest()
{
super();
}
}
//C++
public class ProfileTest : Test
{
public ProfileTest() : Test()
{
}
}
Veel verschil is er niet, doch vind ik het gek, waarom ze werken met die super();, omdat die toch op de eerste regel MOET staan, voordat er iets anders wordt uitgevoerd. Dan is de syntax van C++ duidelijker, omdat er daar geen verwarring kan bestaan, op welke regel in de constructor deze moet komen.
Een ander onderdeel, waar een compleet andere gedachtengang nodig voor is, is het schrijven van een GUI, neem het simpele voorbeeld van een knop:
In Java doet men:
JButton b = new JButton();
b.addActionListener(new Listener());
public class Listener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
}
}
In .NET (Windows Forms) doet met het zo:
Button^ b;
b->Click += gcnew System::EventHandler(this, &button_Click);
System::Void button_Click(System::Object^ sender, System::EventArgs^ e)
{
}
Weer is .NET veel meer to the point, het enige wat er moet gebeuren, is een functie schrijven, met de code wat er moet gebeuren, en dan een bepaald event aan de knop hangen, die de functie triggert, itt Java, daar moet de code worden geschreven, eventueel een class, of innerclass, die weer bepaalde klassen implementeert, en wat voor een namen: addActionListener(), actionPerformed()… in .NET is het Click. Simpeler kan toch niet?