java.util.Scanner

這句語法
是指
java--繼承中的父親嗎?
util--兒子嗎?
Scanner--方法嗎?

請問是不是這種意思呢?
謝謝

另外請問util是哪個英文單字呢?
謝謝
文章關鍵字
pinget9 wrote:
請問是不是這種意思呢?

不是。
這是代表在java.util套件中的一個類別
Scanner它不是方法(method)


pinget9 wrote:

另外請問util是哪個英文單字呢?

utillity
java.util為Java API中的一項Package
Scanner則是此Package的其中一個Class
詳細API可參考Java Platform SE 7

util的全名為Utility,指工具的意思
累積太多的Galgame玩不完啦~~~!
謝謝兩位的回答

那是以下三個都是類別嗎?
java是類別
util也是類別
Scanner也是類別嗎?
是這種意思嗎?
謝謝
pinget9 wrote:
謝謝兩位的回答那是以...(恕刪)

你舉的例子當中,只有Scanner是類別(Class)

簡單來說,Java API就像是一個巨大的Java圖書館
圖書館內部有java.util, java.awt, java.lang, javax.swing等等的200多種套件(Package),就像圖書館內的每個書架
Java Platform SE 7左上角的窗格全都是套件
而每個套件內部都有許多屬於自己的類別(Class),就像是書架上的書(點選一項套件,左下窗格就會顯示一些類別)
寫Java的時候如果要在當下的類別使用其他不屬於此類別的類別,則需在前頭import該類別的套件
例如說: 如果你要在A.class底下放入Scanner類別,A.class的頂端就要加一行import java.util;
這樣Java編譯器才知道你的Scanner的來源,就像是告訴圖書管理員這本書是從哪個書架上拿下來的
累積太多的Galgame玩不完啦~~~!

victorlin11 wrote:
你舉的例子當中,只有...(恕刪)

謝謝您這麼熱心的解說
套件(Package),可以說它是物件嗎?
感覺就像是物件
謝謝
java.util.Scanner 這是「套件包」中的一個 CLASS 類別

它實際的意思,相當於:/java/util/Scanner

套件包,就是把一堆 Class 分門別類的存放在「目錄」中


白話舉例:

硬碟中有一個 AV 目錄
然後還有分:有碼、無碼 等等目錄
最後目錄裡面就是一個個影片

AV.無碼.影片名稱

AV.無碼 = 是存放的目錄

影片名稱 = 才是真正的影片


那為什麼不寫成:
AV\無碼\影片名稱(檔案總管的寫法)
或者
AV/無碼/影片名稱 (網址的寫法)

因為:JAVA 是跨平台的

每種作業系統,目錄符號都不同,例如:
unix-lieke 系統的「目錄區隔符號」是 / (斜線)
windows 系統的「目錄區隔符號」是 \ (反斜線)


如果用 windwos 的寫法:AV\無碼\影片名稱

那麼在 unix-like 系統,就無法辨識了
反之,也是一樣

為了相容各種作業系統,以便可以跨平台
乾脆用 . 來當 [目錄區隔符號]


********************************

java 不成文的英文命名慣例:

1.
Class 一律大寫開頭

比如:java.util.Scanner

Scanner 開頭是大寫,這一定是 Class

2.
變數一律小寫開頭,若由多個單字組成,第二個單字後開頭大寫

例:

java 的變數命名,慣例是這樣:

money
myMoney
payMyMoney

別的程式語言則是用底線居多

money
my_money
pay_my_money

3.
方法最後會有 () 小括號 ,因為方法會帶入引數、參數

abc ← 這是一個變數,因為後面沒有 () 小括號

abc () ← 這是一個方法,因為後面有 () 小括號


4.
物件名稱,也是一律大寫開頭
但是:Class 後面會接 ( ) 小括號,物件後面不會接小括號

MyScanner = new Scanner ( )

Scanner ( ) ← 這是一個 Class

MyScanner ← 這是一個物件

Class 後面的小括號 ( ),也是用來帶入 agv 引數的,用於建構式(建構子)


※ 了解這些命名慣例後,就可以很容易看出那一堆英文字串,是幹什麼用的


******************************************

Class 和 「物件」 的關係:

Class 一種設計藍圖,本身並不真實存在(是虛的東西),可以看作類似:配方、食譜...這樣的東西。

Class 必須經過 new「實體化」這個步驟,才是「物件」

「物件」是能使用的,Class 無法直接用

舉例:

實體化物件:
小明 = new 人類()

成員屬性(變數):
小明.頭髮 = "金色"
小明.眼睛 = "藍色"

成員方法:即物件能使用的動作、功能
小明.吃("飯")


可口可樂 = new 可樂配方()
百事可樂 = new 可樂配方()

卡布其諾 = new 咖啡配方()
爪哇 = new 咖啡配方()

糖醋排骨 = new 食譜 ( )
麻辣豆腐 = new 豆腐 ( )



其實 JAVA 是全 UTF-8 的語言
變數、方法、物件、Clsss,完全是可以用中文來命名的!

不過編譯時需加參數 -encoding utf-8
還有撰寫原始碼時,需使用 utf-8 的文字編碼格式



題外話:

如果有玩過《真女神轉生》《神奇寶貝》這一類的 RPG 遊戲
其概念很類似

這一類的遊戲,可以抓怪物、惡魔,來當仲魔或寵物

抓到的仲魔或寵物,不呼叫出來,是不能用的

把仲魔或寵物呼叫出來,加入隊伍參與戰鬥,這個動作叫做 new「實體化」

而呼叫仲魔或寵物,需要消耗遊戲中的能量(就像電腦要消耗記憶體)。


fedora wrote:
java.util....(恕刪)

這篇文章很實用
收下了
謝謝
再請教一個問題
為什麼有的程式碼是這樣
小明 = new 人類()
int 分數[]=new int[3]
為什麼小明的前面沒有像下列的int呢?
謝謝

pinget9 wrote:
為什麼有的程式碼是這樣
小明 = new 人類()
int 分數[]=new int[3]
為什麼小明的前面沒有像下列的int呢?...(恕刪)


JAVA 是一種「強型態」(非常嚴謹)的程式語言

任何 "變數" 使用前,都必須經過 "宣告"
且 "宣告" 的時候,必須指明「資料型態」(DATA TYPE)

如果變數使用前沒有"宣告",或者"宣告"時沒有指明「資料型態」,編譯時,編譯器就不會給過,在編譯時就會出錯。



JAVA 的 變數「資料型態」,有以下類型:
(網路上找的資料,直接轉貼的)
--------------------------------------
基礎型別(Basic Type)有八種
int 整數
long 長整數
short 短整數
byte 超短整數

float 單精確度浮點數
double 雙精確度浮點數

char 單一字元

boolean 布林

還有一種例外的就是
String 字串

物件型別(Object Type)有兩大類
一個就是物件(Object)
另一種叫陣列(Array)

----------------------------------------------

這個建議要看書本,有比較詳細的解說,比如那些整數的具體差別,是能表示的數字長度各為多少,還有佔用多少記憶體。書本會有較詳細的解說。

********************************************

int 分數[]=new int[3]

這個應該是錯誤的寫法

因為 new (實體化,召喚),只能用於 Class
而 Class,慣例上,第一個英文字母要大寫,且 Class 後面會有小括號

[ ] 中括號,是陣列


*********************************************


題外話:

使用中文的:變數、方法、class、物件

有一個問題是:無法清楚的表示什麼用途

如同前面說的:程式語言在「命名」的時候,都有一套慣例

比如:
Car ( ) ←首個字母大小,後面有小括號,這是 Class
car ← 首個字母小寫,後面沒小括號,這是變數
car ( ) ← 首個字母小寫,且後面有小括號,這是方法

由第一個英文字母的大小寫,可以很方便的看出,到底是 Class、變數、還是方法。

但如用中文的:
車 ( )

車 ( )

中文根本沒有大小寫之分,雖然由後面有無小括號,還能判斷一些,但就無法分辨到底是 Class 還是 方法。


所以中文命名,必須搭配一種「匈牙利命名法」

匈牙利命名法

匈牙利命名法 - 維基百科


「匈牙利命名法」,簡單的說:就是在 變數、方法、Class ...等等,前面加上資料型態。

比如:

// 先宣告變數:

int int小明的成績 ;
int int小華的成績 ;

// 把數值代入變數:

int小明的成績 = 100 ;
int小華的成績 = 60 ;

※ 只有變數才會有 "基本資料型態",所以前面有加 "基本資料型態" 的,就是變數。

再比如:

// 實體化一個 class
o我的購物車 = new c購物車 ( ) ;

註:
o 代表 obj 物件
c 代表 class 類別

// 指定成員屬性變數的值
o我的購物車.int放的東西項目數 = 99 ;

// 使用物件的方法
o我的購物車.m拿出物品 ("綠茶") ;
o我的購物車.m放入物品 ("咖啡") ;

註:
m 代表 Method 方法



諸如此類,用英文單字縮寫,來代表資料型態,加在中文變數的前面,就可以很方便知道那個中文變數什麼作用。

匈牙利命名法,變數前要加什麼縮寫,隨自己高興就行了,沒有強制規定和慣例,以自己或開發團隊容易看得懂且統一為主。


寫程式,變數用中文是不錯的,因為華人的母語本來就不是英文,為了命名變數還要去查字典,就會影響寫作的速度,無法專心在寫程式這件事上。

且有些專業名詞,就算去查字典,能不能查出來,還是個問題呢。

比方說,寫會計程式:
「備抵存貨跌價損失」、「公平價值變動列入損益之金融負債」

這個肯定有英文單字的,只是普通字典查不出來....


若有興趣,可參考:
中文編程討論
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!