среда, 26 сентября 2018 г.

OOP

OOP object oriented programming
ООП объектно-ориентированное программирование
ОНП объектілерге негізделген программалау деп аударар едім.

Қазір кім қалай аударып жүргенінен хабарсызбын. Google translate "объектілі бағдарланған бағдарламалау" деп аударып қойыпты

понедельник, 24 сентября 2018 г.

Java мен JavaScript

Java мен JavaScript атаулары ұқсас болғанымен мүлдем бөлек тілдер

Kotlin мен Pascal-дің ұқсастығы


Активитеде орналасқан компоненттерді (мысалы, TextView, Bottun) программа кодында айнымалымен байланыстырып (мысалы, TextView tv = (TextView) findViewById(R.id.tv)) қажет емес. Ол автоматты түрде байланысады. Программа кодында бірден tv.text = "Qalaisyn" деп қолдана беруге болады.

TextView-ге жазу, немесе одан оқу үшін setText()/getText() методтарын да қолдану керек емес. Оның орнына бірден text қасиетін оқып, осы қасиетке жазса болады.
Ол үшін build.gradle файлында мынандай жол болуы қажет: apply plugin: 'kotlin-android-extensions'


четверг, 20 сентября 2018 г.

Java мен Pascal-да класстар айырмашылығы.


Класс паскальде тип түрінде анықталады. Сондықтан класс type бөлігінде жазылады.

Мысалы,
Pascal-де:
interface
type
TMyClass = class
                         id: Integer;
                         name: String;
                         constructor Create(pId: Integer; pName: String);
                         function GetId: Integer;
                         function GetName: String;
                         procedure SetName(s: String);
                     end;

implementation

constructor TMyClass.Create(pId: Integer; pName: String);
begin
    id := pId;
    name := pName;
end;

function TMyClass.GetId: Integer;
begin
    Result := id;
end;

function TMyClass.GetName: String;
begin
    Result := name;
end;

procedure TMyClass,SetName(s: String);
begin
    name := s;
end;

Java-да:
class MyClass {
    int id;
    String name;
    
    public MyClass(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public int getId {
        return id;
    }
    
    public String getName {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

Бұл жерде көріп тұрғандай, Java-да методтардың барлығы класс денесінің ішінде анықталады. Ал, Pascal-да методтар класс денесінің сыртында жүзеге асырылады. Java-да конструкторлардың атауы класстың атауына сәйкес болады. Pascal-да ондай шектеу жоқ - constructor кілттік сөзінен кейін кез-келген атау жаза беруге болады.

Pascal класстары негізге программада да(program), модульдарда да(unit) орналасуы мүмкін. Java-да класстар негізгі класс денесінде немесе жеке файлдарда орналаса алады.

Pascal-да класс методына жатпайтын қарапайым процедуралар мен функциялар бола алады. Яғни, оларды жазу үшін ешқандай класс жасаудың қажеті жоқ. Олар кез-келген модульде жасалып басқа кез-келген модульден шақырылуы мүмкін.

unit UnitA;
interface
type
    TClassA = class
        ....
        ....
    end;

    procedure WriteHello;

implementation

    procedure WriteHello;
    begin
        writeln('Hello, World');
    end;

end.

Java-да процедура, функция ұғымы жоқ. тек класстар методы деген ұғым бар. Класс методтары класс сыртында, классыз өмір сүре алмайды. Әлдебір класстың методын класс экземплярын жасамай шақыру үшін ол метод статикалық метод болып анықталуы тиіс.

class MyClass {
    public static void writeHello() {
        System.out.println("Hello, World");
    }
}

Осы сияқты Pascal модульдерінде классқа кірмейтін айнымалылар анықтауға болады. Оларды басқа модульдерден оқуға, жазуға болады. (егер модульдің interface бөлігінде орналасса). Ал, Java-да тек класс мүшелерін(қасиеттері,өрістері) ғана қолдануға болады. Егер, класстың экземплярын жасамай тұрып мүшеге мән жазу керек болса, онда ол мүшені статикалық мүше етіп жариялау қажет.

class MyClass {
    public static A;
}

Яғни, Java-да программаның бүкіл логикасы, әрекеті класс ішінде, денесінде құрылады. Класс сыртында өмір жоқ.
Ал, Pascal-да класс, объект ұғымы негізгі процедуралық программалауға қосымша мүмкіндік болып табылады. Pascal-да бірде-бір класс жасамай-ақ жұмыс істейтін программа жазуға болады. Java-да классыз ешқандай программа жасау мүмкін емес!