JAVA-基礎(一)

來源:互聯網
上載者:User

標籤:種類型   erro   平台   classes   back   建立   cal   interface   其他   

1.一個變數可以聲明為final,這樣做的目的是阻止它的內容被修改。這意味著在聲明final 變數的時候,你必須初始化它(在這種用法上,final類似於C/C++中的const)。

例如:

final int FILE_NEW = 1;

final int FILE_OPEN = 2;

final int FILE_SAVE = 3;

final int FILE_SAVEAS = 4;

final int FILE_QUIT = 5;

 

你的程式的隨後部分現在可以使用 FILE_OPEN等等,就好像它們是常數,不必擔心 它們的值會被改變。 為final變數的所有的字元選擇大寫是一個普遍的編碼約定。聲明為final的變數在執行個體 中不佔用記憶體。這樣,一個final變數實質上是一個常數。 關鍵字final也可以被應用於方法,但是它的意思和它被用於變數實質上是不同的。

 

2.介紹嵌套類和內部類[個人理解主要是用於解析JSON資料結構]

在另一個類中定義的類就是嵌套類(nested classes)。嵌套類的範圍由裝入它的類的範 圍限制。這樣,如果類B被定義在類A之內,那麼B為A所知,然而不被A的外面所知。嵌套 類可以訪問嵌套它的類的成員,包括private成員。但是,包圍類不能訪問嵌套類的成員。 嵌套類一般有2種類型:前面加static標識符的和不加static標識符的。一個static的嵌套 類有static修飾符。因為它是static,所以只能通過對象來訪問它包圍類的成員。也就是說, 它不能直接引用它包圍類的成員。因為有這個限制,所以static嵌套類很少使用。 嵌套類最重要的類型是內部類(inner class)。內部類是非static的嵌套類。它可以訪問 它的外部類的所有變數和方法,它可以直接引用它們,就像外部類中的其他非static成員的 功能一樣。這樣,一個內部類完全在它的包圍類的範圍之內。

 

3.繼承中使用final(類似密封類seal,不能被重寫)

Final關鍵字有三個用途。第一,它可以用來建立一個已命名常量的等價物。這個用法 在前面的章節中已有描述。Final的其他兩個用法是應用於繼承的,這兩種用法都會在下面 闡述。 8.8.1 使用final阻止重載 儘管方法重載是Java的一個最強大的特性,有些時候你希望防止它的發生。不接受方 法被重載,在方法前定義final修飾符。聲明成final的方法不能被重載。下面的程式段闡述

了final的用法:

class A

{

  final void meth()

   { System.out.println("This is a final method.");}

} class B extends A { void meth() { // ERROR! Can‘t override. System.out.println("Illegal!"); } }

 

 

因為meth( )被聲明成final,它不能被B重載,如果你試圖這樣做,將會產生一個編譯時間 錯誤。 定義成final的方法有時可以提高程式效能:編譯器可以自由的內嵌調用final方法因為 它知道這些方法不能被子類重載。當一個小的final函數被調用,通常Java編譯器可以通過調 用方法的編譯代碼直接內嵌來備份子程式的位元組碼,這樣減小了與方法調用有關的昂貴開 銷。內嵌僅僅是final方法的一個可選項。通常,Java在運行時動態調用方法,這叫做後期 綁定(late binding)。然而既然final方法不能被重載,對方法的調用可以在編譯時間解決,這 叫做早期繫結(early binding)。

使用final阻止繼承 有時你希望防止一個類被繼承。做到這點只需在類聲明前加final。聲明一個final類含 蓄的宣告了它的所有方法也都是final。你可能會想到,聲明一個既是abstract的又是final的 類是不合法的,因為抽象類別本身是不完整的,它依靠它的子類提供完整的實現。 下面是一個final類的例子: final class A { // ... } // The following class is illegal. class B extends A { // ERROR! Can‘t subclass A // ... } 像注釋暗示的,B繼承A是不合法的,因為A聲明成final。

 

4.java中的Package 類似於C#中的namespace 一個包類似一個程式集的作用

import pk1.pk11.classname  ->using namespace.subnamespace.classname

5.interface  預設修飾符為:public 

6.繼承 extends   實現介面:implents

7.局部實現 如果一個類包含一個介面但是不完全實現介面定義的方法,那麼該類必須定義成 abstract型

abstract class Incomplete implements Callback { int a, b; void show() { System.out.println(a + " " + b); } // ... }

這裡,類Incomplete沒有實現callback( )方法,必須定義成抽象類別。任何繼承Incomplete 的類都必須實現callback( )方法或者它自己定義成abstract類。

8.Java的內建異常

9.instanceof  類型判斷

10.JAVA的本機方法,有點類似於C#的 external 方法【本地方法的編寫是利用JNI來實現的,區別於特定的平台】

 

JAVA-基礎(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.