java内部类文件,Java内部类学习
Java內(nèi)部類學(xué)習(xí)
1.內(nèi)部類的實(shí)例與外部類的實(shí)例共享一種特殊的關(guān)系,這種特殊的關(guān)系為內(nèi)部類中的代碼提供對(duì)封裝(外部)類成員的訪問。其實(shí),內(nèi)部類就是外部類的一部分。不僅僅是“一部分”,而且是外部類的一個(gè)完整的,正式的成員。內(nèi)部類實(shí)例可以訪問外部類的所有成員,甚至是那些標(biāo)識(shí)為private的成員。
1.1編寫常規(guī)內(nèi)部類
此處的常規(guī)表示:內(nèi)部類不是靜態(tài)的,局部方法的,匿名的。應(yīng)是如下形式的:
class MyOuter {
class MyInner{ }
}
編譯時(shí)會(huì)生成兩個(gè)類文件:
javac MyOuter.java
生成:
MyOuter.class和MyInner.class
常規(guī)的內(nèi)部類不能有任何類型的靜態(tài)生命。能夠訪問內(nèi)部類的唯一方法是通過外部類的一個(gè)活的實(shí)例。
看如下代碼:
class MyOuter {
private int x=7;
class MyInner {
public void seeOuter(){
System.out.println("Outer x is "+x);//可以直接訪問外部類的成員,即使是private的
}
}
}
實(shí)例化外部類
在外部類中實(shí)例化內(nèi)部類
class MyOuter {
private int x=7;
public void makeInner(){
MyInnner in=new MyInner();
in.seeOuter();
}
class MyInner {
public void seeOuter() {
System.out.println("Outer x is "+x);
}
}
}
可見,MyOuter將MyInner當(dāng)做其他任何可訪問的類一樣,它使用類名稱【new MyInner()】來實(shí)例化。然后再引用變量上調(diào)用方法[in.seeOute()]。這種方法能起作用的唯一原因是:外部類實(shí)例方法代碼正在進(jìn)行實(shí)例化。換句話說,已經(jīng)存在一個(gè)外部類的實(shí)例---運(yùn)行makeInner()的實(shí)例。
從外部類實(shí)例代碼之外創(chuàng)建外部類的對(duì)象
沒有外部類的實(shí)例,就不能從外部類的靜態(tài)方法實(shí)例化內(nèi)部類(因?yàn)殪o態(tài)代碼內(nèi)不存在this引用)。內(nèi)部類的實(shí)例總是擁有一個(gè)外部類的隱含引用。編譯器負(fù)責(zé)處理這種隱含關(guān)系。
在外部類之外,創(chuàng)建內(nèi)部類實(shí)例,可以這樣做:
public s
相關(guān)文檔:
一、什么是Java虛擬機(jī)
當(dāng)你談到Java虛擬機(jī)時(shí),你可能是指:
1、抽象的Java虛擬機(jī)規(guī)范
2、一個(gè)具體的Java虛擬機(jī)實(shí)現(xiàn)
3、一個(gè)運(yùn)行的Java虛擬機(jī)實(shí)例
二、Java虛擬機(jī)的生命周期
一個(gè)運(yùn)行 ......
轉(zhuǎn)帖處:http://dong-java.javaeye.com/blog/375150
1。推薦使用Oralce比較新的10.2.0.3 JDBC Drivers。這個(gè)版本對(duì)比9.2的最大的好處是DriverManager.setLoginTimeout函數(shù)是起作用的。設(shè)置了這個(gè)參數(shù),在惡劣的網(wǎng)絡(luò)環(huán)境中就不會(huì)有連接數(shù)據(jù)庫的函數(shù)長(zhǎng)時(shí)間不返回的情況。
2。JDBC Developer!ˉs Guide and Refer ......
JAVA程序員面試之葵花寶典
1、面向?qū)ο蟮奶卣饔心男┓矫?/p>
1.抽象:抽象就是忽略一個(gè)主題中與當(dāng)前目標(biāo)無關(guān)的那些方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時(shí)不用部分細(xì)節(jié)。抽象包括兩個(gè)方面,一是過程抽象,二是數(shù)據(jù)抽象。
2.繼承:繼承是一種聯(lián)結(jié)類的層次模 ......
程序沒什么含金量,高手莫笑。
package first;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.*;
import ......
1.介紹
1)DOM(JAXP Crimson解析器)
DOM是用與平臺(tái)和語言無關(guān)的方式表示XML文檔的官方W3C標(biāo)準(zhǔn)。DOM是以層次結(jié)構(gòu)組織的節(jié)點(diǎn)或信息片斷的集合。這個(gè)層次結(jié)構(gòu)允許開發(fā)人員在樹中尋找特定信息。分析該結(jié)構(gòu)通常需要加載整個(gè)文檔和構(gòu)造層次結(jié)構(gòu),然后才能做任何工作。由于它是基� ......
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的java内部类文件,Java内部类学习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab optimization
- 下一篇: mysql 连接池的作用,数据库连接池介