JAVA入門(1)
java學習筆記大全
1.java入門 2.基本資料型別與陣列 3.運算子,運算式,陳述句 4.類與物件 5.子類與繼承 6.介面與實作 7.內部類與例外類
文章目錄
- JAVA入門(1)
- 前言
- 一、基本資料型別與陣列
- 識別符號
- 資料型別
- 資料型別轉換
- 資料的輸入輸出
- 陣列
- 陳述句
- 二、類與物件
- 類
- 類體
- 物件的宣告
- 為宣告的物件分配成員變數
- 使用物件
- 成員變數
- 常量
- 方法
- 構造方法
- 實體方法與類方法
- 方法的多載(Overload)
- this關鍵字
- 引數傳值
- 包
- 訪問權限
- 物件的組合
- 物件陣列
- java2實用教程小白入門(2)
前言
省略講解java平臺安裝等,要有c語言基礎


一、基本資料型別與陣列
開始Java語言學習之旅(●’?’●)
識別符號

由字母、下劃線、美元符號和數字組成,長度不受限制
1.識別符號的第一個字符不能是數字字符,
2.識別符號不能是關鍵字(關鍵字就是具有特定用途或被賦予特定意義的一些詞,且關鍵字都是小寫的 )
3.識別符號不能是true、false和null(true、false和null不是關鍵字)
資料型別

基本資料型別


資料型別轉換
Java中資料的基本型別按精度從“低”到“高”排列:
byte short char int long float double
規則:
把級別低的變數的值賦給級別高的變數時,系統自動完成轉換,
例如:float x=100;
當把級別高的變數的值賦給級別低的變數時,必須使用顯示型別轉換運算,顯示轉換的格式:(型別名)要轉換的值;
例如:int x=(int)34.89;
當把一個int型常量賦值給一個byte和short型變數時,不可以超出這些變數的取值范圍,否則必須進行型別轉換運算(將導致精度損失)
例如: byte b=(byte)128;
資料的輸入輸出
輸入
讀取字串:
next()讀取不了空格,以空格作為分隔符
nextline()讀取一行可以讀取空格,以回車作為分隔符


使用System.out.println()或者System.out.print()輸出字串常量時不可以出現回車
(與c語言類似)
陣列
(參考型變數)
宣告陣列


(與c不同,java不允許在宣告陣列中的方括號內指定陣列個數)

java采用“陣列的陣列”宣告多維陣列,構成二維陣列的一維陣列不必有相同的長度,在創建二維陣列時可以分別指定構成該二維陣列的一維陣列的長度,
注:和c語言不同的是,Java允許使用int型變數的值指定陣列的元素的個數如:
int size =30;
double number[]=new double [size];




陳述句
(同c語言)
if分支陳述句
switch開關陳述句
回圈陳述句
for回圈
while回圈
do while 回圈
跳轉陳述句
continue陳述句
break陳述句
二、類與物件
面向物件的三個特性
封裝,繼承,多型
類


類體
類體內容可以有兩種型別的成員:
1.成員變數:通過變數宣告定義的變數,稱作成員變數或域,用來刻畫類創建的物件的屬性,
2.方法:方法是類體的重要成員之一,其中的構造方法是具有特殊地位的方法,供類創建物件時使用,用來給出類所創建的物件的初始狀態,另一類方法,可以由類所創建的物件呼叫,物件呼叫這些方法操作成員變數形成一定的演算法,體現物件具有某種功能,
(成員變數的型別可以是Java中的任何一種資料型別,包括前面學習過的基本型別:整型、浮點型、字符型、陣列以及后面要學習的物件及介面,)

物件的宣告
一般格式為: 類的名字 物件名字;
如: Rect rectangleOne;
宣告物件變數rectangleOne后,rectangleOne的記憶體中還沒有存放資料,也就是說該物件還沒有“參考”任何物體,我們稱這時的rectangleOne是一個空物件,
為宣告的物件分配成員變數
使用new運算子和類的構造方法為宣告的物件分配成員變數,如果類中沒有構造方法,系統會呼叫默認的構造方法(默認的構造方法是無引數的)也可同時創造多個物件,
使用物件
物件不僅可以操作自己的變數改變狀態,而且還擁有了使用創建它的那個類中的方法的能力,物件通過使用這些方法可以產生一定的行為,
通過使用運算子“.”,物件可以實作對自己的變數訪問 和方法的呼叫,
(1)物件操作自己的變數(物件的屬性)
物件.變數;
(2)物件呼叫類中的方法(物件的功能)
物件.方法;
(3)體現封裝 當物件呼叫方法時,方法中出現的成員變數就是指該物件的成員變數,
成員變數
類變數和實體變數
用關鍵字static修飾的成員變數稱作靜態變數或類變數, 而沒有使用static修飾的成員變數稱作實體變數,
例如,下述A類中,x是實體變數,而y是類變數,
class A {
float x;
static int y;
}
類變數是與類相關聯的資料變數,也就是說,類變數是和該類所創建的所有物件相關聯的變數,改變其中一個物件的這個類變數就同時改變了其它物件的這個類變數,因此,類變數不僅可以通過某個物件訪問也可以直接通過類名訪問,
實體變數僅僅是和相應的物件關聯的變數,也就是說,不同物件的實體變數互不相同,即分配不同的記憶體空間,改變其中一個物件的實體變數不會影響其它物件的這個實體變數,實體變數必須通過物件訪問,
常量
一個成員變數修飾為final,就是常量,常量的名字習慣用大寫字母,例如:
final int MAX;
final修飾的成員變數必須要初始化,對于final修飾的成員變數,物件可以操作使用,但不能做更改操作
方法
類體內容可以有2種型別的成員:成員變數和方法,其中一部分方法稱作構造方法,供類創建物件時使用,用來給出類所創建的物件的初始狀態,另一部分方法可分為實體方法和類方法,類所創建的物件可以呼叫這些方法形成一定的演算法,體現物件具有某種功能,當物件呼叫方法時,方法中出現的成員變數就是指分配給該物件的成員變數,物件不可以呼叫構造方法,構造方法是專門用來創建物件的,
方法的定義包括兩部分:方法宣告和方法體,一般格式為:
方法宣告部分{
方法體的內容
}
最基本的方法宣告包括方法名和方法的回傳型別,回傳型別也簡稱作方法的型別,如:
float area(){
….
}
如果方法的型別是void型別,方法體中也可以不書寫任何陳述句,就不需要回傳型別,
在方法體中宣告的變數以及方法的引數稱作區域變數,區域變數僅僅在該方法內有效,方法的引數在整個方法內有效,方法內定義的區域變數從它定義的位置之后開始有效,(成員變數有默認值,區域變數沒有默認值,在使用區域變數前必須有具體值)
構造方法
類中有一部分方法稱作構造方法,類創建物件時需使用構造方法,以便給類所創建的物件一個合理的初始狀態,
構造方法是一種特殊方法,它的名字必須與它所在的類的名字完全相同,并且不回傳任何資料型別,即它是void型,但void必須省略不寫,
Java允許一個類中有若干個構造方法,但這些構造方法的引數必須不同,即或者是引數的個數不同,或者是引數的型別不同,
如果用戶在一個定義類中未定義構造方法,系統將為它定義一個預設的空構造方法,如果用戶自己定義構造方法,系統就不再提供默認的,
實體方法與類方法
除構造方法外,其他的方法可分為實體方法或類方法,**方法宣告中用關鍵字static修飾的稱作類方法或靜態方法,不用static修飾的稱作實體方法,**一個類中的方法可以互相呼叫:實體方法可以呼叫該類中實體方法或類方法;類方法只能呼叫該類的類方法,不能呼叫實體方法;
實體方法可以操作成員變數,無論是實體變數或類變數;而類方法只能操作類變數不能操作實體變數,也就是說類方法中不能有操作實體變數的陳述句,
(1)實體方法必須通過物件來呼叫
(2)類方法可以通過類名呼叫
無論類方法或實體方法,當被呼叫執行時,方法中的區域變數才被分配記憶體空間,方法呼叫完畢,區域變數即刻釋放所占的記憶體,
方法的多載(Overload)
方法多載是指一個類中可以有多個方法具有相同的名字,但這些方法的引數必須不同,即或者是引數的個數不同,或者是引數的型別不同,方法的回傳型別和引數的名字不參與比較,如果兩個方法的名字相同,即使型別不同,也必須保證引數不同,
方法多載是多型性的一種,所謂功能多型性,是指可以向功能傳遞不同的訊息,以便讓物件根據相應的訊息來產生一定的行為,物件的功能通過類中的方法來體現,那么功能的多型性就是方法的多載,
this關鍵字
this可以出現在實體方法和構造方法中,但不可以出現在類方法中,
1.在構造方法中使用this
代表使用該構造方法所創建的物件,
2.在實體方法中使用this
代表使用該方法的當前物件,
實體方法可以操作成員變數,當成員變數在實體方法中出現時
默認的格式是: this.成員變數; 意思是當前物件的成員變數
3.實體方法可以呼叫類的其它方法
呼叫的默認格式是
this.方法;
4.區分成員變數和區域變數
我們已經知道,成員變數在整個類內有效,區域變數僅在方法內有效,
在方法體中宣告的變數以及方法的引數稱作區域變數,方法的引數在整個方法內有效,方法內定義的區域變數從它定義的位置之后開始有效,
如果區域變數的名字與成員變數的名字相同,則成員變數被隱藏,即這個成員變數在這個方法內暫時失效,

引數傳值
當方法被呼叫時,如果方法有引數,引數必須要實體化,即引數變數必須有具體的值,在Java中,方法的所有引數都是“傳值”的,方法中引數變數的值是呼叫者指定的值的拷貝,如果向方法的int型引數x傳遞一個int值,那么引數x得到的值是傳遞值的拷貝,方法如果改變引數的值,不會影響向引數“傳值”的變數的值,
(1)基本資料型別引數的傳值
對于基本資料型別的引數,向該引數傳遞的值的級別不可以高于該引數的級別,
(2)參考型別引數的傳值
Java的參考型資料包括物件、陣列以及介面,當引數是參考型別時,“傳值”傳遞的是變數的參考而不是變數所參考的物體,
如果改變引數變數所參考的物體,就會導致原變數的物體發生同樣的變化,因為兩個參考型變數如果具有同樣的參考,就會用同樣的物體,但是改變引數的參考不會影響向其傳值的變數的參考,
可變引數
在宣告方法時不給出引數串列中從某一項開始直至最后一項引數的名字和個數,但是這些引數的型別必須相同,并且最后一個引數必須是方法中的引數串列最后一個引數
可變引數用“…”表示若干個引數
public void g(double a,int...x)//x是方法g的引數串列中的可變引數的“引數代表“
對于可變引數,Java也提供了增強版for陳述句可以如下遍歷引數代表所代表的引數,如
for(int param:x)// for(宣告回圈變數:引數代表)
{
sum=sum+param;
}
包
1.包陳述句
通過關鍵字package宣告包陳述句,package 陳述句作為Java源檔案的第一條陳述句,指明該源檔案定義的類所在的包,package陳述句的一般格式為: package 包名;
如果源程式中省略了package陳述句,源檔案中所定義命名的類被隱含地認為是無名包的一部分,即源檔案中定義命名的類在同一個包中,但該包沒有名字,
包名可以是一個合法的識別符號,也可以是若干個識別符號加“.”分割而成,
如:
package sunrise;
package sun.com.cn;
2.import 陳述句
使用import 陳述句可以引入包中的類,在撰寫源檔案時,除了自己撰寫類外,我們經常需要使用Java提供的許多類,這些類可能在不同的包中,
使用類別庫中的類
使用Java提供給我們的類,我們用import陳述句來引入包中類,在一個Java源程式中可以有多個import陳述句,它們必須寫在package陳述句(假如有package陳述句的話)和源檔案中類的定義之間,
也可以使用import 陳述句引入自定義包中的類,
我們也可以對單獨的一個類進行編譯,生成位元組碼檔案然后供其它類使用,
訪問權限
類創建的物件可以通過“.”運算子訪問分配給自己的變數,也可以通過“.”運算子呼叫類中的實體方法和類方法,
類在定義宣告成員變數和方法時,可以用關鍵字private、protected和public來說明成員變數和方法的訪問權限,使得物件訪問自己的變數和使用方法受到一定的限制,
需要注意的是,訪問權限是指類創建的物件是否可以通過“.”運算子訪問分配給自己的變數、是否可以通過“.”運算子呼叫類中的實體方法和類方法,
而類中的實體方法總是可以操作該類中的實體變數和類變數;類方法總是可以操作該類中的類變數,與訪問限制符沒有關系,
不用private、public 、protected修飾符的成員變數和方法被稱為友好變數和友好方法

訪問限制修飾符按照訪問權限從高到低的排序順序是
public , protected, 友好, private,
如果一個類沒有明確地宣告構造方法,那么public類的默認構造方法是public的,友好類的默認構造方法是友好的,
需要注意的是,如果一個public類定義宣告的構造方法中沒有public的,那么在另外一個類中使用該類創建物件時,使用的構造方法就不是 public的,創建物件就受到一定的限制,
當某個類在另外一個類中創建物件后,如果不希望該物件直接訪問自己的變數(通過"."操作自己的成員變數),就應當將該成員變數訪問權限設定為private
面向物件編程提倡物件應該呼叫方法類改變自己的屬性,類應當提供操作資料的方法,如:set,get的方法,
物件的組合
一個類可以把物件作為自己的成員變數,如果用這樣的類創建物件,那么該物件中就會有其它物件,也就是說該物件將其他物件作為自己的組成部分,或者說該物件是由幾個物件組合而成,

物件陣列
如果程式需要某個類的若干個物件,正確的做法是使用物件陣列,即陣列的元素是物件,例如:
Integer [] m;
m = new Integer [10];
需要注意的是,上述代碼僅僅定義了陣列m有10個元素,并且每個元素都是一個Integer型別的物件,但這些物件目前都是空物件,因此在使用陣列m中的物件之前,應當創建陣列所包含的物件,例如:
m[0] = new Integer (120);
下一節
java2實用教程小白入門(2)
5.子類與繼承
6.介面與實作
7.內部類與例外類
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/282714.html
標籤:其他
上一篇:C++ 物件 & 類
