java中如何聲明一個對象常量,java定義常量的方法

本文目錄一覽:

java聲明常量

static用來修飾屬性時稱為靜態屬性,不屬於某個具體的對象,屬於類,但是所有的對象都能對其進行修改

單個final修飾的屬性並不是常量,final表示的是不可改變性,但是屬於某個具體的對象

兩個加起來就是一個屬於類並且不可改變的屬性,即常量。

Java定義常量的方式有什麼?

String a= “a”;

public static String a = “a”

public static final String a = “a”

讀取配置文件中常量  通過@value(“”)獲取對應的值

枚舉 ,編寫枚舉類

java中如何聲明一個對象常量

例子:

final Object obj=new Object();

補充:

可以把成員變數改成private類型的,並且”只能”在構造方法裡面賦初值,這樣就不可以以後改動了

再次補充:

class A

{

public int i=0; //這裡因為是public的,所以a.i=1是可以的,如果改成private就非法了,也就無法通過對象修改i的值了,你是這個意思嗎?

}

你要的是如何聲明?這個好像沒有,你一定要這樣做嗎

java中如何定義常量?

Java 常量,有2種意思:

第1種意思,就是一個值,這個值本身,我們可以叫它常量,舉幾個例子:

整型常量: 123

實型常量:3.14

字元常量: ‘a’

邏輯常量:true、false

字元串常量:”helloworld”

這只是說法的問題,比如7這個數,我們就可以說「一個int類型的常量7 」

還有另一種:

第2種意思,表示不可變的變數,這種也叫常量,從語法上來講也就是,加上final,使用final關鍵字來修飾某個變數,然後只要賦值之後,就不能改變了,就不能再次被賦值了,據個例子:

final int i = 0;

那麼這個i的值是絕對不能再被更改了,只能是0,所以說是 不可變的變數,這句話看似矛盾,其實不矛盾,這句話這樣理解:

i就是一個int類型的變數,變數本身是可變的(可被更改值),但是現在加了final,所以不可變了,所以是不可變的變數。

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修飾的成員變數表示常量,值一旦給定就無法改變!

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/279383.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-20 15:03
下一篇 2024-12-20 15:04

相關推薦

  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變數時顯示的指定變數類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python定義函數判斷奇偶數

    本文將從多個方面詳細闡述Python定義函數判斷奇偶數的方法,並提供完整的代碼示例。 一、初步了解Python函數 在介紹Python如何定義函數判斷奇偶數之前,我們先來了解一下P…

    編程 2025-04-29
  • Python中的隊列定義

    本篇文章旨在深入闡述Python中隊列的定義及其應用,包括隊列的定義、隊列的類型、隊列的操作以及隊列的應用。同時,我們也會為您提供Python代碼示例。 一、隊列的定義 隊列是一種…

    編程 2025-04-29
  • Python符號定義和使用方法

    本文將從多個方面介紹Python符號的定義和使用方法,涉及注釋、變數、運算符、條件語句和循環等多個方面。 一、注釋 1、單行注釋 # 這是一條單行注釋 2、多行注釋 “”” 這是一…

    編程 2025-04-29
  • Python編程技巧:如何定義一個函數n!,並計算5!

    在這篇文章中,我們將研究如何使用Python編程語言定義一個能夠計算階乘的函數,並且演示如何使用該函數計算5!。 一、階乘函數的定義 在Python中,我們可以使用一個簡單的遞歸函…

    編程 2025-04-29
  • 面向對象編程、類和對象

    面向對象編程(Object-Oriented Programming, OOP)是一種編程方法,它將現實世界中的事物抽象為對象(Object),對象的屬性和方法被封裝成類(Clas…

    編程 2025-04-29
  • Python定義兩個列表的多面探索

    Python是一種強大的編程語言,開放源代碼,易於學習和使用。通過Python語言,我們可以定義各種數據類型,如列表(list)。在Python中,列表(list)在處理數據方面起…

    編程 2025-04-29
  • Python定義變數

    Python是一門高級編程語言,變數是Python編程中非常重要的一個概念。Python的變數定義方式非常簡單,可以在程序中隨時定義一個變數來存儲數據,這方便了整個程序的邏輯編寫,…

    編程 2025-04-28
  • Python:全局變數聲明與應用

    Python全局變數聲明和使用是一門重要的語言特性,理解和掌握全局變數,可以用於實現多個模塊之間的共享數據,讓代碼更加簡潔優雅。本文將從多個方面對Python聲明全局變數進行詳細的…

    編程 2025-04-28
  • Python中如何定義一個變數

    Python是一種高級編程語言,使用它您可以輕鬆地定義和操作變數。Python中的變數屬於動態類型變數,因此不需要在定義變數時指定其類型,而是在變數分配之前自動確定變數的數據類型。…

    編程 2025-04-28

發表回復

登錄後才能評論