導航:首頁 > 編程語言 > java類的嵌套

java類的嵌套

發布時間:2022-06-29 16:40:21

1. java嵌套類的作用、用法和調用機制是怎麼樣的

使用匿名內部類課使代碼更加簡潔、緊湊,模塊化程度更高。內部類能夠訪問外部內的一切成員變數和方法,包括私有的,而實現介面或繼承類做不到。然而這個不是我說的重點,我說的很簡單,就是匿名內部類的兩種實現方式:第一種,繼承一個類,重寫其方法;第二種,實現一個介面(可以是多個),實現其方法。下面通過代碼來說明:
Java代碼
public
class
TestAnonymousInterClass{
public
static
void
main(String
args[]){
TestAnonymousInterClass
test=new
TestAnonymousInterClass();
test.show();
}
//在這個方法中構造了一個匿名內部類
private
void
show(){
Out
anonyInter=new
Out(){//
獲取匿名內部類實例
void
show(){//重寫父類的方法
System.out.println("this
is
Anonymous
InterClass
showing.");
}
};
anonyInter.show();//
調用其方法
}
}
//
這是一個已經存在的類,匿名內部類通過重寫其方法,將會獲得另外的實現
class
Out{
void
show(){
System.out.println("this
is
Out
showing.");
}
}
public
class
InterFaceDemo03{
public
static
void
main(String[]
args){
new
MyInterface(){
public
void
sayHello(){
System.out.println("Hello");
}
}.sayHello();
}
}
/*
將介面注釋掉
同樣可以實現
*/
interface
MyInterface{
void
sayHello();
}

2. java 嵌套類 訪問方法

首先列印的結果是
3
4
5

3是函數體test的私有變數,在函數test內可見,除了這個范圍就不可見;
4是函數test所從屬的類實例的變數,即inner類實例的變數,僅在inner類實例的范圍內可見;
5是Outer類實例的變數i,不是指inner類。
你要記住,在Java中,this關鍵字指的是某個類的實例,Outer.this指的是Outer類的實例;如果this前面沒有指定范圍,那麼this指的是本類的作用域范圍,在函數體test中,this的范圍只能向上延伸至inner

3. 在JAVA里,一個類里可以嵌套另一個類嗎

可以,java里在一個類中定義另一個類,這個類被成為內部類。
java內部類分為: 成員內部類、靜態嵌套類、方法內部類、匿名內部類 。

4. java 類的嵌套引用

類似下面的這種:
public class DLTNode(){
public int hh(int n){
if (n == 1){
return 1;
} else{
return n * DLTNode(n - 1);
}
}
}

5. java內部類的靜態嵌套類

靜態內部類中可以定義靜態或者非靜態的成員。
從技術上講,靜態嵌套類不屬於內部類。因為內部類與外部類共享一種特殊關系,更確切地說是對實例的共享關系。而靜態嵌套類則沒有上述關系。它只是位置在另一個類的內部,因此也被稱為頂級嵌套類。
靜態的含義是該內部類可以像其他靜態成員一樣,沒有外部類對象時,也能夠訪問它。靜態嵌套類僅能訪問外部類的靜態成員和方法。
class Outer{
static class Inner{}
}
class Test {
public static void main(String[] args){
Outer.Inner n = new Outer.Inner();
}
}
在靜態方法中定義的內部類也是StaticNested Class,這時候不能在類前面加static關鍵字,靜態方法中的StaticNested Class與普通方法中的內部類的應用方式很相似,它除了可以直接訪問外部類中的static的成員變數,還可以訪問靜態方法中的局部變數,但是,該局部變數前必須加final修飾符。
為什麼需要內部類
典型的情況是,內部類繼承自某個類或實現某個介面,內部類的代碼操作創建其的外圍類的對象。所以你可以認為內部類提供了某種進入其外圍類的窗口。使用內部類最吸引人的原因是:
每個內部類都能獨立地繼承自一個(介面的)實現,所以無論外圍類是否已經繼承了某個(介面的)實現,對於內部類都沒有影響。如果沒有內部類提供的可以繼承多個具體的或抽象的類的能力,一些設計與編程問題就很難解決。從這個角度看,內部類使得多重繼承的解決方案變得完整。介面解決了部分問題,而內部類有效地實現了「多重繼承」。

6. java程序中,類可不可以嵌套定義

可以的,比如內部類,匿名類都是一種嵌套格式,l如果定義為嵌套格式的,在代碼共享上,勢必會受到影響,但是原則上是都可以的。定義的:
class a {
private class b{
Integer i = new Integer(0);
}
void geti() {
b c = new b();
System.out.println(c);
}
}

7. 如何在網頁上嵌套java程序

首先靜態的html標簽是無法直接調用java程序的。
下面是實現的幾種方法:

第一種方法:
將按鈕放到form表單中,當按鈕點擊時提交表單(或者直接將input的type屬性定義成submit),表單可以指向JSP或Servlet,在JSP或Servlet里調用java程序

第二種方法:
在按鈕的onclick時間中添加js代碼
self.location="url";其中url指向JSP或Servlet

第三種方法:
使用第三方的javascript包,dwr是一個不錯的選擇:
1、需要准備dwr的jar包,並將之放到lib目錄下;
2、修改web.xml文件,添加DWRServlet的映射;
3、配置dwr,即在WEB-INF目錄下,添加dwr.xml文件,讓dwr知道在運行時給哪些JavaBean生成相應的javascript庫;
4、將需要的腳本庫引入到html頁面中就可以通過dwr的API訪問java類了。

第四種方法:
使用MVC框架更簡單,以struts為例,可以仿照第一或第二種方法,將url替換成配置文件中配置的地址就能訪問java程序了。

8. JAVA內部類嵌套問題

首先,你這樣ABC的動態嵌套肯定有嚴重誤用的嫌疑。。
如果要強行引用A的實例對象中成員,寫法是A.this.methodOfA();

public void fun() {
System.out.println(A.this.propertyX);
A.this.methodOfA();
}
如果內層類不是隨著外層類的實例對象的內容變化而變化,內層類要加static class C設為靜態類。可減少一個數量級的不必要的資源浪費。
如果內層類是公用的,被別的類調用很多或邏輯從屬關系不明顯,還要考慮不寫成內層類。單獨寫一個java文件。

9. java中的容器類可以嵌套嗎

可以的 他們都是對象

10. 請問,java的嵌套類有什麼作用

關於這個問題,有相關的文章專門解釋了你的問題,文章鏈接:網頁鏈接

請採納!

閱讀全文

與java類的嵌套相關的資料

熱點內容
pythonui開發工具 瀏覽:595
adr指標源碼 瀏覽:217
程序員轉架構管理 瀏覽:958
企業伺服器為什麼不能被拷貝 瀏覽:119
用c編程實現txt搜索 瀏覽:854
JAVA小數隨機數 瀏覽:336
app加拿大pc怎麼操控的 瀏覽:698
光影app蘋果怎麼下載不了 瀏覽:971
php會員注冊代碼 瀏覽:511
csgo如何用128tick伺服器 瀏覽:571
百度網度怎麼解壓 瀏覽:946
windowsopencv源碼 瀏覽:945
origin平滑演算法 瀏覽:875
unity程序員簡歷 瀏覽:63
單片機ifelse 瀏覽:696
如何理解php面向對象 瀏覽:96
macword轉pdf 瀏覽:848
python列表求交集 瀏覽:874
解壓包如何轉音頻 瀏覽:447
機明自動編程軟體源碼 瀏覽:326