• Komolytalan
    #29
    JAVA int példa nagyon rossz. Attól hogy valamiben nem úgy lehet összeadni kettőt meg kettőt, hogy
    Integer b=new Integer(2).add(2)
    hanem
    int b=2+2
    attól a nyelv csak használható (sebességű) lesz, de nem veszíti el az OOP mivoltát.

    Viszont nézzünk egy apró OOP kódot - ezt hogy valósítanád meg JS-ben? Azért AS3 a kód, mert az AS1 ugyanarra az ECMA-262 szabványra épült (ezelőtt 15 évvel) mint a JS. De írhattam volna JAVA-ban vagy C#-ban is - aki bármely nyelvet ismeri, az láthatja, hogy minimálisak a különbségek: function/var töröl, :int a sor végén helyett int a sor elejére - szóval csupa apróság. Komolyan érdekelne hogy mindez hogy nézne ki JS-ben szerinted. És most légyszi ne 200 sor wikipédiás technoblablát, hanem konkrét kódot prezentálj.

    Parent.as:
    package {
    public class Base {
    private static var nextId:int=1;
    protected var id:int;
    public function Base() {
    id=nextId++;
    }
    protected function calc( value:int ):int {
    return 2*value;
    }
    public function get value():int {
    return calc( id );
    }
    }
    }
    Child.as
    package {
    public class Child extends Base {
    override protected function calc( value:int ):int {
    return super.calc( value )+1;
    }
    }
    }
    A főprogram (Main.as):
    package {
    import flash.display.MovieClip;
    public class Main extends MovieClip {
    var c:Child=new Child();
    var p:Parent=new Parent();
    trace( c.id )
    // Fordítási hiba - innen nem látható
    trace( c.calc( 1 ) );
    // Fordítási hiba - innen nem látható
    trace( c.value );
    // (2*1)+1=3
    trace( p.value );
    // (2*2)=4
    }
    }