Static關鍵字:
一、使用static定義屬性:
1、使用static關鍵字聲明的屬性是全局屬性。
2、靜態屬性和方法可以在沒有實例化對象的時候調用。
3、主方法(main方法)也存在static關鍵字。
4、在寫程序時,主方法(main方法)代碼越簡單越好(代碼量越少越好)
5、主方法的含義如下:
.public:表示最大的權限,所有人都可以訪問。
.static:因為執行的時候執行的就是類名稱,所以表示可以由類名稱調用。
.void:因為主方法是一切的起點,所以表示沒有返回值。
.main:系統內建的方法名稱。
.String[] args:表示字符串數組,用于接收參數。
6、程序在內存劃分如下:
1)、棧內存:對象名稱,實際上是對象對堆的引用地址;
2)、堆內存:屬性;
3)、全局代碼區:保存所有的操作方法;
4)、全局數據區:保存所有的static屬性;
二、使用static字義方法:
1、方法中加一個static關鍵字時,便成靜態方法。
2、在使用static關鍵字定義方法時,應注意以下幾點:
1)、static的方法只能調用static的屬性或方法,不能調用非static的屬性或方法。
2)、靜態屬性和方法在沒有實例化對象的時候調用。
3)、而類中的普通方法和普通屬性,肯定只有在對象實例化之后才能被調用。
程序開發思路:
1、完成基本功能;
2、改善功能,加入一些驗證;
3、形成更好的結構,加入一些類的設計;
4、主方法中不能編寫過多代碼。
一、this關鍵字的使用:
1、this在java中表示出以下的概念:
1)、調用類中的屬性:this.屬性
2)、調用類中的方法:this.方法()
3)、調用類中的構造方法:this()
4)、表示當前對象:this
二、記住以下兩點:(重點)
1、所有的構造方法應該是對象操作前最早調用的,所以使用this調用構造方法的時候所有的代碼必須放在構造方法的首行。
2、在使用this調用構造方法時候至少有一個構造方法是沒有使用this()調用的,而此構造方法將做為調用的出口,一般這個出口都會使用無參構造完成。
三、this有一個最重要的概念----當前對象,當前正在調用類中方法的對象,叫做當前對象。
一、線程:
1、線程的基本概念:線程是一個程序里面不同的執行路徑。(或線程是一個程序內部的順序控制流。)
2、main()方法叫主線程(主分支-->一個分支就是一個線程)。
3、進程:
進程是一個靜態的概念。
4、在同一時間,一個CPU只能支持一個線程在執行。
5、Java的線程是通過java.lang.Thread類來實現的。
6、可以通過創建一個Thread的實例來創建新的線程。
7、可以通過Thread類的Start()方法來啟動線程。
二、創建線程的兩種方式:
1、使用實現Runnable接口方式(建議能使用接口時便使用接口方式)
2、使用繼承Thread類方式(繼承方式是死的)
sleep()方法-->>Thread類的靜態方法
3、線程的優先級是用數字表示,范圍從1到10,一個線程的缺省優先級是5。
可使用下述方法獲得或設置線程對象的優先級:
int getPriority();
void setPriority(int newPriority);
一、JDK1.5之后新特性對數組的支持:
1、foreach輸出;
2、可變參數。
1、foreach輸出的語法如下:
for(int i :數組名稱){
}
2、可變參數:
(1)、定義:正常情況下,一個方法在調用時必須明確的指定傳入的參數,而且參數的個數必須統一,但是在JDK1.5之后,在聲明方法參數的時候加入了可變參數。
例:
public class Test {
public static void main(String[] args){
int[] temp={1,2,4,5,6}; // 聲明一個數組
print(); //無參數
print(1); //一個參數
print(1,2,3,4); //多個參數
print(temp); //傳入數組作為參數
}
public static void print(int ...y){ //y前面的“.”符號只能是3個,不能多,也不能少!
for(int x : y){ // foreach輸出
System.out.print(x);
}
}
}
二、數組之間拷貝:
System.arraycopy(源數組名稱,下標,目標數組名稱,下標,拷貝的長度);
例:
public class Test2{
public static void main(String[] args){
int[] t1={1,2,3,4,5,6};
int[] t2={11,22,33,44,55,66};
System.arraycopy(t1,0,t2,3,3); //注意:拷貝的長度不能大于(目標數組總長度(這里是6) - 目標下標(這里是3))的長度,否則會報數組下標溢出。
for(int i:t1){
System.out.print(i+" ");
}
}
}
輸出的結果為:11 22 33 1 2 3
成功的公式:成功=知識+人脈。
30%的成功人每天都在做同一件事情,就是在不斷提升自己知識的同時,建立新的人脈關系。
成功的關鍵:
第一:強烈的動機;
第二:有堅定的信念。
第三:他們相信成功者愿意做別人不愿意做的事、別人不敢做的事、別人做不到的事。
成功的必備的兩大條件:
第一、擁有良好的態度(占100%);
第二、有一流的技巧與能力(占100%)。
重要知識點總結如下:
1,抽象,封裝,繼承,多態是面向對象程序設計中得四個特點.
2,面向對象的軟件開發大體分為:面向對象的分析,面向對象的設計,面向對象的實現.
可概括為如下過程:分析用戶需求,從問題中抽取對象模型;細化模型,設計類,包括類的屬性和類間的
相互關系,同時觀察是否有可以直接引用的已有類或部件;選定一種面向對象的編程語言,具體編碼實現
上一階段類的設計,并在開發過程中引入測試,完善整個解決方案.
3,面向對象程序設計方法的優點是:可重用性,可擴展性,可管理性.
4,類的定義:class前的修飾符分為訪問控制符和非訪問控制符兩大類.訪問控制符包括public和private.
非訪問控制符包括abstract(抽象),final(最終).
5,final類是最終類,是不能有子類的類.abstract和final不能同時修飾一個類,因為抽象類本身沒有具體對象,
需要派生出子類后在創建子類的對象.而最終類不可能有子類.
6,創建對象的格式為: 類名 對象名=new 構造方法(參數);注意前面是類名后面是構造方法.
注意構造方法沒有返回類型,也不能寫void,主要用于完成類對象的初始化工作,一般不能直接由編程
直接調用,而是用new運算符來調用.
7,如果class前面由public修飾符,則默認構造方法的前面也應該有public修飾符.
8,類中有static修飾的域或方法,可用類名或對象名訪問,否則只能用對象名訪問.
9,修飾域的訪問控制符可以是:public,private,protected,private protected.非訪問控制符可以是:
static,final,volatile(易失域)
10,類變量的最本質的特點是:他們是類的域,不屬于任何一個類的具體對象實例.不是保存在某個對象實例的內存空間中,而是保存在類的內存區域的公共存儲單元中.
11,局部變量是在方法體內聲明的,只有當方法被調用時他們才存在,因而只能在本方法內使用,不存在訪問控制符,也不能聲明為靜態變量(static),但可以聲明為final變量.局部變量必須初始化.
12,修飾方法的訪問控制符可以是:public,private,protected,private
protected,修飾方法的非訪問控制符可以是:static,final,abstract,native(本地方法),synchronized(同步方法)。
13,用static修飾的變量或方法都為類成員,類成員可以用類名或實例名訪問,實例成員只能用實例名來訪問。
14,如果一個類中含有抽象方法,則此類必須為抽象類,如果抽象類的子類不為抽象類,則子類必須實現父類的所有抽象方法。抽象方法不能用靜態方法和最終方法。抽想方法只有函數頭的聲明,而用分號來替代方法體,沒有大括號。如abstract
void abstractmethod();
15,this變量用在一個方法的內部,指向當前對象,當前對象指的是調用當前正在執行的方法的那個對象。super變量是直接指向父類的構造方法,用來引用父類種的變量和方法。(由于他們指的是對象,所以不能通過它來引用類變量和類方法)
16,如果要引用一個包中的多個類,可以用星號來代替。使用星號只能表示本層次的所有類,而不包括子層次下的類。所以經常需要用兩條語句來引入兩個層次的類:import
java.awt.*;import java.awt.event.*;
17,訪問修飾符:
--類中限定為public的成員可以被所有的類訪問。
--類中先定位private的成員只能被這個類本身訪問。同一個類的不同對象可以訪問對方的private域變量或調用對方的域方法,這是因為訪問保護控制在類的級別上,而不是對象的級別上。
--類中限定為protected的成員可以被這個類本身,它的子類(包括同一個包中和不同包中的子類),以及同一個包中的其他類訪問。
--用private protected修飾的成員可以被該類本身訪問,也可以被該類的所有子類訪問。
--默認訪問控制符規定只能被同一個包中的類訪問和引用,而不能被其他包的類訪問。即他的訪問權限是friendly。
18,注意:
----abstract和private,static,final,native不能并列修飾同一個方法。
----abstract類中不能有private修飾的域和方法
----static方法不能處理非static的域。
19,重載方法的參數必須不同,或者是參數個數不同,或者是參數類型不同。重載的多個方法必須返回相同的數據類型。
20,在java中,一個類獲取某一接口定義的功能并不是通過直接繼承這個接口的屬性和方法來實現的。因為接口中的屬性都是常量,接口的方法都是沒有方法體的抽象方法,沒有具體定義操作。