【Java】基本架構:屬性、方法- 類別、變數、static
文章推薦指數: 80 %
class是一個類別,裡面會裝著各種屬性跟方法,就像一個裝著各種用具跟資料的 ... static int b=2;//static變數 跟class一起,屬於類別非物件(不用先 ...
學習筆記專區
跳到主文
個人學習筆記放置區
部落格全站分類:不設分類
相簿
部落格
留言
名片
Mar20Sun201600:24
【Java】基本架構:屬性、方法、類別、變數、static
前面寫著class的,是類別。
類別裡面有屬性跟方法。
屬性是一些直接定義出來的變數,例如一個名字叫a的整數型態資料,剛開始時設定他是5,整體寫來如下:
inta=5;
↑這就是屬性,你之後若是把a叫出來,他就會是等於可以做加減運算的整數數字5。
方法就是裡面有些算是或者有些東西,你叫了方法就好像是拿了一個工具一樣。
例如有個方法,呼叫他時可能就會列印「你好」,就好像是拿到一個會自己說話的工具。
又或者有的方法是可以幫你計算兩個數字相加之類的,就像是拿到一台只會加法的計算機。
class是一個類別,裡面會裝著各種屬性跟方法,就像一個裝著各種用具跟資料的工具箱一樣,你呼叫他就像是把工具箱拿出來,但你要使用的是工具(方法、屬性),而不是那個箱子。
又或者可以把類別視為一個總稱,例如人類。
屬性就是人類的特性,例如兩條腿、兩顆眼睛。
方法就是人類可以做的事情,例如吃喝玩樂跑步睡覺。
但你無法叫「人類」去做事情,只能叫「個人」去做事情,這個「個人」就是實體化(new)
也就是你希望有人幫你做事情時,你得先生出一個人(實體),然後才能叫他去幫你做事情。
(對電腦來說則是撥出一塊記憶體放東西)
而這個「呼叫」(產生實體)的方式如下:
Humanmike=newHuman();
等號的右邊newHuman字如其意「產生一個新的人類(實體)」
等號的左邊幫這個新生出來的人類取名字:(把右邊產生的人類)取名叫mike,並且告訴電腦這傢伙的類別是人類(這部分就像上面舉的a一樣,你得告訴電腦a是一個整數,也得告訴他mike是個人類)
於是電腦知道mike是人類了,就可以去人類的類別裡看看人類會做甚麼事情、有甚麼特點(方法跟屬性)
packagetw.xxx.xxx.copy.oop;
publicclassOrder{
//看到關鍵字class,所以Order是一個類別,底下可以放屬性跟方法
//現在有一大疊訂購單在那,要等我真的要用到時才會抽出一張來用(實體化)
longorderNumber=123456789000000L;//這是一個屬性,是一個很長的數字,所已宣告形態不是int而是long,之後你如果有Order的實體就可以用他
publicvoidadd(){//這是一個方法,你之後若叫出一個Order的實體(拿出一張真正的訂購單),就可以叫出這個方法(加東西到訂單裡),他會列印以下文字
System.out.println("加入新東西到購物單裡,騙你的。
");
}
publicvoiddelete(){//這也是一個之後可以呼叫的方法(把訂單裡的東西刪除),會列印文字
System.out.println("刪除購物單裡的舊東西,騙你的。
");
}
publicstaticvoidmain(String[]args){
OrdermyOrder=newOrder();
//(等號左邊)產生了一個真正的、屬於你的訂單
//(等號右邊)你幫訂單取了一個名字叫myOrder,並且告訴電腦myOrder這個東西是個訂單
//於是電腦知道你有訂單,有add跟delete兩個方法,且還有一個訂單號碼orderNumber(屬性)
myOrder.add();
myOrder.delete();
//利用(變數)名稱.方法來呼叫方法
for(inti=0;i<5;i++){
System.out.println(myOrder.orderNumber+i);//一樣用「名稱.屬性」的方式來把數字叫出來,並做出計算
}
}
}
加入新東西到購物單裡,騙你的。
刪除購物單裡的舊東西,騙你的。
123456789000000
123456789000001
123456789000002
123456789000003
123456789000004
static是一種類別變數(也叫靜態變數),他雖然長在類別裡,但是從一出生就被分配好記憶體了,也就是一出生就有實體了,所以不需要先new再操作
但是還是得讓電腦知道他哪來的,所以使用方式是「類別名稱. 方法」或者「類別名稱. 屬性」
packagetw.xxx.xxx.copy.oop;
classTestForStatic{
staticintnum=123;//可以直接使用的屬性
staticvoidprintString(){//可以直接使用的方法
System.out.println("呼叫成功");
}
}
publicclassCallTestStaticEx1{
publicstaticvoidmain(String[]args){
System.out.println(TestForStatic.num);//可以直接用類別.屬性名稱呼叫
TestForStatic.printString();//同上
}
}
123
呼叫成功
變數(屬性)有分幾種,
一種在類別裡但不在方法裡,稱為實體變數,跟類別共存亡,類別被new了他才會出現
一種是靜態變數(類別變數)如上面的例子,你把它寫下來時他就有記憶體可以放了,所以可以直接叫他,同樣的也有不用new就存在的靜態方法,關鍵字是static
上面兩種都屬於全域變數。
還有一種變數存在在方法裡,你new類別時他不在,你把呼叫方法時他才出現,並且跟方法共存亡,他叫區域變數
packagetw.XXX.myfirstproject.oop;
publicclassTestVariableScopeEx1{
inta=1;//instance(實體變數),位於類別之下,方法之上
//變數跟物件一起(有new才行產生,所以得先=newTestVariableScopeEx1才能用a)
staticintb=2;//static變數跟class一起,屬於類別非物件(不用先用new,可直接使用b)
publicvoidf1(intc){//c為local變數,跟方法f1一起出現一起消失
intd=4;//d為local變數,跟方法一起出現一起消失
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println("c="+c);
System.out.println("d="+d);
System.out.println("---------以上屬於f1方法--------");
}
publicstaticvoidf2(inte){
//注意這行有static,上面f1沒有,所以f2這個方法可以直接使用,f1不行(f1要new,產生實體)
//System.out.println("a="+a);//a為實體變數,要new過才能用,但f2可以直接使用,所以會compileerror
System.out.println("b="+b);
//System.out.println("c="+c);//compileerror c跟d為f1的區域變數,無法使用
//System.out.println("d="+d);//compileerror
System.out.println(e);
System.out.println("---------以上屬於f2方法---------");
}
publicstaticvoidmain(String[]args){
f2(6);//f2是類別變數,可直接使用
//f2是static變數,不需要先呼叫,但f1就需要
TestVariableScopeEx1scope=newTestVariableScopeEx1();
//呼叫,產生實體
scope.f1(3);
scope.f2(5);//其實這樣叫f2也行,但是電腦會警告(?)
TestVariableScopeEx1.f2(6);//f2也可以用類別名稱來呼叫
}
}
b=2
6
---------以上屬於f2方法---------f2(6)
a=1
b=2
c=3
d=4
---------以上屬於f1方法--------scope.f1(3)
b=2
5
---------以上屬於f2方法---------f2(5)
b=2
6
---------以上屬於f2方法---------TestVariableScopeEx1.f(6)
全站熱搜
創作者介紹
乙方
學習筆記專區
乙方發表在痞客邦留言(0)人氣()
E-mail轉寄
全站分類:進修深造個人分類:【Java】雜此分類上一篇:【Java】基本迴圈for中的標籤(break後要跳到哪裡?)
此分類下一篇:【Java】物件導向中new的一些差異(地址)、無限制參數方法(Varargs)
上一篇:【Java】基本迴圈for中的標籤(break後要跳到哪裡?)
下一篇:【Java】物件導向中new的一些差異(地址)、無限制參數方法(Varargs)
歷史上的今天
2016:【Java】抽象類別小練習
2016:【Java】一點點import、日期語法
2016:【Java】封裝、資料型別轉換、字串語法、toString改寫
2016:【Java】類別的建構子,與一點點匿名物件、this
2016:【Java】「==」跟「equals」
2016:【Java】物件導向中new的一些差異(地址)、無限制參數方法(Varargs)
▲top
留言列表
發表留言
站方公告
[公告]2022/09/02相簿、部落格功能維護公告[公告]2022/08/22、08/23應用市集部分功能維護公告[公告]痞客邦APP全新服務上線-美食優惠券
活動快報
痞客邦來吧!旅遊趣
【痞客邦來吧!旅遊趣】需要網友們一起來分享你部...
看更多活動好康
我的好友
熱門文章
文章分類
【前端網頁開發技術】(4)
【HTML】基本格式(4)【JavaScript】(24)【JQuery】(14)【CSS】基本語法(8)
【JAVA】(4)
【Java】繼承與多形(11)【Java】雜(13)【Java】介面與多形(1)【Java】Collection與Map(2)
【SQL】(6)
【SQL】基本語法(10)【SQL】設計實作(2)【SQL】進階查詢語法(9)【SQL】資料的新增、修改、刪除(2)【SQL】其他(3)【T-SQL】(0)
【JDBC】(1)
【JDBC】基本(15)
【WebSecurity】(4)【Android】(13)【Spring】(22)【Struts】(9)【Servlet與JSP】(7)【每周練習】(0)
最新文章
最新留言
動態訂閱
文章精選
文章精選
2016六月(51)
2016五月(12)
2016四月(43)
2016三月(67)
所有文章列表
文章搜尋
新聞交換(RSS)
誰來我家
參觀人氣
本日人氣:
累積人氣:
QRCode
POWEREDBY
(登入)
回到頁首
回到主文
免費註冊
客服中心
痞客邦首頁
©2003-2022PIXNET
關閉視窗
延伸文章資訊
- 1第七章物件導向設計: 類別與物件
Java),我們必須先定義類別,然後才能夠透過. 類別宣告各個屬於該類別下的物件,接著再設定. 物件的屬性來代表該物件某方面的特性,並使用. 物件的方法來操作物件。
- 2【Java】基本架構:屬性、方法- 類別、變數、static
class是一個類別,裡面會裝著各種屬性跟方法,就像一個裝著各種用具跟資料的 ... static int b=2;//static變數 跟class一起,屬於類別非物件(不用先 ...
- 3物件導向基礎:何謂類別(Class)?何謂物件(Object)? 分享
我不是請你來翻譯的); 物件:物件不就是可以new 的那種嗎? ( 對,但這樣回答不太好吧… ) 簡單帶過. 類別:定義程式的方法、屬性; 物件:可執行的東西.
- 4物件與類別物件(object)是什麼? 物件(object)是什麼? 視窗物件
屬性(property). 方法(method). ▫ 人. 物件化. 屬性:. 性別、年齡、身高、體 ... C++利用類別(class)來實現物件的概念 ... 由類別所宣告的變數叫做物件(...
- 5定義類別屬性和方法 - IBM
在類別外部,應該使用類別的實例限定所有對實例變數的參照;例如 x.text 。 上層主題: 面向物件的程式設計. 相關資訊. 面向物件的程式設計 · 定義類別 ...