創作內容

3 GP

宣告, 變數與基本資料類型

作者:播磨拳兒│2018-08-28 17:03:56│巴幣:6│人氣:246
這回真的可以進入我們的Java基礎了

對於電腦而言,他是啥都不懂

唯有「下指令」才能驅使電腦動作

每個動作你都必須講得非常詳盡

這邊開始就要先教所謂的「宣告」和「變數」

=======================宣告與變數=======================

宣告 這個行為是程式語言基礎中的基礎中的基礎中的........

因為你要告訴電腦:我要開一個記憶體來裝ABC的資料

就像你跟別人(電腦)説:請在桌上(電腦腦內)放一個裝ABC資料用的容器(記憶體)

而這個容器我們必須明確地說道他是裝什麼用的

這個行為我們稱之為「宣告」

在Java的世界中

宣告是可以事後給資料

給值的動作我們稱之為指派(assign)

也就是說你可以先向電腦要容器,容器裡面可以不用裝資料

這個容器我們稱之為「變數」或「常數」(變數與常數的差異之後會解釋)

但是沒有資料的容器如果使用它會導致程式直接跳錯唷

那我們要如何跟電腦說我們要一個容器?

口語化一點:請給我一個叫小白的容器裝數字123

而程式的表示方式就是 int 小白 = 123;

大概就是這種感覺吧



(黑色杯子我喜歡叫小白不行嗎= =)

當然,正式的Java程式裡面不會用中文當變數名

int是基本資料類型中的「整數」,稍後會解說

而「小白」就是我們給這個容器的名字

所以完整的宣告式為: 資料型態 變數名 = 資料;

空白一定要空,不然會被視為同一個單字

最後面的分號「;」代表這一行程式結束,不然我寫兩行、三行甚至一萬行都會在程式裡面視為一行

但是也是有一些程式語言沒有分號,像是IOS現在比較力推的Swift

不過這不在我們的討論範圍,知道一下就好

容器名字盡量取有意義點的名字(這也是程式設計師最頭痛的地方= =,常要想變數名....)

因為我們在程式設計時不是只有宣告出來裝資料,當然還要應用

就像你拿杯子裝水,不是澆花就是喝水



只是杯子現在是裝123,那我們當然就要拿來應用啊

像是這邊我就會命名為number

所以完整的宣告式大概就像這樣: int number = 123;

在電腦的記憶體世界裡,沒有容器裝的資料是沒辦法顯示的

就像我現在跟你說一個阿薩噗魯的東西,你的腦袋裡不會知道我說的阿薩噗魯是啥鬼吧?

電腦也是一樣

你現在已經知道一個杯子叫number, 而這個number的杯子裡面裝的是整數的數字123

其實國中時候所學的「代數」就有點這樣的概念

那時候學的連立方程式也是一樣

X = 2    Y = 1

請問X + Y = ?

另外提醒,特殊名稱不能取

像是前面說到的「int」, 這些單字我們稱之為保留字(或是關鍵字)

我看光是命名規則就又可以多開一篇囉= =,算啦,不想多打廢話

但像是「int_number」這樣的命名是可以的唷

沒有硬性規定名稱長短,方便閱讀即可


=======================基本資料類型=======================

基本資料類型在程式中是最基本的單位

就好比現實生活中「電子、質子、中子」是一個物質的最小單位

而程式的最小單位就是基本資料類型



略提char(因為真的不常用)

他主要是宣告一個字母或是一個字

像是「你」「我」「他」「H」「a」「P」等等的

而宣告的時候要配合單引號 ' '夾住你要的字

比方說



或是



當然,你打兩個字以上他就會馬上跳錯



而最常用的大概就屬「int」「double」「boolean」這三種

基本上你想得到的整數數字幾乎都可以用「int」來裝

除非到了一個天文數字才有可能用到「long」去裝(但是你應該不會用來計算才對= =)

就像前面的例子

int number = 123;

這就表示number是「整數」,而數值為「123」

我們可以做個小實驗

在程式裡面我們就把他的最大值宣告出來並且顯示到Console內



如果我們對number +1會怎麼樣?

答案會變成2147483648嗎?

答案是錯

會變成.....



變成最小的負數了耶

所以反之,負數



如果再減一的話???



這就是記憶體爆掉回到最大(或最小)範圍的例子


所以我們老師曾開玩笑的說

想要快速地賺大錢

首先你先欠銀行-21億4千7百48萬3648元

你再多欠1元,你就成為億萬富翁啦


別傻啦,寫銀行程式的怎麼可能會有那麼好心讓你成為富翁

像是上面這個例子

我們就真的需要這個天文數字怎麼辦?

我們就把「int」改成「long」就可以了




這樣即使數字再大都不會爆掉了


另外一個常用的就屬浮點數

而浮點數float和double比較常用double就是因為

你想得到的小數點, double都可以裝得下

除非你對記憶體管理很斤斤計較

用float來寫也不是不可以,當然也比較省記憶體

大概就像你去買房子,對方折扣你10元那種感覺吧....

有跟沒有根本都沒差啊= =a.....有比較省嗎?


最後再來提boolean

這傢伙真的沒啥好說的

「是或否」「Yes or No」「對或錯」

boolean只有兩種狀態「true和false」

就醬?.......對.....就醬....
=======================補充說明=======================
雖說是補充

業界中真的非常少應用

但也不能不知道

其中兩種基本資料類型「long」和「float」

為何還要提他們,我們直接看實際例子



有注意到嗎? 浮點數的float小數點後面加了「f」

而long的整數後面加了「L」,實測一下, 10億以上的數字開始就要加
(精確數字為int的最大值2147483647,再往上加一就要加L了, 下圖為證)





這表示他們各自需要用「float」和「long」表示

大小寫均可

只是真的實際應用非.....................常的少
(老實說,就是少到忘記他們的存在,所以我才補充說明= =)


=======================總結=======================

以上就是Java最基礎的知識

也是最基本用到的最小單位

至於像是我程式裡面加一減一的運算

就留到下一篇再說吧


下回見
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4110548
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 5 篇留言

朝歌
"這樣即使數字再大都不會爆掉了"
不是不爆,是時(數)機(值)未到

08-28 22:19

播磨拳兒
不是不報是時候未到XDD,也對啦,只是很難爆而已08-28 22:35
朝歌
long類型變數要在數值結尾加上"l"or"L"
float類型變數要在數值結尾加上"f"or"F"
要宣告時不用,但後來要變動時就要,如:
long www = 666; /* 這裡可不用加"l"or"L" */
www = 999L; /* 這裡就要加了 */

float hahaha = 6.66; /* 這裡可不用加"f"or"F" */
hahaha = 9.99F; /* 這裡就要加了 */

可以補充一下

08-28 22:27

播磨拳兒
偏偏是兩個我最不常用的東西,確實該補充一下,我也惡補一下08-28 22:37
朝歌
還有,程式的初始寫法跟語法我覺得也可以講一下,不然新手會不知道該怎麼實作練習,如:

package Main; //套件

import Main.數據.數據採集; //匯入其他程式(參照其他程式,也有人這麼說)

public class Main /*宣告類別*/{

public static void main(String args [])/*程式進入點,程式會從這個{}中的程式碼開始逐一執行*/{

xxx.xxx();

xxx.666();

//程式碼....

}
}//程式結束!

08-28 22:37

播磨拳兒
現在提這些還太早,不易吸收,所以我並沒有解說08-29 08:43
朝歌
我覺得大大可以先規劃一下叫學內容,盡可能把這些基礎講清楚講明白,因為到後面程式不是重點,重點反而變成基礎觀念的運用了(繼續跟物件內容拚命去...)

08-28 22:42

播磨拳兒
我知道整個Java的精髓在OO的部分,只是新手連宣告在幹嘛都不知道就解釋太多名詞,不嚇跑人家都難……08-29 08:45
播磨拳兒
總是要按部就班,循序漸進的慢慢學吧? 你連走路都不會就想飛,太快了吧XDD08-29 08:46
朝歌
嗯,這樣也對,我當初反而是先學
package Main; //套件

import Main.數據.數據採集; //匯入其他程式(參照其他程式,也有人這麼說)

public class Main /*宣告類別*/{

public static void main(String args [])/*程式進入點,程式會從這個{}中的程式碼開始逐一執行*/{

xxx.xxx();

xxx.666();

//程式碼....

}
}//程式結束!

這些東西,也是上網爬文很久才弄懂,還是循序漸進比較好

08-29 08:49

播磨拳兒
你應該是本科系對吧?因為我非本科系,蹲補習班蹲出來的,所以才會對沒接觸過程式的人感同身受,這不是貶低你的意思,而是同為無知的新手時期,會知道他們需要什麼08-29 08:54
我要留言提醒:您尚未登入,請先登入再留言

3喜歡★jerryexcc 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:Java運作原理與JVM... 後一篇:符號; 邏輯與運算符號...

追蹤私訊切換新版閱覽

作品資料夾

leo25127更新至1226回
穿越奇幻日常系小說『公爵家的獨生子』更新囉,來看看我們無厘頭的ㄎ一ㄤ少爺怎麼在異世界作威作福吧!看更多我要大聲說昨天18:35


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】