JavaRush /Java Blog /Random-ID /Rehat kopi #190. Bagaimana mengkonversi Integer ke String...

Rehat kopi #190. Bagaimana mengkonversi Integer ke String. Kelas dalam statis dan non-statis di Java

Dipublikasikan di grup Random-ID

Bagaimana mengkonversi Integer ke String

Sumber: FreeCodeCamp Tutorial ini akan memberi tahu Anda beberapa cara untuk mengubah bilangan bulat menjadi string. Rehat kopi #190.  Bagaimana mengkonversi Integer ke String.  Kelas dalam statis dan non-statis di Java - 1Untuk mengkonversi variabel dari satu tipe data ke tipe data lainnya, bahasa Java menggunakan berbagai metode. Dalam hal mengonversi Integer ke String, Anda dapat menggunakan salah satu metode berikut:
  • Menggunakan metode Integer.toString() .
  • Menggunakan metode String.valueOf() .
  • Menggunakan metode String.format() .
  • Menggunakan kelas DecimalFormat .

Cara mengonversi bilangan bulat menjadi string di Java menggunakan Integer.toString()

Metode Integer.toString() membutuhkan bilangan bulat untuk dikonversi sebagai parameter. Contoh sintaksis:
Integer.toString(INTEGER_VARIABLE)
Kode sampel:
class IntToStr {
    public static void main(String[] args) {

        int age = 2;
        String AGE_AS_STRING = Integer.toString(age);

        System.out.println("The child is " + AGE_AS_STRING + " years old");
        // The child is 2 years old
    }
}
Dalam contoh ini, kami membuat bilangan bulat age dan memberinya nilai 2 . Untuk mengonversi variabel age menjadi string, kami meneruskannya sebagai parameter ke metode Integer.toString(): Integer.toString(age) . Kami kemudian menyimpan nilai string baru ini dalam variabel string bernama AGE_AS_STRING . Terakhir, kami menggabungkan variabel string baru dengan string lain: "Anaknya adalah " + AGE_AS_STRING + " tahun" . Sekarang pertanyaannya adalah: akankah terjadi kesalahan jika kita menggabungkan variabel age dengan string lain tanpa konversi apa pun?
class IntToStr {
    public static void main(String[] args) {

        int age = 2;

        System.out.println("The child is " + age + " years old");
        // The child is 2 years old
    }
}
Outputnya sama seperti pada contoh di mana kita perlu mengubah bilangan bulat menjadi string. Namun bagaimana kita tahu jika konversi tipe benar-benar berhasil? Untuk melakukan ini, kita dapat memeriksa tipe variabel menggunakan objek getClass() . Sesuatu seperti ini:
class IntToStr {
    public static void main(String[] args) {

        int age = 2;

        String AGE_AS_STRING = Integer.toString(age);


        System.out.println(((Object)age).getClass().getSimpleName());
        // Integer

        System.out.println(AGE_AS_STRING.getClass().getSimpleName());
        // String
    }
}
Sekarang kita dapat memverifikasi bahwa ketika variabel age dibuat , itu adalah Integer , dan setelah konversi tipe menjadi String .

Cara mengonversi bilangan bulat menjadi string di Java menggunakan String.valueOf()

Metode String.valueOf() juga mengambil variabel untuk dikonversi menjadi string sebagai parameter.
class IntToStr {
    public static void main(String[] args) {

        int age = 2;

        String AGE_AS_STRING = String.valueOf(age);

        System.out.println("The child is " + AGE_AS_STRING + " years old");
        // The child is 2 years old
    }
}
Kode di atas mirip dengan kode pada bagian sebelumnya:
  1. Kami membuat bilangan bulat bernama age .
  2. Kami meneruskan umur bilangan bulat sebagai parameter ke metode String.valueOf(): String.valueOf(age) .
Sekarang Anda dapat memeriksa apakah konversi tipe berfungsi menggunakan objek getClass() :
System.out.println(((Object)age).getClass().getSimpleName());
// Integer

System.out.println(AGE_AS_STRING.getClass().getSimpleName());
// String

Cara mengonversi bilangan bulat menjadi string di Java menggunakan String.format()

Metode String.format() mengambil dua parameter: penentu format dan variabel yang akan diformat. Berikut ini contohnya:
class IntToStr {
    public static void main(String[] args) {

        int age = 2;

        String AGE_AS_STRING = String.format("%d", age);

        System.out.println("The child is " + AGE_AS_STRING + " years old");
        // The child is 2 years old

    }
}
Dalam contoh ini, kita meneruskan dua parameter ke metode String.format() : "%d" dan age . "%d" adalah penentu format yang menunjukkan bahwa variabel yang diformat adalah bilangan bulat. age , yang merupakan parameter kedua, akan diubah menjadi string dan disimpan dalam variabel AGE_AS_STRING . Anda juga dapat memeriksa jenis variabel sebelum dan sesudah konversi:
System.out.println(((Object)age).getClass().getSimpleName());
// Integer

System.out.println(AGE_AS_STRING.getClass().getSimpleName());
// String

Cara mengonversi bilangan bulat menjadi string di Java menggunakan DecimalFormat

Kelas DecimalFormat digunakan untuk memformat angka desimal di Java. Ini dapat digunakan dengan berbagai cara, tetapi untuk saat ini kita akan menggunakannya untuk mengubah bilangan bulat menjadi string. Berikut ini contohnya:
import java.text.DecimalFormat;

class IntToStr {
    public static void main(String[] args) {

        int age = 2;

        DecimalFormat DFormat = new DecimalFormat("#");


        String AGE_AS_STRING = DFormat.format(age);

        System.out.println("The child is " + AGE_AS_STRING + " years old");
        // The child is 2 years old


        System.out.println(((Object)age).getClass().getSimpleName());
        // Integer

        System.out.println(AGE_AS_STRING.getClass().getSimpleName());
        // String

    }
}
Mari kita lihat kode ini:
  1. Untuk dapat menggunakan kelas DecimalFormat dalam contoh spesifik, kami mengimpornya: import java.text.DecimalFormat; .
  2. Kami telah membuat variabel integer age .
  3. Kami kemudian membuat objek DecimalFormat baru yang disebut DFormat .
  4. Dengan menggunakan metode format() objek , kami mengonversi age menjadi string: DFormat.format(age); .

Kesimpulan

Pada artikel ini, kita berbicara tentang mengubah bilangan bulat menjadi string di Java. Anda melihat contoh kode menggunakan tiga metode berbeda: Integer.toString() , String.valueOf() , String.format() , dan kelas DecimalFormat . Setiap contoh menunjukkan proses konversi dan pengecekan tipe data suatu variabel sebelum dan sesudah konversi.

Kelas dalam statis dan non-statis di Java

Sumber: Medium Dengan artikel ini, Anda akan mempelajari perbedaan antara kelas dalam statis dan non-statis di Java. Di Java, kelas dalam non-statis (juga dikenal sebagai kelas dalam atau objek dalam) memiliki referensi implisit ke instance kelas luar yang terlampir. Ini berarti bahwa mereka memiliki akses ke variabel instan dan metode kelas luar dan dapat digunakan untuk membuat beberapa instance kelas dalam yang dikaitkan dengan berbagai instance kelas luar. Mari kita lihat kode berikut:
class Outer {
    private int x;
 class Inner {
        public void printX() {
            System.out.println(x);
        }
    }
}
Outer outer1 = new Outer();
outer1.x = 5;
Outer.Inner inner1 = outer1.new Inner();
inner1.printX(); // prints 5
Outer outer2 = new Outer();
outer2.x = 10;
Outer.Inner inner2 = outer2.new Inner();
inner2.printX(); // prints 10
Di sini, kelas Outer memiliki kelas dalam, Inner , yang memiliki metode printX . Dan, pada gilirannya, mencetak nilai x dari Outer instance di sekitarnya . Kode ini menciptakan dua instance Outer ( outer1 dan outer2 ) dan dua instance Inner ( inner1 dan inner2 ), masing-masing dikaitkan dengan instance Outer yang berbeda . Ketika printX memanggil inner1 dan inner2 , ia mencetak nilai x dari instance Outer yang sesuai . Karena kelas dalam non-statis memiliki referensi implisit ke instance di sekitarnya, kelas tersebut memerlukan memori tambahan untuk menyimpan referensi ini. Ini berarti bahwa mereka kurang efisien dalam memori dibandingkan kelas dalam statis, yang tidak memiliki referensi implisit ke instance terlampir dan tidak memerlukan memori tambahan untuk tujuan ini. Di sisi lain, kelas dalam statis tidak dapat mengakses variabel atau metode instance kelas luar, sehingga kemampuannya terbatas. Mereka berguna ketika Anda ingin mendefinisikan kelas yang terkait erat dengan kelas luar dan tidak memerlukan akses ke variabel atau metode instannya. Kelas dalam non-statis (juga dikenal sebagai kelas dalam atau objek dalam) berguna ketika Anda ingin mendefinisikan kelas yang terkait erat dengan kelas lain dan memiliki akses ke variabel instan dan metode kelas luar.

Menggunakan kelas dalam non-statis

Berikut adalah beberapa situasi di mana Anda mungkin ingin menggunakan kelas dalam non-statis:
  1. Ketika kelas dalam perlu mengakses variabel instan atau metode kelas luar yang bukan static . Karena kelas dalam non-statis memiliki referensi implisit ke instance kelas luar di sekitarnya, mereka dapat langsung mengakses variabel dan metode instance non-statis.

  2. Saat Anda ingin mendefinisikan beberapa instance dari kelas dalam yang terkait dengan instance berbeda dari kelas luar. Misalnya, Anda mungkin ingin membuat kelas dalam non-statis Button untuk kelas Dialog , di mana setiap instance Button dikaitkan dengan instance Dialog lain dan dapat mengakses variabel instan dan metode instance Dialog .

  3. Ketika Anda ingin mendefinisikan kelas yang hanya digunakan dalam konteks kelas luar dan tidak dimaksudkan untuk digunakan secara mandiri. Kelas dalam non-statis hanya dapat diakses dari kelas luar, sehingga lebih terenkapsulasi dan kurang rentan terhadap penggunaan yang tidak diinginkan.

Menggunakan Kelas Dalam Statis

Kita dapat menggunakan kelas dalam statis jika kita tidak memerlukan akses ke variabel instan atau metode kelas luar apa pun, dan karena alasan ini kelas tersebut tidak perlu memiliki referensi implisit ke instance kelas luar di sekitarnya. Hal ini menjadikannya lebih hemat memori dibandingkan kelas dalam non-statis, yang memiliki referensi implisit ke instance di sekitarnya. Katakanlah kita perlu mendesain grafik yang berisi lintasan (tepi) dan titik potong (node). Kelas Node dan Edge terkait erat dengan kelas Graph dan hanya digunakan dalam konteks objek Graph . Mendefinisikannya sebagai kelas dalam statis memperjelas bahwa mereka adalah bagian dari kelas Graph dan tidak dimaksudkan untuk digunakan secara independen.
public class Graph {

    Map <String, Node> nodeMap;

    public Graph () {
        nodeMap = new HashMap<>();
    }

    static class Node {
        String name;
        List <Edge> edgeList;

        public Node(String name) {
            this.name = name;
            edgeList = new ArrayList();
        }
    }

    static class Edge {
        Node source;
        Node Destination;
        String type;

        public Edge(Node source, Node destination, String type) {
            this.Destination = destination;
            this.source = source;
            this.type = type;
        }
    }

}
Kelas dalam statis tidak dapat mengakses variabel atau metode instan. Berikut adalah contoh untuk mengilustrasikan fakta bahwa kelas dalam statis tidak dapat mengakses variabel instan atau metode kelas luar:
class Outer {
    private int x;
static class Inner {
        public void printX() {
            System.out.println(x);  // compilation error: cannot access x
        }
    }
}
Dalam contoh ini, kelas Outer memiliki variabel instance pribadi x dan kelas dalam statis Inner . Kelas Inner memiliki metode printX yang mencoba mengakses nilai x dari instance Outer di sekitarnya . Namun, kode ini tidak dapat dikompilasi karena kelas dalam statis tidak dapat mengakses variabel atau metode instance kelas luar. Untuk mengakses variabel instan atau metode kelas luar dari kelas dalam statis, Anda dapat:
  1. Buat variabel atau metode instan statis . Ini akan memungkinkan kelas dalam untuk merujuknya menggunakan nama kelas luar (misalnya Outer.x ).

  2. Berikan sebuah instance dari kelas luar ke kelas dalam dan simpan dalam sebuah bidang. Kelas dalam kemudian dapat mengakses variabel instan atau metode kelas luar melalui bidang ini.

Berikut ini contoh yang menunjukkan cara melakukan ini:
class Outer {
    private int x;
public void setX(int x) {
        this.x = x;
    }
    static class Inner {
        Outer outer;
        public Inner(Outer outer) {
            this.outer = outer;
        }
        public void printX() {
            System.out.println(outer.x);
        }
    }
}
Outer outer = new Outer();
outer.setX(5);
Outer.Inner inner = new Outer.Inner(outer);
inner.printX();  // prints 5
Dalam contoh ini, kelas Outer memiliki metode setX non-statis yang menetapkan nilai x , dan kelas dalam statis Inner dengan bidang luar bertipe Outer . Kelas Inner memiliki konstruktor yang mengambil instance Outer dan menyimpannya di bidang luar . Metode printX kelas dalam kemudian dapat mengakses bidang x dari instance luar menggunakan notasi luar.x.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION