導航:首頁 > 編程語言 > java介面常量定義

java介面常量定義

發布時間:2022-09-04 11:29:29

Ⅰ 如何實現java介面中定義的常量

介面中的常量會被實現該介面的類繼承並覆蓋,用類名.常量命在main()里調用,常量名本身可以在類的其他方法中直接使用

Ⅱ Java如何定義常量

java沒有叫全局變數的東西(有全局變數還叫OO嗎?);原因:Java將所有設計都基於對象的基礎上。Java的全局變數只能對一個類內部而言。能夠在類內的任何地方使用的變數就是全局變數,而只在某個特定的函數或者局部的程序塊內使用的變數則是局部變數。
所以:聲明為static的變數實質上就是全局變數。當聲明一個對象時,並不產生static變數的拷貝,而是該類所有的實例變數共用同一個static變數。
使用:java中只有static和非static變數,這個屬於每個類的,如果需要全局變數比如PI(3.14...),可以寫一個類Math,定義static變數PI,調用Math.PI就可以使用了,這樣就達到我們使用全局變數的目的了。
1、將一個 package 中需要的常量集中到一個 XyzConstants 之類的 interface 里聲明,
就像普通的 field 那樣聲明就行了。

復制代碼代碼如下:

public interface SomeConstants {
public intPORT = 80;
public String IP = "166.111.16.1";
public boolean test = true;
}

就可以。
用到常量的類 implements 這個介面 .. 簡單情況這樣就行樂。

2、更 formal 的做法是寫一個類維護所有的常量,負責從配置文件(例如properties文件或xml文件)讀取所有的常量的值。
可以在一個 static {} 塊里從配置文件中初始化所有 static 的變數。 這樣有利於提高軟體的可配置性。改些東東不用動代碼,比較好。
最好要有 config Tool 負責寫配置文件。
3.其他說明:
定義一個公開類,在裡面加static 變數。

復制代碼代碼如下:

public class infos{
private infos(){
}
public static int PORT = 80;
public static String IP = "166.111.166.111";
public static boolean test = true;
public static final String MYNAME="zzz"; //定義中用了final,就是不能改變的。
}

在別的class中調用這些變數就是: infos.PORT,infos.IP,infos.test,infos.MYNAME
多個class交互時可以通過改變這些變數的值來傳遞信息。比如 infos.test被別的class改成了false,可能表示某一件事已經失敗或已經做過,其它class就可以提前知道這些信息。

其中infos.MYNAME被定義為了final,即成為常量。用final修飾的成員變數表示常量,值一旦給定就無法改變!

Ⅲ java的介面中為什麼只能定義常量不能定義變數

介面是高一級別的抽象。不能被實例化,所以只能定義常量,默認常量是public static final 的
定義了變數需要實例化,賦值才能使用,跟介面違背

Ⅳ .Java介面中如何定義常量

用final關鍵字
public static final 類型 常量命 = 值

Ⅳ 關於java中介面定義常量和類定義常量的區別

介面常量修飾格式固定的,public final 必不可少,你不寫,他也自動補全!
類的常量沒這個特殊要求,看情況定;
介面常量只有子類實現後才可以使用!
類常量,創建實例就可以用,也或者靜態調用!

Ⅵ java中如何定義常量

1、java中使用final和static關鍵字定義常量。首先打開編輯器,編寫代碼。當常量作為一個類的變數時,一定要給它賦值,否則編譯會失敗的。然後定義一個YEAR的常量,用來表示年,一年365天是固定的,這里習慣上大寫,然後賦值為365:

Ⅶ 如何在Java中定義常量

首先看示例:
/**
* Method One
*/
interface ConstantInterface {
String SUNDAY = "SUNDAY";
String MONDAY = "MONDAY";
String TUESDAY = "TUESDAY";
String WEDNESDAY = "WEDNESDAY";
String THURSDAY = "THURSDAY";
String FRIDAY = "FRIDAY";
String SATURDAY = "SATURDAY";
}
/**
* Method Two
*/
enum ConstantEnum {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}
/**
* Method Three
*/
class ConstantClassField {
public static final String SUNDAY = "SUNDAY";
public static final String MONDAY = "MONDAY";
public static final String TUESDAY = "TUESDAY";
public static final String WEDNESDAY = "WEDNESDAY";
public static final String THURSDAY = "THURSDAY";
public static final String FRIDAY = "FRIDAY";
public static final String SATURDAY = "SATURDAY";
}
/**
* Method Four
* http://www.ibm.com/developerworks/cn/java/l-java-interface/index.html
*/
class ConstantClassFunction {
private static final String SUNDAY = "SUNDAY";
private static final String MONDAY = "MONDAY";
private static final String TUESDAY = "TUESDAY";
private static final String WEDNESDAY = "WEDNESDAY";
private static final String THURSDAY = "THURSDAY";
private static final String FRIDAY = "FRIDAY";
private static final String SATURDAY = "SATURDAY";
public static String getSunday() {
return SUNDAY;
}
public static String getMonday() {
return MONDAY;
}
public static String getTuesday() {
return TUESDAY;
}
public static String getWednesday() {
return WEDNESDAY;
}
public static String getThursday() {
return THURSDAY;
}
public static String getFirday() {
return FRIDAY;
}
public static String getSaturday() {
return SATURDAY;
}
}
public class TestConstant {
static final String day = "saturday";
public static void main(String[] args) {
System.out.println("Is today Saturday?");
System.out.println(day.equalsIgnoreCase(ConstantInterface.SATURDAY));
System.out.println(day.equalsIgnoreCase(ConstantEnum.SATURDAY.name()));
System.out.println(day.equalsIgnoreCase(ConstantClassField.SATURDAY));
System.out.println(day.equalsIgnoreCase(ConstantClassFunction
.getSaturday()));
}
}

方法一採用介面(Interface)的中變數默認為static final的特性。
方法二採用了Java 5.0中引入的Enum類型。
方法三採用了在普通類中使用static final修飾變數的方法。
方法四類似方法三,但是通過函數來獲取常量。

首先定義全局變數似乎有違Java的面向對象的封裝特性,增加的耦合。所以最佳的方法是避免定義全局變數。如果是參數等,可以寫入配置文件。如果實在是必須的,方法二是最為推薦的。方法三是大家都能想到的,非常的直觀。方法一和方法三本質上一樣。方法四提供了靈活性,具體參考引用【1】。

Ⅷ Java 介面常量反模式及如何定義 Java 常量

其實 Java 的介面常量是一種反模式,理由如下:
1. 介面是不能阻止被實現或繼承的,也就是說子介面或實現中是能夠覆蓋掉常量的定義,這樣通過父,子介面(或實現) 去引用常量是可能不一致的
2. 同樣的,由於被實現或繼承,造成在繼承樹中可以用大量的介面, 類 或實例去引用 同一個常量,從而造成介面中定義的常量污染了命名空間。(Java 編譯器竟然允許使用實例去引用類變數)
3. 介面暗含的意思是:它是需被實現的,代表著一種類型,它的公有成員是要被暴露的 API。而在介面中定義的常量說不上是 API

Ⅸ java介面中可以定義常量變數嗎

java介面中的類欄位全部為常量,定義的方法全部為抽象方法。

閱讀全文

與java介面常量定義相關的資料

熱點內容
unix網路編程卷4 瀏覽:806
找靚機app下單什麼時候發貨 瀏覽:411
android一個應用兩個進程 瀏覽:801
linux硬碟復制 瀏覽:806
php圖片伺服器搭建 瀏覽:798
下載壓縮文件怎麼打開 瀏覽:192
新建文件夾叫什麼名字 瀏覽:565
windows20的開機命令 瀏覽:332
微信一般在電腦的那個文件夾 瀏覽:509
go在win7下編譯特別慢 瀏覽:256
光遇ios耳機安卓為什麼沒有 瀏覽:904
小米手機桌面文件夾經常自動散開 瀏覽:607
小米電話手錶用什麼app進行設置 瀏覽:265
虛擬列印機pdf下載 瀏覽:671
jdk編譯運行方法 瀏覽:459
android執行shell命令 瀏覽:349
程序員頭像女 瀏覽:57
有什麼可以變頭發顏色的app 瀏覽:935
玩具解壓屋游戲下載 瀏覽:849
我的世界拔刀劍伺服器地址id 瀏覽:891