JAVA基礎
- java extend 和 implements 的區別
- 一個繼承的例子(定義類和對象,實現收發紅包的操作)
- java中public與private以及protected和(default)分別是什麼
- Java switch case 語句
- 區分類中的三種變量—super(父類中方法)、this(本類中)、原名(局部)
- 覆蓋重寫
- 方法定義及調用
- 方法的重載:用一樣的方法名,其他的不變(overload)
- 類和對象(含義、組成、如何定義和創建)
- 局部變量和成員變量
- private的作用,通過getter和setter來做一些限制,進而在實例中更好的描述數據
- this
- 定義一個標準的類
- 多態
- 接口
- 線程
- static關鍵字
- 匿名對象
- 構造方法
- 抽象類
- finnal關鍵字
- 內部類
- Random類的使用
- API(包、類、構造方法、成員方法)
- Data類的使用
- System類的使用
- 接口
java extend 和 implements 的區別
extend
在類的聲明中,通過關鍵字extends來創建一個類的子類。extends 是繼承某個類, 繼承之後可以使用父類的方法,也可以重寫父類的方法;
extends是繼承父類,只要那個類不是聲明爲final或者那個類定義爲abstract的就能繼承,JAVA中不支持多重繼承,但是可以用接口 來實現,這樣就要用到implements,繼承只能繼承一個類,但implements可以實現多個接口,用逗號分開就行了
比如 class A extends B implements C,D,E
implements
一個類通過關鍵字implements聲明自己使用一個或者多個接口。 implements 是實現多個接口, 接口的方法一般爲空的, 必須重寫才能使用
一個繼承的例子(定義類和對象,實現收發紅包的操作)
定義羣主的類(繼承user中的靜態變量和構造方法)
在羣主子類中寫發紅包的方法
用user寫普通成員的子類
生成羣主和成員的對象,開始發錢啦
java中public與private以及protected和(default)分別是什麼
public>protected>(default)>privated
private:代表私有的,修來飾變量自只能在本類訪問,private方法子類不能繼承。
public:是最大權百限,都可以訪問,是公共的度。
Java中定義一個屬性 爲什麼要加private?加和不加的區別是什麼?
java是面嚮對象語言,一切成員都會封裝在一個類中,定義成抄private是爲了更好地隱藏,對外暴露的是setter和getter方法,所以可以通過setter設置值,getter來取值,達到模塊隱藏的目的。
JAVA中的protected
我們採取的最好的做法是保持成員的private狀態——無論如何都應保留對基
礎的實施細節進行修改的權利。在這一前提下,可通過protected方法允許類的繼承者進行受到控制的訪問:
Java switch case 語句
switch case 語句判斷一個變量與一系列值中某個值是否相等,每個值稱爲一個分支。 switch case 語句語法格式如下:
switch(expression){
case value :
//語句
break; //可選
case value :
//語句
break; //可選
//你可以有任意數量的case語句
default : //可選(當所有case值都不匹配的時候,用default收尾)
//語句
}
區分類中的三種變量—super(父類中方法)、this(本類中)、原名(局部)
super的使用範圍
this的適用範圍
覆蓋重寫
是一種檢測是否爲重寫操作的一種方法,例如 private void method{} // method必須是父類中已經有的方法
方法定義及調用
方法的定義(JAVA中沒有函數,只有方法)
方法的三種調用格式
對比有參數方法和無參數方法
對比有返回值和無返回值的方法
對於無返回值的只能進行單獨調用
對於有返回值的能進行單獨調用、打印調用、賦值調用
使用方法的注意事項的總結
方法的重載:用一樣的方法名,其他的不變(overload)
特點:多個方法的名稱一樣但是參數列表不一樣,比如 兩數相加、三數相加、四數相加·····
好處:只需要記住一個方法的名稱就可以實現類似的功能
(意思就是把sumtwo,sumthree,sumfour全部改爲sum)
類和對象(含義、組成、如何定義和創建)
類:抽象(定義屬性和行爲,相當於圖紙)
對象:類的具體化,變成可操作性的實體
類的定義(成員變量、成員方法)
ps: 1、成員變量與其他變量不同,定義在方法外面
2、成員方法不寫static關鍵字
根據類創建對象
在對象中使用類的成員變量(使用或者改變)—有默認值
在對象中使用類的成員方法
局部變量和成員變量
private的作用,通過getter和setter來做一些限制,進而在實例中更好的描述數據
private的作用
private age之後,只有當前類可以使用age,在實例中無法直接調用age ,必須用setter和getter來訪問或者設置age。
類的定義
實例
練習private的使用(特別boolean中getter是用isXxx)
實例
this
當局部變量與全局變量重名時,會採取就近原則,使用局部變臉,當想用類中的全局變量是加this,this.name
定義一個標準的類
創建類(有參數,無參數,getter和setter)
生成對象
多態
多態概述(對象小明既有父類形態,也有子類形態)
多態的格式及使用(左父右子)
子類
父類
對象
接口
線程
start作用(使兩個線程併發執行)
如何創建一個線程
1、extend一個線程類,重寫線程類中的run方法
2、創建線程類中的子類對象
3、調用thread中的start方法,實現線程併發
1、extend一個線程類,重寫線程類中的run方法
2、創建線程類中的子類對象,調用thread中的start方法,實現線程併發
ps:主線程是靠main函數開啓的
Thread類中的sleep方法(開一個線程,延遲時間-模擬時鐘)
Thread類中的獲取線程名稱的方法
在類中重寫run,定義出獲取線程名稱的操作(getName、currentThread)
創建一個子對象、進行輸出
static關鍵字
在類中定義一個static關鍵字, 在對象中賦值之後,那麼由此類生成的對象都共有static這個關鍵字,節省了內存空間
用static聲明成員變量(靜態變量)
student類,有name、age、和static room
這種情況下,兩個對象都顯示101教室
利用static進行idcounter
用static修飾成員方法(靜態方法)
類中的靜態方法不必要創建對象,直接類名:方法名
類中的成員方法必須要創建對象,調用對象中的方法纔可以。
靜態不能直接訪問非靜態
匿名對象
new 類名;只能使用一次
構造方法
注意事項
類定義(定義了一個無參一個有參的構造方法)
生成對象(利用了有參,無參,getter、setter)
抽象類
抽象的概念
如果父類當中的方法不確定{}方法進行,那麼這就應該是一個抽象方法
抽象類和抽象方法的定義
抽象類的使用
抽象類的注意事項
不能直接new抽象類的對象,必須用一個子類來繼承抽象父類,並重寫所有抽象方法(兩個類,一個對象)
抽象類
這是錯誤的
繼承後的抽象子類,這是正確的
對子類生成對象
finnal關鍵字
finnal修飾類
finnal關鍵字代表 最終、不可改變
用finnal關鍵字修飾一個類的時候,這個類不能有子類,更別提覆蓋重寫了
finnal修飾方法
無論是在類還是函數中,finnal abstract 這種寫法都是完全不對自相矛盾的
finnal修飾的方法不能進行覆蓋重寫
finnal修飾變量
finnal修飾局部變量,一次賦值,終生不變
finnal修飾的局部變量地址不變,地址名字可以改變
例如 finnal int num1=10;num1 =20 錯誤
可以 方法.getname
finnal修飾局部變量(必須要手動賦值:直接賦值或者用構造方法賦值)
內部類
內部類的定義
內部類的方法以及使用
內部類可以訪問成員變量,以及外部方法
Random類的使用
Random是一個JAVA的類,使用的話首先把包含這個類的package導入,然後把這個類導入,然後要記住——類必須新建對象才能用!!!!
得出帶範圍的Random
API(包、類、構造方法、成員方法)
API就是一本程序員隨手使用的字典,除了自己編寫類,JDK給我們提供了很多的類供我們調用。需要哪個類或者類中的方法,只要查查JDK API的官方文件,看看具體類中的方法使用 然後調用就好了
Data類的使用
System類的使用
提供了大量系統級的操作或者獲取系統相關的信息,比如說返回當前時間
獲取以毫秒爲單位的時間
接口
關於接口的詳解
接口的格式
常量、抽象方法、默認方法、靜態方法、私有方法
接口中定義抽象方法,所有版本都可以在接口中定義抽象方法(public abstract)
接口的使用步驟
定義一個類implement接口定義,並重寫其中所有的抽象方法
創建該抽象類的對象
從Java8開始 接口中可以定義默認方法(爲了解決更新接口的問題)
創建實現類對象,直接使用默認方法
接口中定義常量
訪問接口中的常量(直接用方法.常量)