JavaRush /בלוג Java /Random-HE /אתחול שדות

אתחול שדות

פורסם בקבוצה
שלום, עמיתים. החלטתי להראות מספר דרכים לאתחול שדות ב-Java. המאמר עשוי להיות שימושי עבור אלה שרק התחילו ללמוד תכנות. אתחול שדה - 1כדי להפעיל דוגמאות הדגמה, בואו ניצור מחלקת Java Demo עם שיטה main() . בשיטה main() נדפיס משהו למסך כדי לוודא שהתוכנית פועלת:
public class Demo {
    public static void main(String[] args) {
        System.out.println("Hello JavaRush.");
    }
}
לאחר מכן, בואו ניצור כיתת חתולים של Java ונוסיף לה מספר שדות: שם, גיל.
class Cat {
    String name;
    int age;
}
בשיטה main()ניצור שני חתולים. בואו ננסה להציג את שמם וגילם:
public class Demo {
    public static void main(String[] args) {
        Cat cat1 = new Cat();
        Cat cat2 = new Cat();

        System.out.println("Name первого кота: " + cat1.name);
        System.out.println("Возраст первого кота: " + cat1.age);
        System.out.println();
        System.out.println("Name второго кота: " + cat2.name);
        System.out.println("Возраст второго кота: " + cat2.age);
    }
}

class Cat {
    String name;
    int age;
}
הפעלת התוכנית, נקבל את הפלט:
Name первого кота: null
Возраст первого кота: 0

Name второго кота: null
Возраст второго кота: 0
מכיוון שלא אתחלנו את השדות הללו, הם קיבלו ערכי ברירת מחדל. Stringמתייחס לסוגי הפניות, ולכל סוגי ההפניה ערך ברירת המחדל הוא null. intשייך לטיפוסים פרימיטיביים. לכל סוג פרימיטיבי יש ערך ברירת מחדל משלו:
אתחול שדה - 2
איך נוכל להעביר ערכים אמיתיים לתחומים שלנו (למשל השם "טום" והגיל "בן שנתיים")? הדרך הראשונה היא לאתחל את השדות מיד במהלך ההצהרה:
public class Demo {
    public static void main(String[] args) {
        Cat cat1 = new Cat();
        Cat cat2 = new Cat();

        System.out.println("Name первого кота: " + cat1.name);
        System.out.println("Возраст первого кота: " + cat1.age);
        System.out.println();
        System.out.println("Name второго кота: " + cat2.name);
        System.out.println("Возраст второго кота: " + cat2.age);
    }
}

class Cat {
    String name = "Том";
    int age = 2;
}
אנו מפעילים את התוכנית ורואים שהשדות מאותחלים עם הערכים שלנו:
Name первого кота: Том
Возраст первого кота: 2

Name второго кота: Том
Возраст второго кота: 2
יתרה מכך, לא משנה כמה חתולים ניצור, לכולם יהיה אותו שם וגיל. כלומר, פשוט שינינו את הערכים null ו-0 ל-"Volume" ו-2. שיטת האתחול הבאה היא דרך הבנאי. בואו ניצור קונסטרוקטור לחתול עם שני פרמטרים. בדרך כלל שמות הפרמטרים נעשים זהים לשמות השדות. במקרה זה, עליך להשתמש במילה כדי להתייחס לשדות this, וניתן לגשת לפרמטרים של בנאי בדרך הרגילה:
public Cat(String name, int age) {
    this.name = name;
    this.age = age;
}
שוב:
אתחול שדות - 3
בואו נוסיף גם בנאי ריק ללא פרמטרים כדי שהדוגמה הקודמת שלנו תעבוד. בשיטה main()נוסיף עוד שני חתולים באמצעות קונסטרוקטור עם פרמטרים.
public class Demo {
    public static void main(String[] args) {
        Cat cat1 = new Cat();
        Cat cat2 = new Cat();

        System.out.println("Name первого кота: " + cat1.name);
        System.out.println("Возраст первого кота: " + cat1.age);
        System.out.println();
        System.out.println("Name второго кота: " + cat2.name);
        System.out.println("Возраст второго кота: " + cat2.age);

        Cat cat3 = new Cat("Рыжик", 5);
        Cat cat4 = new Cat("Barsik", 9);

        System.out.println();
        System.out.println("Name третьего кота: " + cat3.name);
        System.out.println("Возраст третьего кота: " + cat3.age);
        System.out.println();
        System.out.println("Name четвертого кота: " + cat4.name);
        System.out.println("Возраст четвертого кота: " + cat4.age);
    }
}

class Cat {
    String name;
    int age;

    public Cat(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public Cat() {
    }
}
בואו נריץ את התוכנית:
Name первого кота: null
Возраст первого кота: 0

Name второго кота: null
Возраст второго кота: 0

Name третьего кота: Рыжик
Возраст третьего кота: 5

Name четвертого кота: Барсик
Возраст четвертого кота: 9
כפי שאתה יכול לראות, לחתולים שנוצרו בדרך זו יש אינדיבידואליות רבה יותר. ישנן דרכים אחרות לאתחל שדות ב-Java, אך אלה מספיקות כדי להתחיל.
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION