1. Anasayfa
  2. 100 Günde Solidity

🧵 #100GündeSolidity 022 : Constructor

🧵 #100GündeSolidity 022 : Constructor
Constructor
0

Constructor Fonksiyonlarının Kullanımı ve Özellikleri

Solidity programlama dilinde, sözleşmelerin oluşturulması sırasında gerekli olan inisiyalizasyon işlemlerini gerçekleştirmek için Constructor özelliği sunulur. Sözleşmeler oluşturulduğunda çalışan bu fonksiyon, sözleşmenin oluşturulması sırasında belirli değerlerin atanmasını veya ilk başta gerekli olan işlemlerin gerçekleştirilmesini sağlar. Bu bölümde, Solidity dilinde Constructor’ın nasıl kullanılabileceği, fonksiyonun avantajları ve kullanım alanları gibi konuları ele alacağız.

Constructor, Solidity dilinde sözleşme oluşturma sırasında çalışan isteğe bağlı bir fonksiyondur. Sözleşme oluşturulduğunda, öncelikle constructor çalışır ve sözleşmenin ilk durumunu belirler. Constructor, sözleşmenin ilk değer atamalarını yapmasını, gerekli olan işlemleri gerçekleştirmesini veya başka bir fonksiyon çağırmasını sağlar.

Constructor’ın kullanımı, Solidity dilinde sözleşme oluşturma sırasında gerekli olan işlemleri düzenli bir şekilde gerçekleştirmek için oldukça faydalıdır. Sözleşmenin belirli bir amacı varsa, bu amaç doğrultusunda işlem yapması için constructor kullanılabilir.

Constructor, Solidity dilinde sözleşme sınıfının içerisinde oluşturulabilir. Constructor’ın oluşturulması için şu adımlar takip edilir:

  1. Sözleşme sınıfını tanımlayın: contract MyContract {…}
  2. Constructor fonksiyonunu tanımlayın: constructor() public {…}
  3. Constructor fonksiyonun içerisinde gerekli olan işlemleri yapın:
contract MyContract {
    uint256 public value;

    constructor() public {
        value = 100;
    }
}

Bu şekilde, sözleşme oluşturulduğunda ilk değer olarak value değişkeninin 100 olarak atanması sağlanır. Ayrıca constructor içerisinde başka fonksiyonlar da çağrılabilir veya değer atamaları dışında diğer gerekli işlemler de yapılabilir.

Constructor Kullanım Amaçları

Constructor fonksiyonu, Solidity dilinde sözleşmelerin oluşturulması sırasında gerekli olan işlemleri yapmak için kullanılabilir. Aşağıdaki bazı kullanım amaçları bulunmaktadır:

  1. İlk değer atamaları: Constructor fonksiyonu, sözleşmenin oluşturulduğu andaki ilk değer atamalarını yapmasını sağlar. Örneğin, bir değişkenin ilk değerinin 100 olarak atanması gibi.
  2. İşlemlerin gerçekleştirilmesi: Constructor fonksiyonu, sözleşmenin oluşturulduğu anda gerçekleştirilmesi gereken işlemleri yapmasını sağlar. Örneğin, bir veritabanı tablosunun oluşturulması gibi.
  3. Başka fonksiyonların çağrılması: Constructor fonksiyonu, sözleşmenin oluşturulduğu anda diğer fonksiyonların da çağrılmasını sağlar. Bu, sözleşmenin belirli bir amacı doğrultusunda daha etkili çalışmasını sağlar.
  4. İlk durumun belirlenmesi: Constructor fonksiyonu, sözleşmenin oluşturulduğu andaki ilk durumunu belirler. Bu, sözleşmenin ileride nasıl çalışması gerektiğine dair bir çerçeve sağlar.

Constructor fonksiyonu, sözleşmenin oluşturulduğu andaki işlemlerin düzenli bir şekilde yapılmasını ve sözleşmenin daha etkili bir şekilde çalışmasını sağlar.

Constructor’ın birden fazla oluşturulabilme özelliği

Solidity dilinde tek bir sözleşme sınıfı içerisinde birden fazla constructor oluşturulması mümkün değildir. Eğer birden fazla constructor oluşturmak istenirse, tek bir constructor fonksiyonunu oluşturmak ve bu fonksiyonun içerisinde istenilen fonksiyonları çağırmak gerekir.

Örnek olarak, iki farklı constructor oluşturmak istenirse, tek bir constructor fonksiyonu oluşturulabilir ve bu fonksiyonun içerisinde istenilen fonksiyonlar çağrılabilir:

contract MyContract {
    uint256 public value1;
    uint256 public value2;

    constructor(uint256 _value1, uint256 _value2) public {
        value1 = _value1;
        value2 = _value2;
    }
}

Bu şekilde, sözleşme oluşturulduğunda value1 ve value2 değişkenlerine belirli değerler atanması sağlanabilir.

Constructor’ın sözleşme oluşturma sırasındaki rolü

