Java---開發從入門到精通,且分享視頻教程學習資料

Java---開發從入門到精通,且分享視頻教程學習資料

編程概念︰ 與 Java 上 grunge 的背景牆上的箭頭

主要內容

Java中的方法

遞歸算法

接收鍵盤中的輸入

面向對象的本質

我的第一個類:Student

垃圾回收機制

構造方法

方法的重載

static聲明的靜態屬性和靜態方法

this關鍵字的使用

筆記詳解

1. Java中的方法

我們在Java中可以將完成某一個功能的若干行代碼組織起來,然後給這些組織起來的代碼起一個名字,這樣以後想要使用這些代碼,直接通過這個名字來調用即可。這就是Java中的方法,在其他語言中也成為函數。

要注意的是,Java中的方法只支持值傳遞,不支持引用傳遞。方法定義的實例如下:

public class TestMethod {

// 定義一個方法,該方法沒有返回值,所以使用void

<code>public static void showName() {System.out.println("我的名字是Tom");}// 定義一個方法,該方法的返回值類型是int,所以使用intpublic static int add(int a, int b) {int sum = a + b;return sum;}public static void main(String[] args) {// 調用之前定義的方法showName();int sum = add(3, 5);System.out.println("最終的計算結果是: " + sum);}}/<code>

2. 遞歸算法

遞歸算法是Java中常見且使用的一類算法,它的主要思路是一個方法通過不斷調用自身,來將問題簡單化。我們在寫遞歸算法的時候,主要考慮到兩方面:遞歸體和遞歸出口。

一個遞歸算法必須要有遞歸出口,否則該方法會不斷調用自身,出現死循環,最終導致棧溢出。所以在遞歸算法中要定義一個遞歸出口,告訴程序什麼時候不再調用該方法。

遞歸體是遞歸算法的主要內容,一個方法不斷地調用自身,就是通過遞歸體來將問題簡單化,從而一步步解決問題。

下面給出一個實例:使用遞歸算法計算階乘

<code>public static int factorial(int a) {if (a > 1) { // 調用遞歸return a * factorial(a - 1);} else { // 遞歸出口,不再調用遞歸return 1;}}/<code>

3. 接收鍵盤中的輸入

在Java中接收鍵盤輸入的內容,首先要通過 import java.util.Scanner; 引入 util 包中的 Scanner 類,然後通過這個類來獲取鍵盤輸入的內容。下面給出兩個實例:

實例一:接收鍵盤輸入的字符串,並打印出來

<code>public static void inputString() {Scanner s = new Scanner(System.in);System.out.print("請輸入一個字符串:");String str = s.next();System.out.println(str);s.close();}/<code>

實例二:接收鍵盤中輸入的整數,進行計算並輸出

<code>public static void add() {Scanner num = new Scanner(System.in);System.out.print("請輸入一個整數:");int a = num.nextInt();System.out.print("請輸入另外一個整數:");int b = num.nextInt();System.out.println("計算結果為:" + (a + b));num.close();}/<code> 

4. 面向對象的本質

以類的方式組織代碼,以對象的方式封裝數據

5. 我的第一個類:Student

正式接觸面向對象編程,我的第一個類是很普通的Student類,類中包括自己的屬性和方法,然後通過這個類去定義學生對象。

<code>public class Student {// 類的靜態屬性String name;int age;String gender;int height;// 類的方法public void study() {System.out.println(name + "正在學習Java!");}public void sayHello(String userName) {System.out.println(name + "向" + userName + "說:你好");}// 程序的主入口,雖然寫在Student類中,但是在邏輯上和Student類沒有聯繫public static void main(String[] args) {Student Tom = new Student();Student Jane = new Student();Tom.name = "Tom";Jane.name = "Jane";Tom.study();Jane.sayHello("Jack");}}/<code>

6. 垃圾回收機制

Java中存在垃圾回收機制,是用來對不再使用的對象進行清理,避免帶來的內存佔用問題。Java中的垃圾回收機制和C++中的有所不同。在C++中,垃圾回收機制是程序員來手動完成的,也就是說程序員需要手動刪除對象,清理垃圾。但是Java中的垃圾回收機制是jdk進行自動完成的,不需要程序員手動清理。雖然這回有一定的系統開銷,但是卻可以避免人工清理的錯誤。

7. 構造方法

Java中的構造方法是用來初始化類的實例的,構造方法有以下特點:

構造方法是通過 new 語句來完成的

構造方法返回的是類的實例對象,準確的說是這個實例對象的地址。也就是說構造方法是有返回值的,但是在定義構造方法的時候,我們不能使用int等進行設置返回值的類型,同時在構造方法內部也不能有return語句。

構造方法的名字和類的名字必須完全一直

如果我們有定義構造方法,那麼會調用此方法來初始化實例對象,如果我們沒有定義構造方法,那麼系統會自動定義一個沒有參數的默認構造方法。

下面展示一個構造方法的實例:

<code>public class Point {double x, y, z;// 構造方法public Point(double _x, double _y, double _z) {x = _x;y = _y;z = _z;}}/<code>

8. 方法的重載

方法的重載是指在一個類中,可以定義多個相同名字的方法,但是這些方法需要滿足以下三個條件中的一個或多個:參數個數不同,參數類型不用,實參順序不同。在調用此方法時,就可以通過傳入的參數就可以決定調用哪一個具體的方法。除了 普通函數以外,構造函數也是可以重構的,實例如下:

<code>public class TestOverLoad {public double add(int a, int b) {return a + b;}public double add(int a, int b, int c) {return a + b + b;}public double add(double a, int b) {return a + b;}public static void main(String[] args) {TestOverLoad test = new TestOverLoad();// 通過傳入的參數不同,來決定調用哪一個具體的方法System.out.println(test.add(10, 20));System.out.println(test.add(3.5, 20));System.out.println(test.add(3, 20, 15));}}/<code>

9. static聲明的靜態變量和靜態方法

在Java中,使用static關鍵字修飾聲明的變量和方法叫做靜態變量和靜態方法。靜態變量也可以叫做靜態屬性或類屬性。

靜態變量和靜態方法是屬於類的,是該類的公有屬性,而不是某一個實例的屬性。即使在程序中沒有實名該類的實例,也是可以通過 類名.靜態變量名 和 類名.靜態方法名 來調用靜態變量和靜態方法。

在靜態方法中只能使用靜態屬性,不能使用非靜態屬性。具體實例如下:

<code>public class TestStatic {static int mark = 666; // 靜態屬性public static void showMark() { // 靜態方法System.out.println(mark);}public static void main(String[] args) {System.out.println(TestStatic.mark);// 通過類名直接調用靜態屬性TestStatic.showMark();// 通過類名直接調用靜態方法TestStatic test = new TestStatic();System.out.println(test.mark);// 通過類的實例來調用靜態屬性test.showMark();// 通過類的實例調用靜態方法}}/<code>

10. this關鍵字的使用

在普通方法中,this指向的是正在調用此方法的實例對象;在構造函數中,this指向的是正在初始化的實例對象。要注意的是,不能使用this來調用靜態屬性和靜態方法,因為這二者是從屬於類的,而不是從屬於實例對象的。

除此之外,我們還可以使用 this() 來調用類中的構造函數,實例如下:

public class TestThis {

int mark;

String name;

public TestThis(int mark, String name) {

this(); // 通過this()調用其他的構造方法

this.mark = mark;

this.name = name;

}

public TestThis() {

this.mark = 0;

this.name = "初始化";

}

}

今天的學習就先到這裡,小編在最後為大家分享適合Java小白和剛開始學習的新手同學的視頻教程+學習路線!關注、轉發、私信回覆:“學習”即可領取!

Java---開發從入門到精通,且分享視頻教程學習資料

Java---開發從入門到精通,且分享視頻教程學習資料

Java---開發從入門到精通,且分享視頻教程學習資料


分享到:


相關文章: