JavaRush /Blog Jawa /Random-JV /Ngopi #190. Kepiye cara ngowahi Integer dadi String. Kela...

Ngopi #190. Kepiye cara ngowahi Integer dadi String. Kelas batin statis lan non-statis ing Jawa

Diterbitake ing grup

Kepiye cara ngowahi Integer dadi String

Sumber: FreeCodeCamp Tutorial iki bakal ngandhani sawetara cara kanggo ngowahi integer dadi senar. Ngopi #190.  Kepiye cara ngowahi Integer dadi String.  Kelas batin statis lan non-statis ing basa Jawa - 1Kanggo ngowahi variabel saka siji jinis data menyang liyane, basa Jawa nggunakake macem-macem cara. Yen sampeyan ngowahi Integer dadi String, sampeyan bisa nggunakake salah sawijining cara ing ngisor iki:
  • Nggunakake metode Integer.toString() .
  • Nggunakake metode String.valueOf() .
  • Nggunakake metode String.format() .
  • Nggunakake kelas DecimalFormat .

Carane ngowahi integer menyang string ing Jawa nggunakake Integer.toString()

Cara Integer.toString () njupuk integer kanggo ngowahi minangka parameter. Tuladha 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
    }
}
Ing conto iki, kita nggawe umur integer lan menehi nilai 2 . Kanggo ngowahi variabel umur kanggo senar, kita liwati minangka parameter kanggo Integer.toString () cara: Integer.toString (umur) . Kita banjur nyimpen nilai senar anyar iki ing variabel senar sing diarani AGE_AS_STRING . Pungkasan, kita gabungke variabel string anyar karo string liyane: "Bocah iku " + AGE_AS_STRING + " taun" . Saiki pitakonan iki: bakal ana kesalahan yen kita mung nggabungake variabel umur karo senar liyane tanpa konversi?
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
    }
}
Output padha karo conto ing ngendi kita kudu ngowahi integer dadi senar. Nanging kepiye kita ngerti yen konversi jinis kasebut bener-bener bisa digunakake? Kanggo nindakake iki, kita bisa mriksa jinis variabel nggunakake obyek getClass () . Kaya iki:
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
    }
}
Saiki kita bisa verifikasi manawa variabel umur digawe , yaiku Integer , lan sawise konversi jinis dadi String .

Carane ngowahi integer menyang string ing Jawa nggunakake String.valueOf()

Metode String.valueOf () uga njupuk variabel kanggo diowahi dadi senar minangka 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 ing ndhuwur padha karo kode ing bagean sadurunge:
  1. Kita nggawe integer sing diarani umur .
  2. We liwati umur integer minangka parameter kanggo String.valueOf () cara: String.valueOf (umur) .
Saiki sampeyan bisa mriksa yen konversi jinis bisa digunakake kanthi nggunakake obyek getClass() :
System.out.println(((Object)age).getClass().getSimpleName());
// Integer

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

Carane ngowahi integer menyang string ing Jawa nggunakake String.format ()

Metode String.format () njupuk rong paramèter: a specifier format lan variabel kanggo format. Iki contone:
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

    }
}
Ing conto iki, kita liwati loro paramèter kanggo String.format () cara: "%d" lan umur . "%d" minangka penentu format sing nuduhake yen variabel sing diformat minangka integer. age , yaiku parameter kapindho, bakal diowahi dadi senar lan disimpen ing variabel AGE_AS_STRING . Sampeyan uga bisa mriksa jinis variabel sadurunge lan sawise konversi:
System.out.println(((Object)age).getClass().getSimpleName());
// Integer

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

Carane ngowahi integer menyang string ing Jawa nggunakake DecimalFormat

Kelas DecimalFormat digunakake kanggo ngowahi format angka desimal ing Jawa. Bisa digunakake kanthi macem-macem cara, nanging saiki bakal digunakake kanggo ngowahi integer dadi senar. Punika conto:
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

    }
}
Ayo ndeleng kode iki:
  1. Kanggo bisa nggunakake kelas DecimalFormat ing conto tartamtu, kita ngimpor: ngimpor java.text.DecimalFormat; .
  2. Kita wis nggawe umur variabel integer .
  3. Kita banjur nggawe obyek DecimalFormat anyar disebut DFormat .
  4. Nggunakake format obyek () cara , kita diowahi umur kanggo senar: DFormat.format (umur); .

Kesimpulan

Ing artikel iki, kita ngomong babagan ngowahi integer dadi string ing Jawa. Sampeyan ndeleng conto kode nggunakake telung cara beda: Integer.toString () , String.valueOf () , String.format () , lan kelas DecimalFormat . Saben conto nuduhake proses konversi lan mriksa jinis data variabel sadurunge lan sawise konversi.

Kelas batin statis lan non-statis ing Jawa

Sumber: Sedheng Kanthi artikel iki, sampeyan bakal sinau beda antarane kelas batin statis lan non-statis ing Jawa. Ing Jawa, kelas batin non-statis (uga dikenal minangka kelas njero utawa obyek njero) nduweni referensi implisit kanggo instance enclosing saka kelas njaba. Iki tegese padha duwe akses menyang variabel conto lan cara saka kelas njaba lan bisa digunakake kanggo nggawe sawetara kedadean saka kelas njero sing digandhengake karo kedadean beda saka kelas njaba. Ayo ndeleng kode ing ngisor iki:
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
Ing kene, kelas Outer duwe kelas njero, Inner , sing duwe metode printX . Lan, banjur, nyithak nilai x saka conto Outer ing saubengé . Kode kasebut nggawe rong conto Outer ( outer1 lan outer2 ) lan rong instance Inner ( inner1 lan inner2 ), saben digandhengake karo conto Outer sing beda . Nalika printX nelpon inner1 lan inner2 , iku prints Nilai x saka conto Outer sing cocog . Amarga kelas utama non-statis duwe referensi implisit kanggo Kayata lingkungan, padha mbutuhake memori tambahan kanggo nyimpen referensi iki. Iki tegese padha kurang memori efisien saka kelas utama statis, sing ora duwe referensi implisit kanggo conto enclosing lan ora mbutuhake memori tambahan kanggo maksud iki. Ing sisih liya, kelas batin statis ora bisa ngakses variabel utawa metode conto kelas njaba, saengga kemampuane diwatesi. Iku migunani yen sampeyan pengin nemtokake kelas sing ana hubungane karo kelas njaba lan ora mbutuhake akses menyang variabel utawa metode conto. Kelas batin non-statis (uga dikenal minangka kelas njero utawa obyek njero) migunani nalika sampeyan pengin nemtokake kelas sing ana hubungane karo kelas liyane lan nduweni akses menyang variabel conto lan metode kelas njaba.

Nggunakake kelas batin non-statis

Ing ngisor iki sawetara kahanan sing sampeyan pengin nggunakake kelas batin non-statis:
  1. Nalika kelas njero kudu ngakses variabel conto utawa metode kelas njaba sing ora statis . Amarga kelas njero non-statis duwe referensi implisit kanggo instance lingkungan saka kelas njaba, bisa langsung ngakses variabel lan metode conto non-statis.

  2. Yen sampeyan pengin nemtokake sawetara kedadean saka kelas njero digandhengake karo kedadean beda saka kelas njaba. Contone, sampeyan bisa uga pengin nggawe tombol kelas batin non-statis kanggo kelas Dialog , ing ngendi saben tombol Tombol digandhengake karo conto Dialog liyane lan bisa ngakses variabel lan metode conto Dialog .

  3. Yen sampeyan pengin nemtokake kelas sing mung digunakake ing konteks kelas njaba lan ora dimaksudake kanggo digunakake kanthi mandiri. Kelas batin non-statis mung bisa diakses saka kelas njaba, saengga luwih enkapsulasi lan kurang rentan kanggo panggunaan sing ora disengaja.

Nggunakake Static Inner Classes

Kita bisa nggunakake kelas utama statis yen kita ora perlu akses kanggo sembarang variabel Kayata utawa cara saka kelas njaba, lan kanggo alesan iki padha ora perlu duwe referensi implisit kanggo Kayata lingkungan saka kelas njaba. Iki nggawe memori luwih efisien tinimbang kelas batin non-statis, sing duwe referensi implisit kanggo conto ing saubengé. Kita kudu ngrancang grafik sing ngemot lintasan (pinggiran) lan titik persimpangan (simpul). Kelas Node lan Edge raket banget karo kelas Graph lan mung digunakake ing konteks obyek Graph . Nemtokake minangka kelas batin statis ndadekake cetha yen dheweke minangka bagean saka kelas Graph lan ora dimaksudake kanggo digunakake kanthi mandiri.
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 batin statis ora bisa ngakses variabel utawa metode conto Ing ngisor iki conto kanggo nggambarake kasunyatan manawa kelas batin statis ora bisa ngakses variabel conto utawa metode kelas njaba:
class Outer {
    private int x;
static class Inner {
        public void printX() {
            System.out.println(x);  // compilation error: cannot access x
        }
    }
}
Ing conto iki, kelas Outer nduweni variabel conto pribadi x lan kelas batin statis Inner . Kelas Inner duwe metode printX sing nyoba ngakses nilai x saka conto Outer ing saubengé . Nanging, kode iki ora bakal dikompilasi amarga kelas batin statis ora bisa ngakses variabel utawa metode conto kelas njaba. Kanggo ngakses variabel conto utawa metode kelas njaba saka kelas batin statis, sampeyan bisa:
  1. Nggawe variabel utawa cara statis statis . Iki bakal ngidini kelas njero kanggo deleng wong-wong mau nggunakake jeneng kelas njaba (eg Outer.x ).

  2. Pass instance saka kelas njaba menyang kelas njero lan simpen ing lapangan. Kelas njero banjur bisa ngakses variabel conto utawa metode kelas njaba liwat lapangan iki.

Iki conto sing nuduhake carane nindakake iki:
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
Ing conto iki, kelas Outer duwe metode setX non-statis sing nyetel nilai x , lan kelas batin statis Inner kanthi lapangan njaba saka jinis Outer . Kelas Inner nduweni konstruktor sing njupuk conto Outer lan nyimpen ing lapangan njaba . Metode printX kelas Inner banjur bisa ngakses lapangan x saka conto njaba nggunakake notasi outer.x .
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION