正文之前
Java的面向?qū)ο筇匦蕴黠@了骑疆。先開篇告訴你我們的對(duì)象是啥意思鲫凶,然后直截了當(dāng)?shù)母嬖V你寸爆,每個(gè)文件都是一個(gè)類礁鲁。也就是說每個(gè)文件都可以給你傳出來一種對(duì)象盐欺,然后你就面對(duì)這群文件,也就是面向?qū)ο缶幊叹秃昧私龃迹√幜耍冗美。∥蚁矚gN龆粉洼!
(鄭重聲明:本文非原創(chuàng),只是筆記叶摄,取自菜鳥編程属韧!好東西,繼續(xù)打CALL)
正文
1蛤吓、Java 的兩大數(shù)據(jù)類型:
- 內(nèi)置數(shù)據(jù)類型(內(nèi)置的宵喂,不需要任何聲明,直接拿來用的)
- 引用數(shù)據(jù)類型(maybe就是聲明一個(gè)類咯~然后拿來當(dāng)類型用咯)
2会傲、內(nèi)置數(shù)據(jù)類型
Java語言提供了八種基本類型锅棕。六種數(shù)字類型(四個(gè)整數(shù)型,兩個(gè)浮點(diǎn)型)唆铐,一種字符類型哲戚,還有一種布爾型。
* byte:
byte 數(shù)據(jù)類型是8位艾岂、有符號(hào)的顺少,以二進(jìn)制補(bǔ)碼表示的整數(shù);
最小值是 -128(-2^7)王浴;
最大值是 127(2^7-1)脆炎;
默認(rèn)值是 0;
byte 類型用在大型數(shù)組中節(jié)約空間氓辣,主要代替整數(shù)秒裕,因?yàn)?byte 變量占用的空間只有 int 類型的四分之一;
例子:byte a = 100钞啸,byte b = -50几蜻。
* short:
short 數(shù)據(jù)類型是 16 位、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù)
最小值是 -32768(-2^15)体斩;
最大值是 32767(2^15 - 1)梭稚;
Short 數(shù)據(jù)類型也可以像 byte 那樣節(jié)省空間。一個(gè)short變量是int型變量所占空間的二分之一絮吵;
默認(rèn)值是 0弧烤;
例子:short s = 1000,short r = -20000蹬敲。
* int:
int 數(shù)據(jù)類型是32位暇昂、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù)莺戒;
最小值是 -2,147,483,648(-2^31);
最大值是 2,147,483,647(2^31 - 1)急波;
一般地整型變量默認(rèn)為 int 類型从铲;
默認(rèn)值是 0 ;
例子:int a = 100000, int b = -200000幔崖。
* long:
long 數(shù)據(jù)類型是 64 位食店、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù)渣淤;
最小值是 -9,223,372,036,854,775,808(-2^63)赏寇;
最大值是 9,223,372,036,854,775,807(2^63 -1);
這種類型主要使用在需要比較大整數(shù)的系統(tǒng)上价认;
默認(rèn)值是 0L嗅定;
例子: long a = 100000L,Long b = -200000L用踩。
"L"理論上不分大小寫渠退,但是若寫成"l"容易與數(shù)字"1"混淆,不容易分辯脐彩。所以最好大寫碎乃。
* float:
float 數(shù)據(jù)類型是單精度、32位惠奸、符合IEEE 754標(biāo)準(zhǔn)的浮點(diǎn)數(shù)梅誓;
float 在儲(chǔ)存大型浮點(diǎn)數(shù)組的時(shí)候可節(jié)省內(nèi)存空間;
默認(rèn)值是 0.0f佛南;
浮點(diǎn)數(shù)不能用來表示精確的值梗掰,如貨幣;
例子:float f1 = 234.5f嗅回。
* double:
double 數(shù)據(jù)類型是雙精度及穗、64 位、符合IEEE 754標(biāo)準(zhǔn)的浮點(diǎn)數(shù)绵载;
浮點(diǎn)數(shù)的默認(rèn)類型為double類型埂陆;
double類型同樣不能表示精確的值,如貨幣娃豹;
默認(rèn)值是 0.0d焚虱;
例子:double d1 = 123.4。
* boolean:
boolean數(shù)據(jù)類型表示一位的信息培愁;
只有兩個(gè)取值:true 和 false著摔;
這種類型只作為一種標(biāo)志來記錄 true/false 情況;
默認(rèn)值是 false定续;
例子:boolean one = true谍咆。
* char:
char類型是一個(gè)單一的 16 位 Unicode 字符禾锤;
最小值是 \u0000(即為0);
最大值是 \uffff(即為65,535)摹察;
char 數(shù)據(jù)類型可以儲(chǔ)存任何字符恩掷;
例子:char letter = 'A';。
3供嚎、引用類型
在Java中黄娘,引用類型的變量非常類似于C/C++的指針。引用類型指向一個(gè)對(duì)象克滴,指向?qū)ο蟮淖兞渴且米兞勘普_@些變量在聲明時(shí)被指定為一個(gè)特定的類型,比如 Employee劝赔、Puppy 等誓焦。變量一旦聲明后,類型就不能被改變了着帽。
對(duì)象杂伟、數(shù)組都是引用數(shù)據(jù)類型。
所有引用類型的默認(rèn)值都是null仍翰。
一個(gè)引用變量可以用來引用任何與之兼容的類型赫粥。
例子:Site site = new Site("Runoob")。
4予借、Java 常量
常量在程序運(yùn)行時(shí)是不能被修改的越平。
在 Java 中使用 final 關(guān)鍵字來修飾常量,聲明方式和變量類似:
final double PI = 3.1415927;
雖然常量名也可以用小寫蕾羊,但為了便于識(shí)別喧笔,通常使用大寫字母表示常量。
字面量可以賦給任何內(nèi)置類型的變量龟再。例如:
byte a = 68;
char a = 'A'
byte书闸、int、long利凑、和short都可以用十進(jìn)制浆劲、16進(jìn)制以及8進(jìn)制的方式來表示。
當(dāng)使用常量的時(shí)候哀澈,前綴 0 表示 8 進(jìn)制牌借,而前綴 0x 代表 16 進(jìn)制, 例如:
int decimal = 100;
int octal = 0144;
int hexa = 0x64;
和其他語言一樣,Java的字符串常量也是包含在兩個(gè)引號(hào)之間的字符序列割按。下面是字符串型字面量的例子:
"Hello World"
"two\nlines"
"\"This is in quotes\""
字符串常量和字符常量都可以包含任何Unicode字符膨报。例如:
char a = '\u0001';
String a = "\u0001";
5、自動(dòng)類型轉(zhuǎn)換
整型、實(shí)型(常量)现柠、字符型數(shù)據(jù)可以混合運(yùn)算院领。運(yùn)算中,不同類型的數(shù)據(jù)先轉(zhuǎn)化為同一類型够吩,然后進(jìn)行運(yùn)算比然。轉(zhuǎn)換從低級(jí)到高級(jí)。
===========================
低 -------------------------------------------> 高
byte,short,char—> int —> long—> float —> double
===========================
數(shù)據(jù)類型轉(zhuǎn)換必須滿足如下規(guī)則:
- 不能對(duì)boolean類型進(jìn)行類型轉(zhuǎn)換周循。
- 不能把對(duì)象類型轉(zhuǎn)換成不相關(guān)類的對(duì)象强法。
- 在把容量大的類型轉(zhuǎn)換為容量小的類型時(shí)必須使用強(qiáng)制類型轉(zhuǎn)換。
- 轉(zhuǎn)換過程中可能導(dǎo)致溢出或損失精度湾笛,例如:
int i =128;
byte b = (byte)i;
因?yàn)?byte 類型是 8 位饮怯,最大值為127,所以當(dāng)強(qiáng)制轉(zhuǎn)換為 int 類型值 128 時(shí)候就會(huì)導(dǎo)致溢出迄本。
- 浮點(diǎn)數(shù)到整數(shù)的轉(zhuǎn)換是通過舍棄小數(shù)得到硕淑,而不是四舍五入课竣,例如:
(int)23.7 == 23;
(int)-45.89f == -45
- 浮點(diǎn)數(shù)到整數(shù)的轉(zhuǎn)換是通過舍棄小數(shù)得到硕淑,而不是四舍五入课竣,例如:
自動(dòng)類型轉(zhuǎn)換必須滿足轉(zhuǎn)換前的數(shù)據(jù)類型的位數(shù)要低于轉(zhuǎn)換后的數(shù)據(jù)類型嘉赎,例如: short數(shù)據(jù)類型的位數(shù)為16位,就可以自動(dòng)轉(zhuǎn)換位數(shù)為32的int類型于樟,同樣float數(shù)據(jù)類型的位數(shù)為32阱佛,可以自動(dòng)轉(zhuǎn)換為64位的double類型位喂。
6、強(qiáng)制類型轉(zhuǎn)換
條件是轉(zhuǎn)換的數(shù)據(jù)類型必須是兼容的。
格式:(type)value type是要強(qiáng)制類型轉(zhuǎn)換后的數(shù)據(jù)類型 實(shí)例:
實(shí)例
public class QiangZhiZhuanHuan{
public static void main(String[] args){
int i1 = 123;
byte b = (byte)i1;//強(qiáng)制類型轉(zhuǎn)換為byte
System.out.println("int強(qiáng)制類型轉(zhuǎn)換為byte后的值等于"+b);
}
}
7阶淘、Java 變量類型
在Java語言中,所有的變量在使用前必須聲明箩退。聲明變量的基本格式如下:
type identifier [ = value][, identifier [= value] ...] ;
格式說明:type為Java數(shù)據(jù)類型丑罪。identifier是變量名〗苌ǎ可以使用逗號(hào)隔開來聲明多個(gè)同類型變量队寇。
Java語言支持的變量類型有:
- 類變量:獨(dú)立于方法之外的變量,用 static 修飾章姓。
- 實(shí)例變量:獨(dú)立于方法之外的變量佳遣,不過沒有 static 修飾。
- 局部變量:類的方法中的變量凡伊。
public class Variable{
static int allClicks=0; // 類變量
String str="hello world"; // 實(shí)例變量
public void method(){
int i =0; // 局部變量
}
}
8零渐、Java 局部變量
局部變量聲明在方法、構(gòu)造方法或者語句塊中系忙;
局部變量在方法诵盼、構(gòu)造方法、或者語句塊被執(zhí)行的時(shí)候創(chuàng)建,當(dāng)它們執(zhí)行完成后风宁,變量將會(huì)被銷毀耕腾;
訪問修飾符不能用于局部變量;
局部變量只在聲明它的方法杀糯、構(gòu)造方法或者語句塊中可見扫俺;
局部變量是在棧上分配的。
局部變量沒有默認(rèn)值固翰,所以局部變量被聲明后狼纬,必須經(jīng)過初始化,才可以使用骂际。
9疗琉、實(shí)例變量
實(shí)例變量聲明在一個(gè)類中,但在方法歉铝、構(gòu)造方法和語句塊之外盈简;
當(dāng)一個(gè)對(duì)象被實(shí)例化之后,每個(gè)實(shí)例變量的值就跟著確定太示;
實(shí)例變量在對(duì)象創(chuàng)建的時(shí)候創(chuàng)建柠贤,在對(duì)象被銷毀的時(shí)候銷毀;
實(shí)例變量的值應(yīng)該至少被一個(gè)方法类缤、構(gòu)造方法或者語句塊引用臼勉,使得外部能夠通過這些方式獲取實(shí)例變量信息;
實(shí)例變量可以聲明在使用前或者使用后餐弱;
訪問修飾符可以修飾實(shí)例變量宴霸;
實(shí)例變量對(duì)于類中的方法、構(gòu)造方法或者語句塊是可見的膏蚓。一般情況下應(yīng)該把實(shí)例變量設(shè)為私有瓢谢。通過使用訪問修飾符可以使實(shí)例變量對(duì)子類可見;
實(shí)例變量具有默認(rèn)值驮瞧。數(shù)值型變量的默認(rèn)值是0氓扛,布爾型變量的默認(rèn)值是false,引用類型變量的默認(rèn)值是null剧董。變量的值可以在聲明時(shí)指定幢尚,也可以在構(gòu)造方法中指定;
實(shí)例變量可以直接通過變量名訪問翅楼。但在靜態(tài)方法以及其他類中尉剩,就應(yīng)該使用完全限定名:ObejectReference.VariableName。
import java.io.*;
public class Employee{
// 這個(gè)實(shí)例變量對(duì)子類可見
public String name;
// 私有變量毅臊,僅在該類可見
private double salary;
//在構(gòu)造器中對(duì)name賦值
public Employee (String empName){
name = empName;
}
//設(shè)定salary的值
public void setSalary(double empSal){
salary = empSal;
}
// 打印信息
public void printEmp(){
System.out.println("名字 : " + name );
System.out.println("薪水 : " + salary);
}
public static void main(String args[]){
Employee empOne = new Employee("RUNOOB");
empOne.setSalary(1000);
empOne.printEmp();
}
}
10理茎、類變量(靜態(tài)變量)
類變量也稱為靜態(tài)變量,在類中以static關(guān)鍵字聲明,但必須在方法構(gòu)造方法和語句塊之外皂林。
無論一個(gè)類創(chuàng)建了多少個(gè)對(duì)象朗鸠,類只擁有類變量的一份拷貝。
靜態(tài)變量除了被聲明為常量外很少使用础倍。常量是指聲明為public/private烛占,final和static類型的變量。常量初始化后不可改變沟启。
靜態(tài)變量?jī)?chǔ)存在靜態(tài)存儲(chǔ)區(qū)忆家。經(jīng)常被聲明為常量,很少單獨(dú)使用static聲明變量德迹。
靜態(tài)變量在程序開始時(shí)創(chuàng)建芽卿,在程序結(jié)束時(shí)銷毀。
與實(shí)例變量具有相似的可見性胳搞。但為了對(duì)類的使用者可見卸例,大多數(shù)靜態(tài)變量聲明為public類型。
默認(rèn)值和實(shí)例變量相似肌毅。數(shù)值型變量默認(rèn)值是0筷转,布爾型默認(rèn)值是false,引用類型默認(rèn)值是null芽腾。變量的值可以在聲明的時(shí)候指定旦装,也可以在構(gòu)造方法中指定。此外摊滔,靜態(tài)變量還可以在靜態(tài)語句塊中初始化。
靜態(tài)變量可以通過:ClassName.VariableName的方式訪問店乐。
類變量被聲明為public static final類型時(shí)艰躺,類變量名稱一般建議使用大寫字母。如果靜態(tài)變量不是public和final類型眨八,其命名方式與實(shí)例變量以及局部變量的命名方式一致腺兴。
正文之后
我的么么噠??今天很慌,明天四門考試廉侧,今天三門都沒復(fù)習(xí)完页响,還有一門根本沒看,想想都是很恐懼的段誊。不過以我現(xiàn)在的心境而言闰蚕,無所畏懼了。所以不是特別能感受我妹子的心情连舍。不過也是她自己作没陡,前面那么多時(shí)間根本沒考慮要考試,一周時(shí)間復(fù)習(xí)四門也是吊兒郎當(dāng)一點(diǎn)都沒危機(jī)感,要是別人我就說活該了盼玄。該的贴彼,心里沒點(diǎn)B數(shù)念個(gè)什么書?但是換我妹子埃儿,那就只能祈求上天器仗,把我的腦袋借我妹子用一天,然后旗開得勝吧童番!