Dasar Java : Nested Class – Class Lokal

Oleh : Reza Ervani

بسم الله الرحمن الرحيم

Class-class lokal adalah seperti class inner (nested non statik) yang didefinisikan didalam suatu metode atau blok  ({ ... })di dalam suatu metode. Berikut contohnya :


class Outer {

    public void printText() {

        class Local {

        }

        Local local = new Local();
    }

}

Class lokal hanya dapat diakses dari dalam metode atau blok dimana mereka didefinisikan.

Class lokal dapat mengakses member (fields dan metode) dari class penaungnya seperti class inner.

Class lokal juga dapat mengakses variabel lokal di dalam metode atau blok yang sama, untuk memberikan variabel tersebut kita harus mendeklarasikannya dengan  final.

Dari class lokal Java 8 juga dapat mengakses variabel dan parameter lokal pada metode dimana class lokal tersebut dideklarasikan. Parameter harus dideklarasikan dengan final atau jadi effectually final. Effectually final berarti bahwa variabel tersebut tidak pernah berubah setelah dia diinisialisasi. Parameter metode seringkali pula bersifat effectually final.

Class-class lokal juga dapat dideklarasikan di dalam metode statik. Dalam hal ini, class lokal hanya dapat mengakses bagian statik dari class penaungnya. Class lokal tersebut tidak dapat berisi semua jenis deklarasi statik (konstanta diperkenankan – variabel dideklarasikan dengan static final), karena secara alami class lokal tersebut bersifat non statik – bahkan jika dideklarasikan didalam suatu metode statik

Beberapa aturan di shadowing juga berlaku untuk class-class lokal sebagaimana untuk class-class inner.

About Reza Ervani 426 Articles
Adalah pendiri programming.rezaervani.com -

Be the first to comment

Leave a Reply

Your email address will not be published.


*


This site uses Akismet to reduce spam. Learn how your comment data is processed.