Constructor fonksiyonu, Solidity dilinde sözleşmelerin oluşturma sırasında önemli bir rol oynar. Sözleşme oluşturulduğunda, öncelikle constructor fonksiyonu çalışır ve içerisindeki işlemler tamamlanır. Constructor fonksiyonu, sözleşmenin oluşturulduğu andaki değer atamalarını, gerçekleştirilmesi gereken işlemleri, başka fonksiyonların çağrılmasını ve ilk durumun belirlenmesini sağlar.

Constructor fonksiyonunun rolü, sözleşmenin düzgün bir şekilde çalışması için çok önemlidir. Eğer constructor fonksiyonu oluşturulmazsa veya oluşturulan constructor fonksiyonu yanlış kullanılırsa, sözleşme düzgün bir şekilde çalışmayabilir ve beklenmeyen sonuçlar ortaya çıkabilir. Bu nedenle, constructor fonksiyonunun doğru şekilde oluşturulması ve kullanılması çok önemlidir.

Akıllı Sözleşme Örneklem İncelemesi

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

// Base contract X
contract X {
    string public name;

    constructor(string memory _name) {
        name = _name;
    }
}

// Base contract Y
contract Y {
    string public text;

    constructor(string memory _text) {
        text = _text;
    }
}

// There are 2 ways to initialize parent contract with parameters.

// Pass the parameters here in the inheritance list.
contract B is X("Input to X"), Y("Input to Y") {

}

contract C is X, Y {
    // Pass the parameters here in the constructor,
    // similar to function modifiers.
    constructor(string memory _name, string memory _text) X(_name) Y(_text) {}
}

// Parent constructors are always called in the order of inheritance
// regardless of the order of parent contracts listed in the
// constructor of the child contract.

// Order of constructors called:
// 1. X
// 2. Y
// 3. D
contract D is X, Y {
    constructor() X("X was called") Y("Y was called") {}
}

// Order of constructors called:
// 1. X
// 2. Y
// 3. E
contract E is X, Y {
    constructor() Y("Y was called") X("X was called") {}
}

Bu akıllı sözleşme, X ve Y isimli iki temel sözleşmenin kalıtımını içermektedir. Her bir temel sözleşme, string tipinde bir public değişken ve constructor fonksiyonu içermektedir. Constructor fonksiyonları, oluşturulan sözleşmenin adını veya metnini değişkenlere atar.

B ve C isimli iki farklı sözleşme, X ve Y temel sözleşmelerinden kalıtım almaktadır. B sözleşmesinde, kalıtım listesinde X ve Y sözleşmelerine ait parametreler belirtilmiştir. C sözleşmesinde ise, constructor fonksiyonunu kullanarak X ve Y sözleşmelerine ait parametreler belirtilmiştir.

D ve E isimli iki farklı sözleşme de X ve Y sözleşmelerinden kalıtım almaktadır. D sözleşmesinde, X ve Y sözleşmelerinin constructor fonksiyonları belirtilen sıralamaya göre çalışır. E sözleşmesinde ise, X ve Y sözleşmelerinin constructor fonksiyonları belirtilen sıralamaya göre çalışır.

Sonuç Bağlamı

Sonuç olarak, Solidity programlama dili içinde constructor fonksiyonları, sözleşme oluşturulurken çalışacak opsiyonel fonksiyonlardır. Constructor fonksiyonları, sözleşme oluşturulurken özelleştirilmesi istenen değişkenlerin değerlerini atama, başlangıç verilerinin ayarlanması veya diğer işlemlerin yapılması gibi amaçlarla kullanılabilir. Ayrıca, birden fazla constructor fonksiyonu da oluşturulabilir ve kalıtım yapılan sözleşmelerin constructor fonksiyonları da belirli bir sıraya göre çalışır. Bu bölümde, Solidity programlama dilinde constructor fonksiyonlarının nasıl oluşturulabileceği, nasıl kullanılabileceği ve kalıtım yapılan sözleşmelerin constructor fonksiyonlarının nasıl çalıştırılabileceği örneklerle açıklanmıştır.

Solidity Programlama Dili Öğrenme yolculuğunuz hakkında daha iyi rehberlik almak için Solidity nedir? Ethereum Akıllı Sözleşmelerinin Dili Rehberi içeriğimize göz atın. Dilerseniz Yeni Başlayanlar için Solidity – Akıllı Sözleşme Geliştirme Hızlandırılmış Kursuna katılın.

Çalışmaya nereden başlayacağım diyenler için Blockchain ​​Developer Olmak İçin Yol Haritası içeriğine de muhakkak bakın.

Gelin aklınızdaki soruları SUPERPEER sohbetinde cevaplayalım.

Bu makaleyi okuduğunuz için teşekkürler! Bana destek olmak isterseniz;

Beni TwitterLinkedin ve YouTube‘da takip edin.

Kısa bir yorum bırakmayı UNUTMAYIN!

solidity101 - Solidity, 2015 yılında Christian Reitwiessner liderliğinde piyasaya sürülen, büyük harf kullanımına göre ikinci en büyük kripto para piyasası olan Ethereum tarafından oluşturulan yepyeni bir programlama dilidir.

Yazarın Profili

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir