列舉型別欄位是什麼意思
Java常用類
包裝類
由於Java語言中的基本型別不是面向物件,並不具備物件的性質,實際使用存在很多不便。Java在java。lang包中提供了八種基本型別對應的包裝類,可以方便地將它們轉化為物件進行處理,並且可以呼叫一些方法。Java中基本型別和包裝類的對應關係如下表所示:
從JDK1。5版本開始,引入了自動裝箱和自動拆箱的 概念。裝箱指的是將基本型別的值轉換成包裝類物件,拆包指的是將包裝類物件轉換成基本型別的值。自動裝箱和拆箱在Java中很常見,在賦值或者方法呼叫時都有可能發生。、
裝箱與拆箱基本操作程式碼如下:
package
com
。
Cuc
。
demo01
;
/** * 裝箱與拆箱 * @author ZpF */
public
class
BoxingAndUnBoxing
{
public
static
void
main
(
String
[
]
args
)
{
Integer
x
=
new
Integer
(
10
)
;
//手動裝箱
Integer
y
=
11
;
//自動裝箱
int
m
=
x
。
intValue
(
)
;
//手動拆箱
int
n
=
y
;
//自動拆箱
System
。
out
。
println
(
m
)
;
System
。
out
。
println
(
n
)
;
}
}
自動裝箱和拆箱雖然能使程式碼變的簡潔但也存在一些問題,透過以下程式碼進行說明。
package
com
。
Cuc
。
demo01
;
/** * 自動裝箱中的一個陷阱 * @author ZpF */
public
class
BoxingAndUnBoxing
{
public
static
void
main
(
String
[
]
args
)
{
/** * Java會快取-128-127的數值,在範圍內會複用這個物件(記憶體分配是同一個地址) */
Integer
i1
=
10
;
Integer
i2
=
10
;
System
。
out
。
println
(
i1
==
i2
)
;
//true i1和i2都指向記憶體中同一地址,所以為同一物件
System
。
out
。
println
(
i1
。
equals
(
i2
)
)
;
//true
/** * Java會快取-128-127的數值,超過這一範圍會重新建立一個物件 */
Integer
i3
=
210
;
Integer
i4
=
210
;
System
。
out
。
println
(
i3
==
i4
)
;
//false
System
。
out
。
println
(
i3
。
equals
(
i4
)
)
;
//true
}
}
包裝類中的常量
每一種包裝類都提供了一些常量,比較典型的常量有如下所示:
每一種不同的包裝類提供不同的常量,以上只是舉例其中部分進行說明,真正用到時還要具體分析。
包裝類的構造方法
Integer類、Double類、Boolean類提供了兩種構造方法。
以基本資料型別的值為入參建立物件。
以String字串為入參建立物件。
示例程式碼如下:
package
com
。
Cuc
。
demo01
;
/** * 包裝類的構造方法 */
public
class
Consructor
{
public
static
void
main
(
String
[
]
args
)
{
Integer
i1
=
new
Integer
(
10
)
;
Integer
i2
=
new
Integer
(
“10”
)
;
Double
i3
=
new
Double
(
20。1
)
;
Double
i4
=
new
Double
(
“20。1”
)
;
Boolean
i5
=
new
Boolean
(
true
)
;
Boolean
i6
=
new
Boolean
(
“false”
)
;
}
}
Character類只提供了一種構造方法,以char字元為建立一個Character類物件。
package
com
。
Cuc
。
demo01
;
/** * Character包裝類的構造方法 */
public
class
Consructor
{
public
static
void
main
(
String
[
]
args
)
{
Character
i7
=
new
Character
(
‘帥’
)
;
}
}
包裝類中的常用方法
每一種包裝類都提供了許多常用方法,在具體需要時查閱相關資料選擇合適的方法。
Math類
Java中提供了Math類來處理複雜的數學運算,如平方根、對數、三角函式、指數等。Math類中還提供了一些常用的數學常量,如PI、E等。Math類中的方法都被定義為static靜態方法,直接使用Math。method格式呼叫(method代表方法名)。Math類沒有構造方法,也就是說Math類不能例項化物件,因為數學本身就是抽象的,沒有具體例項化物件。Math類是java。lang基礎包中提供的。
列舉
列舉型別在程式語言中很常見,它是在JDK1。5版本引入的特性,是一種特殊的資料型別。列舉型別將一系列含義相同、預先定義好的常量組合起來,其中每個常量都各自有定義好的相同型別的值。
列舉定義
Java中列舉型別的定義格式如下:
public enum
[
列舉類名
]
{
[
列舉值程式碼塊
]
}
因為列舉和Class類一樣,都是需要被外部訪問的,所以許可權修飾符都是public;enum為列舉型別的關鍵字;列舉類的名稱與Class定義相同,一般為首字母大寫,因為表示的是常量,所以列舉型別的欄位一般為全大寫字母。“[列舉程式碼塊]”中定義了每個列舉值的名稱和內容。
下面是一個關於顏色列舉的定義的示例:
package
com
。
Cuc
。
demo01
;
/** * 列舉值定義 * @author ZpF */
public
enum
ColorEnum
{
RED
,
GREEN
,
YELLOW
,
BLUE
;
}
使用列舉值可以直接透過“列舉類名。列舉值名”的方式來訪問。
列舉的常見方法
列舉型別的物件繼承java。lang。Enum類。列舉型別中的常見方法如下所示:
程式碼示例:
package
com
。
Cuc
。
demo01
;
/** * enum使用 * @author ZpF */
public
class
UseNum
{
public
static
void
main
(
String
[
]
args
)
{
ColorEnum
colorArray
[
]
=
ColorEnum
。
values
(
)
;
for
(
int
i
=
0
;
i
<
colorArray
。
length
;
i
++
)
{
System
。
out
。
println
(
“依次列印列舉型別成員”
+
colorArray
[
i
]
)
;
}
System
。
out
。
println
(
“RED和GREEN的比較結果為:”
+
ColorEnum
。
RED
。
compareTo
(
ColorEnum
。
GREEN
)
)
;
for
(
int
i
=
0
;
i
<
colorArray
。
length
;
i
++
)
{
System
。
out
。
println
(
“依次獲取列舉型別成員索引位置:”
+
colorArray
[
i
]
。
ordinal
(
)
)
;
}
}
}
執行結果:
列舉型別中也可以新增自定義的構造方法,但是構造方法必須是私有的,被關鍵字private修飾。
package
com
。
Cuc
。
demo01
;
/** * 列舉值定義 * @author ZpF */
public
enum
ColorEnum
{
RED
(
“紅色”
)
,
GREEN
(
“綠色”
)
,
YELLOW
(
“黃色”
)
,
BLUE
(
“藍色”
)
;
public
String
color
;
private
ColorEnum
(
)
{
}
private
ColorEnum
(
String
color
)
{
this
。
color
=
color
;
}
}
package
com
。
Cuc
。
demo01
;
/** * enum使用 * @author ZpF */
public
class
UseNum
{
public
static
void
main
(
String
[
]
args
)
{
ColorEnum
colorArray
[
]
=
ColorEnum
。
values
(
)
;
for
(
int
i
=
0
;
i
<
colorArray
。
length
;
i
++
)
{
System
。
out
。
println
(
“依次列印列舉型別成員:”
+
colorArray
[
i
]
。
color
)
;
}
}
}
執行結果:
,https://blog。csdn。net/qq_54823875/article/details/119180103