— გამარჯობა, ამიგო! ბილააბო დღეს ისაუბრებს ცვლადების ინიციალიზაციის თანმიმდევრობაზე.
წარმოიდგინე, რომ ხედავ კოდს. რა მნიშვნელობები მიიღებენ ცვლადები?
კოდი
class Cat
{
public int a = 5;
public int b = a + 1;
public int c = a * b;
}
კოდი
class Cat
{
public int a = getSum();
public int b = getSum() - a;
public int c = getSum() - a - b;
public int getSum()
{
return a + b + c;
}
}
— და ასე შეიძლება?
— რა თქმა უნდა. კლასის მეთოდებსა და ველებს შორის დეკლარაციის თანმიმდევრობა არ არის მნიშვნელოვანი.
კლასი ზემოდან ქვემოთ იტვირთება, ამიტომ მნიშვნელოვანია, რომ კლასის ველმა მიმართოს მხოლოდ უკვე ჩატვირთულ სხვა ველებს. მაგალითში ველი b შეუძლია მიმართოს a-ს, მაგრამ არაფერი იცის c-ის შესახებ.
— და რაც მოხდება?
— ცვლადების შექმნისას ისინი ღებულობენ ნაგულისხმევ მნიშვნელობებს.
კოდი | სრულდება სინამდვილეში |
---|---|
|
|
|
|
— უაუ! აღმოჩნდა, რომ ეს ასე მარტივია. მადლობა ბილააბო, ნამდვილი მეგობარი ხარ!
— ურა! ბილააბოს მეგობარი შეემატა!
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