道阻且長(一) Java核心:2.Java編程基礎

上一篇完成了環境的安裝,配置以及入門級HelloWorld的編寫


public class HelloWorld {
	public static void main(String[] args) {
		System.out.println("您好,小何。I‘m  MMP");
	}
}

在這段代碼中,我們只是知道她打印了雙引號裏面的文字,哪些英文單詞是我們自己定義的?哪些是所謂的Java關鍵字?

  • 這篇文章,數據類型需要重點掌握,關鍵字也需要學習(循環,異常,修飾符【類,方法,變量】),今後工作這一篇章的東西都是拿來就用的,標記了【常用】最好都有印象。

1.Java數據類型

(1)數據類型有哪些?

(2)數據類型有什麼用?

        在代碼編寫的時候,我們需要定義很多的變量,變量的修飾就是靠上面的數據類型來定義,即告訴開發代碼的人,我這個變量是什麼類型(不知道該用什麼類型的時候就用String)

        比如,設定年齡變量,一般都是整數,此時採用int;設定金錢,一般是double;設定性別,一般是String。

(3)數據類型怎麼用?

下面展示常見的一個POJO【下一節講的類】的定義:

public class Student {
	private int age;	// 年齡
	private String name;	// 姓名
	private Date birthday;  // 生日
	private boolean isBoy;  // true 男 false 女
	private double socre; 	// 分數
}

 

2.Java關鍵字

 

訪問控制

private 【常用】

用來定義私有變量,在封裝時會用到

一般不用來修飾類(內部類除外),系統會直接報錯

public【常用】

公有,如果是工具類(就是不止這一個.java文件用到,別的類也經常調用)常用public修飾其方法

protected 

同包同類中,可以自由訪問protected成員

同包不同類中,無任何繼承關係,可以自由訪問protected成員

同包不同類中,具有繼承關係,任何子類或者子類的子類都可以訪問protected成員

不同包不同類中,不具有繼承關係,不可以訪問其它類protected成員

類,方法和變量修飾符

類,方法和變量修飾符

Abstract 抽象

不能被實例化(即不能有New...)只能被當做父類,且必須被繼承,如果子類不是抽象類的話,就需要實現抽象父類的所有方法

abstract是說必須繼承、重載

abstract和final不能同時修飾一個類

abstract只能修飾類,方法,不能修飾屬性

抽象方法中不能指定程序體,即不能有{},參數表之後直接用 ; 結束

abstract方法所在的類必須是abstract類

extends 繼承 【常用】

子類繼承父類的屬性,重載重寫

interface Implements【常用】

接口,接口定義的方法只有定義沒有實現,接口中定義的成員變量都是public static final,但不必寫明,接口實質是特殊抽象類,裏面只包含常量和抽象方法。

使用interface聲明一個接口時,只能用public修飾符修飾

接口中的成員都有固定的修飾符

成員變量:public static final

成員方法:public abstract

new【常用】

new關鍵字,也用在創建對象時使用到

class 【常用】

類,class用來修飾類,其後面就是類名,最開頭的HelloWorld就是類名

定義一個POJO就是定義一個類,接口也是一個類,這個概念可能上來不好理解,尤其是面對對象,隨着慢慢學習,自己就悟出來了

static 【常用】

靜態

它修飾的變量稱之爲靜態變量(整個類共享),它修飾的方法叫做靜態方法

通過類名.變量名或者對象.變量名來調用其靜態變量

注意:靜態變量更多的是使用類名去調用,非靜態變量更多的是使用對象來調用

1 靜態方法不能調用非靜態變量(靜態方法是隨着類加載的時候被創建,但是成員變量創建對象的時候才被創建)

2 靜態方法的生命週期是隨着類加載開始到程序運行結束而銷燬

3 靜態方法創建時機與非靜態方法的創建時機不同

4 靜態方法可以調用非靜態方法嗎?  不可以  

5 非靜態方法可以調用非靜態方法嗎? 可以

6 Static方法中可以使用this關鍵字嗎 ? 不可以

final

final是說不能繼承、重載

修飾方法時,方法不能被重寫,增強代碼安全性

修飾類時,不能被繼承,增強代碼安全性

修飾屬性時,interface裏只存在public static final的常量,一次修改多次使用

 

程序控制 

break

跳出循環,在switch case語句中常常在switch語句前加一個詞,然後break精確到這個次即可跳出整個switch

Break直接跳出當前循環,執行循環後面的語句

continue

同樣用在循環語句中,不同的是它是跳出本次循環開始下一次的循環,在他之後的語 句不再執行,是循環的迭 代

return【常用】

直接退出整個方法,返回一個對象或者數值,在任何地方都可以使用

do ...while

這個語句不管滿不滿足while裏的條件都至少執行一次

while【常用】

如果不滿足while裏的語句將不執行

if ...else【常用】

循環語句,一般不超過三層,超過三層就用switch case替代

for【常用】

循環語句(在數組裏有一個增強for循環)

switch ..case【常用】

記住在case下面添加break

Case 語句的常量與switch()中的變量一致 則執行該case所對應的語句

注意:switch(變量) 變量的類型 只能是byte short char int String(1.7及以上版本可用)enum

default

用在switch case 語句當中

異常處理(異常-文件裏有詳細論述)

try...cath   【常用】


try{

......存放要捕獲的語句

}catch(存放要捕獲異常的種類,一般用Exception e,因爲它是所有Exception的父類)

{

 e.printStackTrace() //這句話可以輸出異常的種類和具體位置

}

throw  【常用】

  throws 用在方法體聲明之後

public void mul() throws Exception{


    doSomething...


 }

 

throws【常用】

throw用在catch語句塊中

public void mul() throws Exception{

 try{

  int i = 0;

  System.out.println(100 / i);

 }catch(ArithmeticException e){

  e.printStackTrace();

  throw e;

 }

}

 

package  包相關  【常用】

包名就相當於文件夾名

class【常用】

類名就相當於文件名

import【常用】

引包,自動導包存在一定侷限性,注意觀察

基本類型【常用】

變量引用

super

對父類的引用,子類super(),裏面無參的情況下會調用父類的無參方法,父類如果沒寫則會有默認的無參方法,如果寫了有參構造方法,則子類在調用時會報錯,需要在父類再寫一個無參方法;super(4)類似這種有參的會先調用父類的有參方法再執行子類的方法[看是否重寫,是就子類反之父類]

可以通過super.的方式可以調用父類中的方法以及屬性

super不能作爲參數傳遞

this

指代的當前對象

當前對象:當創建一個對象的時候使用該對象調用方法以及屬性,這個時候該對象就稱爲當前對象

特點:

1 用來指代當前對象  

2 this可以作爲參數進行傳遞

3 通過this() 的方式可以來調用其它的構造方法,並且必須放在程序的第一行,並且不能同時調用兩個構造方法

4 當再本類中調用屬性及其方法的時候 如果沒有異議 ,可以省略this

5 this可以區別成員變量和局部變量

void  【常用】

默認無返回類型,如果有return()語句,不能有void

保留字

goto    

const

少用但仍是關鍵字

native

本地方法調用,調用的不是JAVA代碼(一般涉及C)

instanceof

Java 中的instanceof 運算符是用來在運行時指出對象是否是特定類的一個實例。instanceof通過返回一個布爾值來指出,這個對象是否是這個特定類或者是它的子類的一個實例。

用法:

result = object instanceof class-----false

參數:

Result:布爾類型。

Object:必選項。任意對象表達式。

Class:必選項。任意已定義的對象類。

說明:

如果 object 是 class 的一個實例,則 instanceof 運算符返回 true。如果 object 不是指定類的一個實例,或者 object 是 null,則返回 false。

確定對象所屬的類 instanceof通過返回一個布爾值來指出,這個對象是否是這個特定類或者是它的子類的一個實例。

transient

當一個對象被串行化的時候,transient型變量的值不包括在串行化的表示中,然而非transient型的變量是被包括進去的。

enum

枚舉

用法一:常量

 

用法二:case語句中

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章