網頁無法調用java9_JAVA 9 (內部類,異常,包)

內部類:

將一個類定義在另一個類里面,稱里面那個類為內部類。

舉例:

class Zx

{

public static void main(String []arr)

{

Outer ?o = new Outer();

o.method();

}

}

class Outer

{

class Inner //內部類,可以定義多個內部類

{

void function()

{

System.out.println("inner:"+x);

}

}

int x=3;

void method()

{

System.out.println(x);

Inner in = new Inner();

in.function();

}

}

直接訪問內部類中的成員:

可以在main()中 寫 Outer.inner in = new Outer().new Inner(); ?//內部類可以被私有化,外部類不能,私有化之后不可以這樣寫了。

內部類訪問規則

1,內部類可以直接訪問外部類中的成員,包括私有。

之所以可以直接訪問外部類中的成員,是因為內部類中持有了一個外部類的引用,格式為:外部類.this.變量名。

2,外部類要訪問內部類必須建立內部類對象。

訪問格式:

1,當內部類定義在外部類的成員位置上,而且非私有,可以在外部其他類中。

可以直接建立內部類對象 ,

格式 Outer.inner in = new Outer().new Inner();

2,當內部類在成員位置上,就可以被成員修飾符修飾。

比如,private:將內部類在外部類中進行封裝

static:內部類就具備了靜態的特性。//無法訪問非靜態變量,只能訪問外部類中的靜態成員,優先于對象存在。

內部類定義原則

當描述事物時,事物的內部還有事物,該事物用內部類來描述,因為內部事物在使用外部事物的內容。

class Body

{

private class XinZang

{

}

public void show()

{

new XinZang();

}

}

定義在方法內部的內部類,即不是成員位置

1,不可以被靜態和私有修飾,仍然可以訪問外部類成員變量,因為還持有外部類中的引用

class Zx

{

public static void main(String []arr)

{

new Outer().method();

}

}

class Outer

{

int x=3;

void method()

{

class Inner//不可以被靜態和私有修飾,仍然可以訪問外部類成員變量

{

void function()

{

System.out.println(x);

}

}

new Inner().function();

}

}

2,但是不可訪問他所在的局部變量,只能訪問被final修飾的局部不看了,如method中 int個y,不可與訪問y

匿名內部類

1,其實是內部類簡寫格式。

2,定義匿名內部類的前提

內部類必須是繼承一個類或者實現接口。

3,匿名內部類格式: new 父類或者接口()

{

定義子類的內容

}

4,其實匿名內部類就是一個匿名子類對象,而且對象有點胖,帶內容的對象。

5,匿名內部類中定義的方法最好不要超過三個。

舉例

原來:

class Zx

{

public static void main(String []arr)

{

new Outer().function();

}

}

abstract class A

{

abstract void show();

}

class Outer

{

int x=3;

class Inner extends A

{

void show()

{

System.out.println("show"+x);

}

}

public void function()

{

new Inner().show();

}

}

修改匿名后:

class Zx

{

public static void main(String []arr)

{

new Outer().function();

}

}

abstract class A

{

abstract void show();

}

class Outer

{

int x=3;

public void function()

{

new A() //A 的匿名子類對象

{

void show()

{

System.out.println("show"+x);

}

}.show();

}

}

匿名內部類練習

class Zx

{

public static void main(String []arr)

{

Test.function().method();//補全代碼,運行正常

}

}

interface Inter

{

void method();

}

class Test

{

/*

static Inter ?function()

{

return new Inter()

{

public void method()

{

System.out.println("111");

}

} ;

}

*/

}

異常

異常:程序運行時出現不正常情況。

異常由來:問題時java對問題進行描述,封裝成對象。

對于嚴重的:java通過Error類進行描述。

對于Error,一般不編寫針對性的代碼進行處理

對于非常嚴重的:java通過Exception類進行描述。

對于Exception可以提供針對性代碼進行處理

Throwable //父類

異常處理:

javc提供可特特有語句進行處理,格式:

try

{

需要被檢測的代碼

}

catch(異常類 變量)

{

處理方式

}

finally

{

一定會執行的語句

}

4675972.html

4675972.html

throws Exception //拋出問題

多異常處理

多個catch(x e)即可,x為exception的子類

并且應當把父類放在最后,以方便前面能夠精確識別異常種類

catch(Exception e)

{

}

自定義異常:

將特有的問題,java沒有封裝的異常,進行自定義。

一般情況下,函數內部出現異常,要么在函數內部進行

try

{

}

catch()

{

}

要么在函數頭throws 異常。

例如當除數是負數時,視為異常情況。

class Zx

{

public static void main(String []arr) throws Fushu \\!!

{

System.out.print(new Demo().div(3, 44));

}

}

class Fushu extends Exception

{

private String msg;

void Fushu(String msg)

{

this.msg=msg;

}

public String getMessage()

{

return msg;

}

}

class Demo

{

int div(int a,int b) throws Fushu

{

if (b<0)

throw new Fushu("出現了負數的情況");//手動通過throw拋出異常對象 ?//!!自定義異常

return a/b;

}

}

原來對類文件進行管理

可以有多層包目錄

package org.crazyit.net;把類存放在該文件中?org.crazyit.net

不同包中的類互相訪問。

被訪問的包中的類以及類中的成員,需要public修飾

不同包中的子類還可以直接訪問父類中被protected修飾的成員

包與包直接權限只有兩種,public protected,默認

權限區分。

public

portected

default(默認)

private

同一個類中

ok

ok

ok

ok

同一個包中

ok

ok

ok

子類

ok

ok

不同包中

ok

一個java文件中只能產生一個public類

package.類名=新類名

不同包中的類也可繼承,創建對象等等

package zxzx; //在這個包中

public class Zx { ? ? ? ? ? ?//class必須得是public 才能被外部訪問

public void show()

{

System.out.println("show ran");?//函數必須得是public 才能被外部訪問

}

}

public class ArrayTool

{

private ArrayTool (){}

public static void main(String [] arr)

{

zxzx.Zx a = new zxzx.Zx(); //package.類名 為新類名

a.show();

}

}

import

為了簡化類名的屬性

zxzx.Zx a = new zxzx.Zx(); //package.類名 為新類名

improt zxzx.Zx;將包zxzx中的Zx 導入

可以在該類中直接寫Zx a = new Zx(); 了

也可以寫

improt zxzx.*;導入zxzx包中的所有 類。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/533940.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533940.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533940.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python renamer模塊_Python - 批量文件重命名

兩個目標兩個&#xff1a;1. 輸入一組文件名&#xff0c;進行批量重命名&#xff1b;2. 輸入一組目錄名&#xff0c;批量重命名各個目錄下的文件。附加功能&#xff1a;1. 可根據文件的創建日期對文件重新排序&#xff1b;2. 重命名方式為遞增數列&#xff0c;可帶前后綴&#…

spark算子_Spark篇之持久化算子

一、前述Spark中控制算子也是懶執行的&#xff0c;需要Action算子觸發才能執行&#xff0c;主要是為了對數據進行緩存。控制算子有三種&#xff0c;cache,persist,checkpoint&#xff0c;以上算子都可以將RDD持久化&#xff0c;持久化的單位是partition。cache和persist都是懶執…

java g1 gc ref proc_深入理解垃圾收集器的G1及日志分析

盡管Hotspot 最新的垃圾回收器G1是在2006年推出的。但是G1從推行至今的市場反響來看&#xff0c;但現在足以證明這款垃圾收集器是經得起考驗的&#xff0c;從java9開始&#xff0c;就默認為G1垃圾收集器。G1是一款面向服務端應用的垃圾收集器。HotSpot開發團隊賦予它的使命是(在…

python爬取嗶哩嗶哩視頻_Python實現視頻爬取下載

注&#xff1a;源內容來自公眾號【python學習開發】一般情況下我們使用爬蟲更多的是對數據或者圖片進行爬取,今天在這里和大家分享一下關于使用爬蟲技術來進行視頻下載的方法,不僅可以方便的下載一些體積小的視頻,針對大容量的視頻下載同樣試用。接下來我們來介紹此次爬取視頻過…

java約瑟夫環pta上_cdoj525-猴子選大王 (約瑟夫環)

約瑟夫斯問題問題有時候也被描述成猴子選大王問題,題目如下.(最后會貼上約瑟夫問題的來歷) 一群猴子排成一圈,按1,2,…,n依次編號. 然后從第1只開始數,數到第m只,把它踢出圈,從它后面再開始數,再數到第m只,在把它踢出去…,如此不停的進行下去,直到最后只剩下一只猴子為止,那只猴…

java++記錄+運行_記錄java+testng運行selenium(三)---xml、ini、excel、日志等配置

一&#xff1a; ini文件ini目前只用處存儲瀏覽類型及需要打開的url&#xff0c;ini文件放在configs文件夾下面。讀取ini代碼如下&#xff1a;1 packagetoolskit.documents;23 import java.io.*;4 import java.util.*;56 /**7 * ClassName: ReadIni8 * Author: DingDong9 * D…

python字符串前面加f什么意思_Python 字符串前面加u,r,b,f的含義

1、字符串前加 u例&#xff1a;u"我是含有中文字符組成的字符串。"作用&#xff1a;后面字符串以 Unicode 格式 進行編碼&#xff0c;一般用在中文字符串前面&#xff0c;防止因為源碼儲存格式問題&#xff0c;導致再次使用時出現亂碼。2、字符串前加 r例&#xff1a…

mysql居左查詢abcd_MySql速查手冊

索引定義索引用來快速地尋找那些具有特定值的記錄&#xff0c;所有MySQL索引都以B樹的形式保存。就像是數據的目錄。索引類型唯一索引主鍵索引B-Tree普通索引R-Tree聯合索引Hash全文索引FullText在mysql中fulltext索引只針對myisam生效。符合索引對于創建的多列索引(復合索引)&…

和python哪個容易胖_為什么有些人特別容易胖?

7種人&#xff0c;最容易被肥胖盯上&#xff0c;其中有你嗎&#xff1f;胖&#xff0c;總是來得猝不及防&#xff0c;肥肉也總是不知不覺地長出來……許多胖友對自己的身材老摸不著腦&#xff0c;其實&#xff0c;長胖都是有跡可循的&#xff01;正如下面這7類人&#xff0c;就…

loadrunner 錯誤: 無法找到 java.exe_LoadRunner錯誤及解決方法總結

1. error:missing newline in d:\loadrunner\name.dat場景執行時報error:missing newline in d:\loadrunner\name.dat第二次執行不報兩個解決辦法&#xff1a;第一&#xff1a;如果參數不是很多的話&#xff0c;不要打開記事本去編輯參數&#xff0c;就直接在LR提供的參數的表格…

gif透明背景動畫_【超實用干貨! 】iPad上的動畫App大推薦

作者/立夏編輯/彼方大家好&#xff0c;我是立夏。大概在兩年前吧我為大家寫過幾款動畫APP的評測&#xff0c;這一次我也想給大家推薦一些我的新寵&#xff0c;供大家參考。我在這里就不過多提及如Animation Desk、Procreate或是Callipeg之類知名度相對更高一些的動畫App了&…

python框架是干什么的_django框架是干什么的

django(Python Web 框架)Django是一個開放源代碼的Web應用框架&#xff0c;由Python寫成。采用了MTV的框架模式&#xff0c;即模型M&#xff0c;視圖V和模版T。它最初是被開發來用于管理勞倫斯出版集團旗下的一些以新聞內容為主的網站的&#xff0c;即是CMS(內容管理系統)軟件。…

iphone如何信任軟件_【手機軟件】千禾影院:全新觀影神器,支持安卓+iOS,最新、最全、高清、免費!...

Hello,大家好&#xff0c;我是春哥&#xff01;每天記得打卡哦&#xff01;感謝每一位小伙伴們的關注和支持&#xff01;免責聲明大部分資源來源于網絡&#xff0c;僅供學習和交流使用&#xff0c;如有侵權請聯系我們刪除。每期文章末尾都會有關鍵詞&#xff0c;在公眾號發消息…

Java小魔女芭芭拉_沉迷蘑菇不可自拔,黏土人《小魔女學園》蘇西·曼芭芭拉 圖賞...

GOOD SMILE出品的黏土人系列手辦新作——《小魔女學園》蘇西曼芭芭拉&#xff0c;已經開始接受預定了。這款黏土人的原型師是來自中國上海的陳天&#xff0c;售價4167日元&#xff0c;預計2018年4月發售。蘇西是主人公亞可的室友&#xff0c;她是從東南亞來的身份不明的魔女。熱…

java int相除向上取整_java實戰項目常用類,Date、Calendar、BigDecimal、Math、UUID

Java開發中經常用到的類和方法&#xff0c;以下主要就日期是時間處理、金融數字處理、數學計算、隨機數、MD5加密等。java.util.Date類java.util 包提供了 Date 類來封裝當前的日期和時間。 Date 類提供兩個構造函數來實例化 Date 對象。日期時間的本質是一個long&#xff0c;它…

python四級中考有用的_一位中考生家長的后悔藥:考前30多天,千萬別做這7件傻事...

中考即將來臨&#xff0c;考后必定是幾家歡樂幾家愁&#xff0c;有慶幸的、有后悔的。中考前的幾個月到底應該怎么過?考前考中需要注意什么&#xff1f;家長做哪些事情是畫蛇添足的。今天給大家推薦一位“中考失敗”學子父親的自白&#xff0c;其中有對優秀兒子的心疼&#xf…

R語言中dim函數_R語言--向量化計算(apply族函數)

R語言最優秀的是它的向量化編程&#xff0c;這其中apply族函數扮演了非常重要的角色。apply族函數是由apply、sapply、lapply、mapply、tapply等函數組成的。熟練使用apply族函數&#xff0c;能夠簡化程序&#xff0c;提高代碼的運算速度。軟件&環境win10 64bitR 3.6.1appl…

php+mysql記事本_一個簡單記事本php操作mysql輔助類創建

//SqlHelper.class.phpconnmysql_connect($this->host,$this->user,$this->passwrd); if(!$this->conn){ die("連接失敗".mysql_error()); } mysql_select_db($this->db); mysql_query("set names utf8"); } //增刪改 function execute_dml…

python init方法做了什么_Python類方法、__new__方法和__init__方法分別是什么

Python類方法、__new__方法和__init__方法分別是什么發布時間&#xff1a;2020-09-03 15:24:06來源&#xff1a;億速云閱讀&#xff1a;104作者&#xff1a;小新這篇文章主要介紹Python類方法、__new__方法和__init__方法分別是什么&#xff0c;文中介紹的非常詳細&#xff0c;…

谷歌瀏覽器中文版_中國科學家設計超薄指尖傳感器,厚度不到A4紙五分之一 / 谷歌發布地圖時光機:百年前,你家街道啥樣?/ AI看圖說話首超人類...

關注我們了解計算機視覺最新動態 &#xff01;動態先覽1中國科學家設計超薄指尖傳感器&#xff0c;厚度不到A4紙五分之一2谷歌發布地圖「時光機」&#xff1a;100年前&#xff0c;你家街道長啥樣&#xff1f;3仿真環境跟車2分鐘&#xff0c;就讓自動駕駛系統撞上馬路牙子&#…