標識符的理解
在Java程序當中,使用EditPlus文本編輯器進行代碼編寫的時候,有一些單詞是藍色,又得是紅色,有的是黑色,有的是紫色,有的是粉色......
注意:在java源代碼中,在EditPlus工具中顯示的高亮顏色為黑色時,這個單詞屬于標識符。
標識符可以標識:類名,方法名,變量名,接口名,常量名...
凡是程序員自己又權(quán)力命名的單詞都是標識符。
注意:main是一個方法的名稱,屬于標識符,但是這個標識符不能修改,因為這個main是java開發(fā)者固定死的。
標識符的命名規(guī)則
命名規(guī)則屬于語法機制,必須遵守,不遵守命名規(guī)則標識符不符合語法。這樣,編譯器會報錯。
規(guī)則1:標識符只能由數(shù)字、字母(包括中文)、下劃線、美元符號$組成,不能含有其他符號。
規(guī)則2:標識符不能以數(shù)字開頭。
規(guī)則3:關(guān)鍵字不能做標識符。
例如:public、class、static、void,這些藍色的字體都是關(guān)鍵字,關(guān)鍵字是不能做標識符的。
規(guī)則4:標識符是嚴格區(qū)分大小寫的。大寫A和小寫a不一樣。
雖然java中的標識符嚴格區(qū)分大小寫,但是對于類名來說,如果一個java源文件中同使出現(xiàn)了A類和a類,那么誰在前就生成誰,以后編寫時最好不要出現(xiàn)這種情況。
規(guī)則5:理論上,標識符是沒有長度限制的。
創(chuàng)建一個Java文件,起名123.java可以嗎?
當然是可以的,在windows操作系統(tǒng)中,文件名叫做123.java沒毛病。123其實并不是標識符,只是一個文件名。只不過在123.jaa文件中,無法定義public的類。
標識符的命名規(guī)范
命名規(guī)則是語法,不遵守就會編譯報錯。
命名規(guī)范只是說,大家盡量按照統(tǒng)一的規(guī)范來進行命名,不符合規(guī)范也行,代碼是可以編譯通過的,但是你的代碼風格和大家不一樣,這個通常也是不允許的。
命名規(guī)則類似于現(xiàn)實世界中的法律。
命名規(guī)范類似于現(xiàn)實世界中的道德。
統(tǒng)一按照規(guī)范進行的話,代碼的可讀性很好。代碼很容易讓其他開發(fā)人員理解。
具體的命名規(guī)范有:
規(guī)范1:見名知意。(這個標識符在起名的時候,最好以看這個單詞就知道啥意思。)
規(guī)范2:遵循駝峰命名方式,什么是駝峰(一高一低,一高一低...)。
駝峰有利于單詞與單詞之間很好的分隔。
規(guī)范3:類名、接口名有特殊要求
類名和接口名首字母大寫,后面每個單詞首字母大寫。
例如:StudentTest、UserTest,這是類名、接口名。
規(guī)范4:變量名和方法名有特殊要求
變量名和方法名首字母小寫,后面每個單詞首字母大寫。
例如:nianLing(NianLing這樣就不符合了)
mingZi(MingZi這樣就不符合了)
規(guī)范5:所有常量名,全部大寫,并且單詞和單詞之間采用下劃線銜接。
例如:USER_AGE:用戶年齡
關(guān)鍵字的理解
在SUN公司開發(fā)JAVA語言的時候,提前定義好了一歇具有特殊含義的單詞,這些單詞全部小寫,具有特殊含義,不能用作標識符。
凡是在EditPlus中以藍色字體形式存在的都是關(guān)鍵字,具有特殊含義。
切記:java語言中的所有關(guān)鍵字都是全部小寫。
注意:java語言中是嚴格區(qū)分大小寫的!?。。?!
關(guān)鍵字:
public
static
void
class
byte
short
int
long
float
double
boolean
char
true
false
if
while
for
private
protected
else
do
continue
break
default
throw
throws
try
catch
final
finally
case
switch
transient
package
new
this
abstract
strictfp
native
goto
super
extends
implements
import
instanceof
return
synchronized
const
enum
assert
interface
volatile
......
目前這些關(guān)鍵字不需要單獨花時間去背,在以后的編寫過程中,就會慢慢熟悉了。
變量
字面量
開發(fā)軟件是為了解決顯示世界中的問題。而顯示世界中,有很多問題都是使用數(shù)據(jù)進行描述的。所以軟件執(zhí)行過程中最主要就是對數(shù)據(jù)的處理。
注意:在java語言中“數(shù)據(jù)”被稱為“字面量”
字面量可以分為很多種類:
整數(shù)型字面量:1 2 3 100 -20
浮點型字面量:1.3 3.14 5.2
布爾型字面量:true、false 沒有其它值了,表示真和假
字符型字面量:'a'、'b'
字符串型字面量:"a"、"b"
其中字符型和字符串型都是描述了現(xiàn)實世界中的文字。
需要注意的是:所有的字符型只能使用單引號括起來。所有的字符串型只能使用雙引號括起來。
字符型一定是單個字符才能稱為“字符型”。
分析:
10 + 20 = 30
在內(nèi)存中找一塊空間存儲10,再找一塊空間存儲20,cpu負責“+”運算,算完之后的結(jié)果是30,那么這個30也會在內(nèi)存當中找一塊臨時的空間存儲起來。
那有沒有可能多次訪問同一空間呢?
當然是可以的,這時就要引入“變量”。
public class BianLiang{
public static void main(String[] args){
//定義/聲明一個變量,起名i
int i = 10;
//以下這幾次訪問都是訪問的同一塊內(nèi)存空間。這樣使用變量后內(nèi)存空間就得到了復用。
System.out.println(i);
System.out.println(i);
System.out.println(i);
System.out.println(i);
System.out.println(i);
//以下程序表示訪問的時字符i以及字符串i,以下的兩個i和以上的i變量沒有任何關(guān)系。
System.out.println('i');
System.out.println("i");
}
}
javadoc的使用
javadoc命令用來生成幫助文檔,前提是注釋要寫到javadoc注釋的這種形式下才行。在這里不進行研究,等到做項目的時候,在做深入了解。
對變量的理解
變量其實就是內(nèi)存當中存儲數(shù)據(jù)的最基本的單元。
變量就是一個存儲數(shù)據(jù)的盒子。
在java語言當中任何數(shù)據(jù)都是有數(shù)據(jù)類型的,其中整數(shù)型:int,字符串型:String,浮點型:double,字符型:char。
不同的數(shù)據(jù)類型,在內(nèi)存中分配的空間大小不同。根據(jù)不同的類型,非陪不同大小的空間。
對于int這種整數(shù)類型,JVM會自動給int分配4個字節(jié)大小的空間。
1個字節(jié) = 8個比特位。
1個比特位就是一個1或0。比特位是二進制位。
1個int占有32個二進制位。
二進制位就是:滿2進1位
十進制位就是:滿10進1位
int i = 1實際上在內(nèi)存中是這么表示的:00000000 00000000 00000000 00000001
對于一個變量來說,包括三要素:變量的數(shù)據(jù)類型,變量的名字,變量中保存的值。
類型+名字+值
類型決定空間的大小。
起個名字是為了以后方便訪問。(以后訪問這個數(shù)據(jù)是通過名稱來訪問的)
值是變量保存的數(shù)據(jù)。
變量名屬于標識符。變量名命名規(guī)范:首字母小寫,后面每個單詞首字母大寫,遵循駝峰命名方式,見名知意。
變量的聲明與賦值
變量怎么聲明/定義,語法格式:數(shù)據(jù)類型 變量名;
例如:int nianLing;
在java語言中有一個規(guī)定,變量必須先聲明,再賦值才能訪問。
變量怎么賦值,語法格式:變量名 = 值;
運算符“=”,這個運算符在這里被稱為賦值運算符。
賦值運算符“=”的特點是:等號右邊先執(zhí)行,執(zhí)行完之后賦值給左邊的變量。
也可以在定義變量的同時,賦值。語法格式:數(shù)據(jù)類型 變量名 = 值;
重新賦值
int age = 18
System.out.println(age);
age = 20
System.out.println(age);
代碼執(zhí)行順序時從上向下依次逐行執(zhí)行。
在同一個域中(這個域怎么理解,后面講),變量名不能重名,不能重復聲明。
變量可以重新賦值,但在同一個域當中,不能重復聲明。(與類型無關(guān))
在一行上可以聲明多個變量
例如:int a,b,c = 100;
這樣的話,a,b都沒有賦值,只有c賦值100。所以,接下來要賦值a,b才能正常輸出。
或者:int a = 10,b = 20,c = 30;
這樣可以給abc同時賦值。
int a = 100;
System.out.println(a);
int b = a;
System.out.println(b);
這個代碼段,是可以實現(xiàn)的。原理就是把a變量中保存的值,“復制”一份傳給b。
到底什么叫做同一個域????
目前不好解釋,先這么記:一個大括號代表一個域。
{A域
{B域
{C域
}
}
}
A域包括B域,B域包括C域。
變量的分類
變量根據(jù)出現(xiàn)的位置進行劃分:
在方法體當中聲明的變量叫:局部變量。
在方法體之外,類體內(nèi)聲明的變量叫:成員變量。
注意:局部變量只在方法體當中有效,方法體執(zhí)行結(jié)束該變量的內(nèi)存就釋放了。
public class BianLang1{
//成員變量
int i = 100;
//主方法
public static void main(String[] args){
//局部變量
int k = 100;//main方法結(jié)束k內(nèi)存空間釋放。
}
}
變量的作用域
變量的有效范圍就叫作用域。
關(guān)于變量的作用域,可以記住一句話,出了大括號就不認識了。(死記)
java中有一個很重要的原則,就近原則(其他編程語言都有這個原則)。哪個離我近,就訪問哪個。
public class BianLiang2{
//成員變量
int i = 10000;
public static void main(String[] args){
//局部變量
int i = 100;//這個i的有效范圍是main方法。
}
public class void x(){
//局部變量
//這個i的有效范圍是x方法
int i = 200;//這個i和main方法中的i不在同一個域當中,不沖突。
}
}
{
int i = 100;
{
在這里可以訪問i變量
}
}
{
在這里無法訪問i變量
}
編寫程序練習
第一題,通過變量來描述學生的信息,學生信息包括:學號、姓名、性別、身高。其中學號采用整數(shù),姓名采用字符串。性別采用字符型,身高采用浮點型。具體的學生數(shù)據(jù)有兩份,第一個學生信息是:學號110,姓名張三,性別男,身高1.85米。第二個學生信息是:學號120,姓名李四,性別女,身高1.65米。要求最終將學生信息輸出到控制臺。
public class XueSheng{
public static void main(String[] args){
//第一個學生信息
int xueHao1 = 110;//整數(shù)類型
String xingMing1 = "張三";//字符串類型
char xingBie1 = '男';//字符型
double shenGao1 = 1.85;//浮點型
//第二個學生信息
int xueHao2 = 120;//整數(shù)類型
String xingMing2 = "李四";//字符串類型
char xingBie2 = '女';//字符型
double shenGao2 = 1.65;//浮點型
System.out.println("學號:"+(xueHao1));
System.out.println("姓名:"+(xingMing1));
System.out.println("性別:"+(xingBie1));
System.out.println("身高:"+(shenGao1)+"米");
System.out.println("----------------------");
System.out.println("學號:"+(xueHao2));
System.out.println("姓名:"+(xingMing2));
System.out.println("性別:"+(xingBie2));
System.out.println("身高:"+(shenGao2)+"米");
}
}
輸出結(jié)果為:
