Rumah  >  Artikel  >  Java  >  Penghitungan aruhan asas Java

Penghitungan aruhan asas Java

WBOY
WBOYke hadapan
2022-05-26 11:50:332291semak imbas

Artikel ini membawa anda pengetahuan yang berkaitan tentang java, yang terutamanya memperkenalkan isu yang berkaitan dengan penghitungan, termasuk operasi asas penghitungan, sokongan untuk penghitungan mengikut kelas koleksi, dll. Mari lihat kandungan di bawah, Saya harap ia akan membantu semua orang.

Penghitungan aruhan asas Java

Kajian yang disyorkan: "tutorial video java" Nilai hanya boleh menjadi salah satu daripada beberapa nilai tetap, jika tidak, pengkompil akan melaporkan ralat yang dibenarkan pengkompil untuk mengawal nilai haram yang diberikan oleh program sumber semasa penyusunan ini tidak boleh dicapai semasa peringkat pembangunan dengan menggunakan pembolehubah biasa.

Selepas JDK1.5, gunakan kata kunci enum untuk mentakrifkan jenis baharu, dipanggil jenis penghitungan


Enum (enum) dan kelas (kelas), antara muka ( antara muka) ialah tahap yang sama
Pengenalan kes

Tentukan warna, hanya warna merah, hijau dan biru boleh ditakrifkan

Kaedah biasa


Penghitungan aruhan asas JavaJadi bagaimana untuk menyelesaikan masalah ini supaya warna hanya boleh memilih salah satu daripada tiga warna? ? ?
Kelas enum dan kata kunci enum

Kelas penghitungan yang ditakrifkan menggunakan kata kunci enum sebenarnya bersamaan dengan mentakrifkan kelas, dan kelas ini mewarisi kelas Kelas Enum sahaja .

public enum Color {
    RED,
    GREEN,
    BLUE;}

Kaedah penghitungan yang biasa digunakan Penghitungan aruhan asas Java

Pembina ini tidak boleh dipanggil terus dari luar dan hanya boleh Akses subkelasnya, pembina ini dipanggil secara automatik

Mengembalikan nama penghitunganprotected Enum(String name,int ordinal)
Mengembalikan nama penghitunganpublic final String name()
Mengembalikan nombor siri penghitungan, bermula dari 0 secara lalaipublic String toString()
Hakim sama ada dua penghitungan adalah samapublic final int ordinal()
public final boolean equals(Object other)

Kod

public class EnumTest {
    public static void main(String[] args) {
        //定义一个color变量,只能设置为RED、GREEN、BLUE
        Color color = Color.BLUE;
        System.out.println(color);
        System.out.println(color.name());
        System.out.println(color.toString());//三种方式都是打印名字
        System.out.println(color.ordinal());//返回枚举的序号RED--0、GREEN--1、BLUE--2

        Color[] values = Color.values();//返回所有枚举类型
        System.out.println(Arrays.toString(values));
    }}

Asas Operasi penghitungan Penghitungan aruhan asas Java

Penghitungan dengan pembina

Intipati penghitungan ialah subkelas yang mewarisi kelas Enum Pengkompil JVM menyusun penghitungan dan menghasilkan

.

final class

Enumerasi tidak dibenarkan dipanggil dari luar, jadi ia hanya boleh diubah suai secara peribadi


Pembina hanya boleh dipanggil dalam objekPenghitungan aruhan asas Java

Penghitungan aruhan asas Java

Kaedah utama
public enum Color {
    RED(10),
    GREEN(20),
    BLUE;
    private int Number;//属性

    private Color() {//默认构造方法
        System.out.println("无参构造器被调用了!!!");
    }

    private Color(int Number) {
        this.Number = Number;
        System.out.println("有参构造器被调用了!!!");
    }
    
    public int getNumber(){
        return Number;
	}}

public class EnumTest {
    public static void main(String[] args) {
        Color color = Color.RED;
        System.out.println(color.name());
        System.out.println(color.getNumber());//获取Number的值
    }}

Antara muka pelaksanaan enumerasiPenghitungan aruhan asas Java

Dalam jenis enumerasi, anda boleh mewarisi antara muka Terdapat dua cara untuk melaksanakan antara muka, sama ada melaksanakan kaedah dalam kelas penghitungan, atau melaksanakan kaedah di dalam objek

<.>

Kaedah 1: Laksanakan kaedah dalam antara muka dalam objek penghitungan

Kaedah 2: Laksanakan kaedah dalam antara muka dalam kelas penghitungan

interface info{
    public String getColor();}public enum Color implements info{
    RED{
        @Override
        public String getColor() {return "红色";}
    },
    GREEN{
        @Override
        public String getColor() {return "绿色";}
    },
    BLUE{
        @Override
        public String getColor() {return "蓝色";}
    };}

Kaedah utama

interface info{
    public String getColor();}public enum Color implements info{

    RED,GREEN,BLUE;
    
    @Override
    public String getColor() {
        return null;
    }}

public class EnumTest {
    public static void main(String[] args) {
        Color color = Color.RED;
        System.out.println(color.getColor());
    }}
Enumerasi melaksanakan kaedah abstrak

Penghitungan aruhan asas Java

Dalam jenis penghitungan , anda boleh Tentukan kaedah abstrak, secara khusus dilaksanakan oleh objek

Kelas penghitungan

Kaedah utama

public enum Color {
    RED{
        @Override
        public String getColor() {return "红色";}
    },
    GREEN{
        @Override
        public String getColor() {return "绿色";}
    },
    BLUE{
        @Override
        public String getColor() {return "蓝色";}
    };
    //在枚举中定义一个抽象方法,通过枚举对象实现
    public abstract String getColor();}

public class EnumTest {
    public static void main(String[] args) {
        Color color = Color.BLUE;
        System.out.println(color.getColor());
    }}
Enumerasi melaksanakan mod tunggal

Penghitungan aruhan asas Java

Enumerasi digunakan untuk memastikan bahawa data berada dalam julat yang ditentukan Jika terdapat hanya satu jenis (satu nilai) dalam enumeration ), hanya terdapat satu objek dalam enumeration, maka mod singleton boleh dilaksanakan.

Kelas Enum

Kaedah utama

public enum Singletion {
    SINGLETION;
    public void Method(){
        System.out.println("使用枚举实现单例模式!!!");
    }}

public class EnumTest {
    public static void main(String[] args) {
        Singletion singletion=Singletion.SINGLETION;
        singletion.Method();
    }}
Tetapkan kelas sokongan penghitungan

Penghitungan aruhan asas Java

Selepas JDK1.5, dua subkelas baharu telah ditambahkan pada antara muka Set dan Peta:

dan

Subkelas

EnumSet

一个专门Set实现与枚举类型一起使用。 枚举集中的所有元素都必须来自创建集合时明确或隐式指定的单个枚举类型
EnumSet是一个抽象类,不能直接创建实例对象,但是可以通过方法来使用。Penghitungan aruhan asas Java
EnumSet.allOf(Class<e> elementType)</e>把一个枚举类型全部填充到集合中去
public static <e extends enum>> EnumSet<e> complementOf(EnumSet<e> s)</e></e></e>创建与指定枚举集具有相同元素类型的枚举集,最初包含此类型的所有元素,该元素 不包含在指定的集合中。
public static <e extends enum>> EnumSet<e> copyOf(EnumSet<e> s)</e></e></e>创建与指定的枚举集相同的元素类型的枚举集,最初包含相同的元素(如果有)

代码

import java.util.EnumSet;public class EnumTest {
    public static void main(String[] args) {
        EnumSet<color> set = EnumSet.allOf(Color.class);//把一个枚举类型全部填充到集合中去
        for (Color c : set) {
            System.out.println(c.name());
        }
    }}</color>

Penghitungan aruhan asas Java

EnumMap

EnumMap一个专门Map实现与枚举类型键一起使用。 枚举映射中的所有密钥必须来自创建映射时明确或隐式指定的单个枚举类型。 枚举地图在内部表示为数组。 这种表示非常紧凑和高效。

代码

import java.util.EnumMap;public class EnumTest {
    public static void main(String[] args) {
        EnumMap<color> map = new EnumMap(Color.class);
        map.put(Color.RED, "红色");
        map.put(Color.GREEN, "绿色");
        map.put(Color.BLUE, "蓝色");
        System.out.println(map.get(Color.RED));
    }</color>

Penghitungan aruhan asas Java

推荐学习:《java视频教程

Atas ialah kandungan terperinci Penghitungan aruhan asas Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam