CodeGym /وبلاگ جاوا /Random-FA /کلاس استاتیک در جاوا چیست؟
John Squirrels
مرحله
San Francisco

کلاس استاتیک در جاوا چیست؟

در گروه منتشر شد
جاوا یک زبان برنامه نویسی شی گرا است و اشیا بلوک های اصلی در جاوا هستند. با این حال، جاوا مفهوم یک کلاس استاتیک را نیز ارائه می دهد. کلاس ایستا کلاسی است که فقط می تواند متدها، متغیرها و کلاس های تودرتو باشد. در این مقاله به بررسی اینکه کلاس استاتیک چیست، چگونه کار می کند و پیاده سازی آن در جاوا را بررسی خواهیم کرد.

کلاس استاتیک در جاوا

کلاس ایستا در جاوا کلاسی است که قابل نمونه سازی نیست. یعنی ما نمی توانیم اشیایی از یک کلاس ثابت ایجاد کنیم. ما فقط می توانیم با استفاده از نام خود کلاس به اعضای آن دسترسی داشته باشیم. به عبارت دیگر، یک کلاس استاتیک، کلاسی است که فقط شامل اعضای ثابت است. کلاس های استاتیک اغلب برای گروه بندی روش های کاربردی مرتبط با هم استفاده می شوند. به عنوان مثال، کلاس Math در جاوا یک کلاس ثابت است که عملیات ریاضی مختلفی مانند یافتن مقدار حداکثر یا حداقل، توابع مثلثاتی و غیره را ارائه می دهد. ما می توانیم با استفاده از نام کلاس و عملگر نقطه به متدهای کلاس Math دسترسی داشته باشیم، مانند این: Math.max(5, 10) .

مثال

بیایید نگاهی به مثالی از یک کلاس استاتیک در جاوا بیندازیم. فرض کنید می خواهیم یک کلاس برای انجام عملیات رشته های مختلف مانند معکوس کردن یک رشته، یافتن طول یک رشته و غیره ایجاد کنیم. در این مثال، ما یک کلاس ثابت به نام StringUtils ایجاد کرده‌ایم که شامل دو روش استاتیک است: reverse و length . این متدها یک رشته را به عنوان آرگومان می گیرند و به ترتیب رشته معکوس و طول رشته را برمی گردانند. در متد main یک رشته رشته ایجاد کرده ایم و آن را به متدهای 'reverse' و 'length' کلاس StringUtils ارسال می کنیم .
public class StringUtils {

    public static String reverse(String str) {
        StringBuilder sb = new StringBuilder(str);
        return sb.reverse().toString();
    }

    public static int length(String str) {
        return str.length();
    }

    public static void main(String[] args) {
        String str = "Hello, World!";

        String reversedStr = StringUtils.reverse(str);
        int strLength = StringUtils.length(str);
        System.out.println(reversedStr);
        System.out.println(strLength);
    }
}
خروجی برنامه به صورت زیر خواهد بود:
!dlroW,olleH 13
در مثال به روز شده بعدی، یک کلاس تودرتو استاتیک به نام Formatter را در کلاس StringUtils اضافه کرده ایم . این کلاس تودرتو استاتیک همچنین حاوی یک متد استاتیک به نام format است که یک رشته را می گیرد و نسخه بزرگ آن را برمی گرداند. در روش main از کلاس تودرتو ثابت استاتیک Formatter برای قالب بندی رشته str و چاپ آن در کنسول استفاده کرده ایم . همچنین متدهای reverse و length کلاس StringUtils را برای معکوس کردن رشته و یافتن طول آن به ترتیب فراخوانی کرده ایم .
public class StringUtils {

    // nested Static class
    public static class Formatter {
        public static String format(String str) {
            return str.toUpperCase();
        }
    }

    public static String reverse(String str) {
        StringBuilder sb = new StringBuilder(str);
        return sb.reverse().toString();
    }

    public static int length(String str) {
        return str.length();
    }

    public static void main(String[] args) {
        String str = "Hello, World!";

        // Using static class
        String formattedStr = StringUtils.Formatter.format(str);
        System.out.println(formattedStr);

        String reversedStr = StringUtils.reverse(str);
        int strLength = StringUtils.length(str);
        System.out.println(reversedStr);
        System.out.println(strLength);
    }
}
خروجی برنامه به صورت زیر خواهد بود:
سلام دنیا! !dlroW,olleH 13
همانطور که می بینید، کلاس های استاتیک در جاوا همچنین می توانند شامل کلاس های تو در تو استاتیک باشند که می توانند برای گروه بندی عملکردهای مرتبط با هم استفاده شوند.

نتیجه

در نتیجه، کلاس استاتیک در جاوا کلاسی است که فقط می تواند متدها، متغیرها و کلاس های تودرتو باشد. ما نمی توانیم اشیاء یک کلاس ثابت را ایجاد کنیم و فقط می توانیم با استفاده از نام خود کلاس به اعضای آن دسترسی داشته باشیم. کلاس های استاتیک اغلب برای گروه بندی روش های کاربردی مرتبط با هم استفاده می شوند. در مثال بالا، نحوه ایجاد یک کلاس ثابت و استفاده از آن برای انجام عملیات رشته های مختلف را دیدیم.
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION