日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java 中和_java中的和=是什么意思

發(fā)布時(shí)間:2025/3/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 中和_java中的和=是什么意思 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

展開(kāi)全部

變量是Java 程序的一個(gè)基本存儲(chǔ)單元。變量由一e5a48de588b63231313335323631343130323136353331333262366335個(gè)標(biāo)識(shí)符,類型及一個(gè)可選初始值的組合定義。此外,所有的變量都有一個(gè)作用域,定義變量的可見(jiàn)性,生存期。接下來(lái)討論變量的這些元素。

3.8.1 聲明一個(gè)變量

在Java 中,所有的變量必須先聲明再使用。基本的變量聲明方法如下:type identifier [ = value][,identifier [= value] ...] ;

type 是Java 的基本類型之一,或類及接口類型的名字(類和接口類型在本書(shū)第1部分的后部討論)。標(biāo)識(shí)符(identifier )是變量的名字,指定一個(gè)等號(hào)和一個(gè)值來(lái)初始化變量。請(qǐng)記住初始化表達(dá)式必須產(chǎn)生與指定的變量類型一樣(或兼容)的變量。聲明指定類型的多個(gè)變量時(shí),使用逗號(hào)將各變量分開(kāi)。

以下是幾個(gè)各種變量聲明的例子。注意有一些包括了初始化。

int a, b, c; // declares three ints, a, b, and c.int d = 3, e, f = 5; // declares three more ints, initializing // d and f.byte z = 22; // initializes z.

double pi = 3.14159; // declares an approximation of pi.char x = ’x’; // the variable x has the value ’x’.

你選擇的標(biāo)識(shí)符名稱沒(méi)有任何表明它們類型的東西。許多讀者記得FORTRAN 預(yù)先規(guī)定從I到N的所有標(biāo)識(shí)符都為整型,其他的標(biāo)識(shí)符為實(shí)型。Java 允許任何合法的標(biāo)識(shí)符具有任何它們聲明的類型。

3.8.2 動(dòng)態(tài)初始化

盡管前面的例子僅將字面量作為其初始值,Java 也允許在變量聲明時(shí)使用任何有效的表達(dá)式來(lái)動(dòng)態(tài)地初始化變量。

例如,下面的短程序在給定直角三角形兩個(gè)直角邊長(zhǎng)度的情況下,求其斜邊長(zhǎng)度。

// Demonstrate dynamic initialization.

class DynInit {

public static void main(String args[]) {

double a = 3.0, b = 4.0;

// c is dynamically initialized

double c = Math.sqrt(a * a + b * b);

System.out.println("Hypotenuse is " + c);

}

}

這里,定義了3個(gè)局部變量a,b,c。前兩個(gè)變量a和b初始化為常量。然而直角三角形的斜邊c被動(dòng)態(tài)地初始化(使用勾股定理)。該程序用了Java 另外一個(gè)內(nèi)置的方法sqrt(),它是Math類的一個(gè)成員,計(jì)算它的參數(shù)的平方根。這里關(guān)鍵的一點(diǎn)是初始化表達(dá)式可以使用任何有效的元素,包括方法調(diào)用、其他變量或字面量。

3.8.3 變量的作用域和生存期

到目前為止,我們使用的所有變量都是在方法main() 的后面被聲明。然而,Java 允許變量在任何程序塊內(nèi)被聲明。在第2章中已解釋過(guò)了,程序塊被包括在一對(duì)大括號(hào)中。一個(gè)程序塊定義了一個(gè)作用域(scope )。這樣,你每次開(kāi)始一個(gè)新塊,你就創(chuàng)建了一個(gè)新的作用域。你可能從先前的編程經(jīng)驗(yàn)知道,一個(gè)作用域決定了哪些對(duì)象對(duì)程序的其他部分是可見(jiàn)的,它也決定了這些對(duì)象的生存期。

大多數(shù)其他計(jì)算機(jī)語(yǔ)言定義了兩大類作用域:全局和局部。然而,這些傳統(tǒng)型的作用域不適合Java 的嚴(yán)格的面向?qū)ο蟮哪P汀.?dāng)然將一個(gè)變量定義為全局變量是可行的,但這是例外而不是規(guī)則。在Java 中2個(gè)主要的作用域是通過(guò)類和方法定義的。盡管類的作用域和方法的作用域的區(qū)別有點(diǎn)人為劃定。因?yàn)轭惖淖饔糜蛴腥舾瑟?dú)特的特點(diǎn)和屬性,而且這些特點(diǎn)和屬性不能應(yīng)用到方法定義的作用域,這些差別還是很有意義的。因?yàn)橛胁顒e,類(以及在其內(nèi)定義的變量)的作用域?qū)⒈煌七t到第6章當(dāng)討論類時(shí)再來(lái)討論。到現(xiàn)在為止,我們將僅僅考慮由方法或在一個(gè)方法內(nèi)定義的作用域。

方法定義的作用域以它的左大括號(hào)開(kāi)始。但是,如果該方法有參數(shù),那么它們也被包括在該方法的作用域中。本書(shū)在第5章將進(jìn)一步討論參數(shù),因此,現(xiàn)在可認(rèn)為它們與方法中其他變量的作用域一樣。

作為一個(gè)通用規(guī)則,在一個(gè)作用域中定義的變量對(duì)于該作用域外的程序是不可見(jiàn)(即訪問(wèn))的。因此,當(dāng)你在一個(gè)作用域中定義一個(gè)變量時(shí),你就將該變量局部化并且保護(hù)它不被非授權(quán)訪問(wèn)和/或修改。實(shí)際上,作用域規(guī)則為封裝提供了基礎(chǔ)。

作用域可以進(jìn)行嵌套。例如每次當(dāng)你創(chuàng)建一個(gè)程序塊,你就創(chuàng)建了一個(gè)新的嵌套的作用域。這樣,外面的作用域包含內(nèi)部的作用域。這意味著外部作用域定義的對(duì)象對(duì)于內(nèi)部作用域中的程序是可見(jiàn)的。但是,反過(guò)來(lái)就是錯(cuò)誤的。內(nèi)部作用域定義的對(duì)象對(duì)于外部是不可見(jiàn)的。

為理解嵌套作用域的效果,考慮下面的程序:

// Demonstrate block scope.

class Scope {

public static void main(String args[]) {

int x; // known to all code within main

x = 10;

if(x == 10) { // start new scope

int y = 20; // known only to this block

// x and y both known here.

System.out.println("x and y: " + x + " " + y);

x = y * 2;

}

// y = 100; // Error! y not known here

// x is still known here.

System.out.println("x is " + x);

}

}

正如注釋中說(shuō)明的那樣,在方法main() 的開(kāi)始定義了變量x,因此它對(duì)于main() 中的所有的隨后的代碼都是可見(jiàn)的。在if程序塊中定義了變量y。因?yàn)橐粋€(gè)塊定義一個(gè)作用域,y 僅僅對(duì)在它的塊以內(nèi)的其他代碼可見(jiàn)。這就是在它的塊之外的程序行y=100; 被注釋掉的原因。如果你將該行前面的注釋符號(hào)去掉,編譯程序時(shí)就會(huì)出現(xiàn)錯(cuò)誤,因?yàn)樽兞縴在它的程序塊之外是不可見(jiàn)的。在if程序塊中可以使用變量x,因?yàn)閴K(即一個(gè)嵌套作用域)中的程序可以訪問(wèn)被其包圍作用域中定義的變量。

變量可以在程序塊內(nèi)的任何地方被聲明,但是只有在他們被聲明以后才是合法有效的。因此,如果你在一個(gè)方法的開(kāi)始定義了一個(gè)變量,那么它對(duì)于在該方法以內(nèi)的所有程序都是可用的。反之,如果你在一個(gè)程序塊的末尾聲明了一個(gè)變量,它就沒(méi)有任何用處,因?yàn)闆](méi)有程序會(huì)訪問(wèn)它。例如,下面這個(gè)程序段就是無(wú)效的,因?yàn)樽兞縞ount 在它被定義以前是不能被使用的。

// This fragment is wrong!

count = 100; // oops! cannot use count before it is declared!

int count;

另一個(gè)需要記住的重要之處是:變量在其作用域內(nèi)被創(chuàng)建,離開(kāi)其作用域時(shí)被撤消。

這意味著一個(gè)變量一旦離開(kāi)它的作用域,將不再保存它的值了。因此,在一個(gè)方法內(nèi)定義的變量在幾次調(diào)用該方法之間將不再保存它們的值。同樣,在塊內(nèi)定義的變量在離開(kāi)該塊時(shí)也將丟棄它的值。因此,一個(gè)變量的生存期就被限定在它的作用域中。

如果一個(gè)聲明定義包括一個(gè)初始化,那么每次進(jìn)入聲明它的程序塊時(shí),該變量都要被重新初始化。例如,考慮這個(gè)程序:

// Demonstrate lifetime of a variable.

class LifeTime {

public static void main(String args[]) {

int x;

for(x = 0; x < 3; x++) {

int y = -1; // y is initialized each time block is enteredSystem.out.println("y is: " + y); // this always prints -1y = 100;System.out.println("y is now: " + y);

}

}

}

該程序運(yùn)行的輸出如下:

y is: -1

y is now: 100

y is: -1

y is now: 100

y is: -1

y is now: 100

可以看到,每次進(jìn)入內(nèi)部的for循環(huán),y都要被重新初始化為-1。即使它隨后被賦值為100,該值還是被丟棄了。

最后一點(diǎn):盡管程序塊能被嵌套,你不能將內(nèi)部作用域聲明的變量與其外部作用域聲明的變量重名。在這一點(diǎn)上,Java 不同于C和C++。下面的例子企圖為兩個(gè)獨(dú)立的變量起同樣的名字。在Java 中,這是不合法的。但在C/C++ 中,它將是合法的,而且2個(gè)變量bar將是獨(dú)立的。

// This program will not compile

class ScopeErr {

public static void main(String args[]) {

int bar = 1;

{ // creates a new scope

int bar = 2; // Compile-time error – bar already defined!

}

}

}

已贊過(guò)

已踩過(guò)<

你對(duì)這個(gè)回答的評(píng)價(jià)是?

評(píng)論

收起

總結(jié)

以上是生活随笔為你收集整理的java 中和_java中的和=是什么意思的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。