网页无法调用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.mzph.cn/news/533940.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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开发团队赋予它的使命是(在…

gif透明背景动画_【超实用干货! 】iPad上的动画App大推荐

作者/立夏编辑/彼方大家好&#xff0c;我是立夏。大概在两年前吧我为大家写过几款动画APP的评测&#xff0c;这一次我也想给大家推荐一些我的新宠&#xff0c;供大家参考。我在这里就不过多提及如Animation Desk、Procreate或是Callipeg之类知名度相对更高一些的动画App了&…

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;它…

R语言中dim函数_R语言--向量化计算(apply族函数)

R语言最优秀的是它的向量化编程&#xff0c;这其中apply族函数扮演了非常重要的角色。apply族函数是由apply、sapply、lapply、mapply、tapply等函数组成的。熟练使用apply族函数&#xff0c;能够简化程序&#xff0c;提高代码的运算速度。软件&环境win10 64bitR 3.6.1appl…

谷歌浏览器中文版_中国科学家设计超薄指尖传感器,厚度不到A4纸五分之一 / 谷歌发布地图时光机:百年前,你家街道啥样?/ AI看图说话首超人类...

关注我们了解计算机视觉最新动态 &#xff01;动态先览1中国科学家设计超薄指尖传感器&#xff0c;厚度不到A4纸五分之一2谷歌发布地图「时光机」&#xff1a;100年前&#xff0c;你家街道长啥样&#xff1f;3仿真环境跟车2分钟&#xff0c;就让自动驾驶系统撞上马路牙子&#…

300小时成为java程序员_直击面试现场: Java程序员3轮6小时面试, 成功拿到阿里offer!...

原标题&#xff1a;直击面试现场: Java程序员3轮6小时面试, 成功拿到阿里offer!今天给大家分享一位Java程序员小伙去阿里应聘的经历&#xff01;从Java开发要掌握的技术来讲&#xff0c;前面已经说得差不多了。我主要想从面试者的角度谈一谈看法。如果是我面试&#xff0c;就给…

anaconda python3.8目录_MacBook Pro 安装anaconda、配置环境

新入手了MacBook Pro&#xff0c;iOS系统还不算非常熟练...作为一个新手程序员&#xff0c;在python开发道路上的学习就从安装环境开始吧&#xff1a;1、下载安装包2、安装过程一路同意or继续...不过&#xff0c;mac上弹出不允许在当前路径安装&#xff0c;那么选择自定义安装路…

stm32外部中断_STM32学习笔记 | 电源管理及低功耗设计要点

一款好的电子产品&#xff0c;都需要认真考虑电源管理的问题&#xff0c;电池供电的产品更应该注意低功耗的实现。 STM32电源介绍嵌入式开发直播课 - STM32 USART串口的应用 - 创客学院直播室​www.makeru.com.cn每一块STM32芯片中都有一个电源控制器&#xff08;PWR&#xff0…

delphi 调用浏览器内核_HFL:基于混合模糊测试的Linux内核漏洞挖掘

RemarksConference: NDSS 2020Full Paper: HFL: Hybrid Fuzzing on the Linux KernelSummary针对的问题&#xff1a; Linux 操作系统内核安全漏洞的发现需要新技术。现有解决方案的不足&#xff1a;当前的模糊测试技术难以直接应用于内核安全漏洞发现。提出的创新方案概述&…

隔行变色java代码_jquery入门—选择器实现隔行变色实例代码

1、JQuery选择器继承了CSS、path语音的部分语法&#xff0c;允许通过标签名、属性名、内容对DOM元素进行快速、准确的选择。2、JQuery选择器与JavaScript相比&#xff0c;具有代码简单、完善的检测机制的优势。3、使用JQuery选择器实现隔行变色&#xff0c;示例代码如下&#x…

角标越界 Java_【新人求助】利用占位符操作数据库是总是提示数组角标越界是怎么回事 - Java论坛 - 51CTO技术论坛_中国领先的IT技术社区...

用占位符和数组来操作数据库总是提示下角标越界&#xff0c;找了半天也没弄明白哪里有问题&#xff0c;这个地方是跟着云课堂老师的讲解做的&#xff0c;只不过操作的数据表不一样&#xff0c;但是老师那个就没问题&#xff0c;我就出了问题&#xff0c;如果有大神能帮忙看看&a…

简述ospf的工作原理_现代数字存储示波器的工作原理简述

示波器是一种用途十分广泛的电子测量仪器。俗话说&#xff0c;电是看不见摸不着的。但是示波器可以帮我们“看见”电信号&#xff0c;便于人们研究各种电现象的变化过程。所以示波器的核心功能&#xff0c;就和他的名字一样&#xff0c;是显示电信号波形的仪器&#xff0c;以供…

pyecharts 间距_高月双色球20108期:红球首尾间距参考29区段

双色球第2020108期奖号为&#xff1a;03 09 11 24 25 28 16&#xff0c;红球和值&#xff1a;100&#xff0c;重号2个&#xff1a;11 28&#xff0c;首尾间距&#xff1a;25。和值&#xff1a;上期和值为100&#xff0c;上升了22点&#xff0c;再次开出小和值&#xff0c;最近…

java类中声明log对象_用于Android环境,java环境的log打印,可打印任何类型数据

LogXixi用于Android环境&#xff0c;java环境的log打印&#xff0c;可打印任何类型数据,根据android项目环境debug环境自动打开&#xff0c;release环境自动关闭android环境log打印&#xff0c;规范bean对象&#xff0c;json&#xff0c;xml对应log&#xff0c;crash捕捉&#…

xbox手柄接收器驱动_xbox手柄连接 win10电脑

xbox手柄 连接win10笔记本 分为三种连接方式&#xff1a;有线蓝牙无线适配器首先说明一下连接方式的特点然后说明连接方式第一种&#xff1a;有线连接 手柄直接通过micro USB数据线和win10电脑连接。这一步最简单&#xff0c;一般电脑会自动安装驱动&#xff0c;连接之后可以使…

单片机复位后为什么要对sp重新赋值_51单片机系列之2点亮第一个led小灯

点亮led灯简单的理解就是要求阳极高电平阴极低电平。接下来我们去看看单片机的原理图&#xff0c;找到led 模块。如图可以看到led的阳极是连接的VCC(电源高电平)阴极连接的接口是单片机的I/O口P20到P27.要想led点亮只需控制单片机I/O口输出低电平即可(单片机I/O口默认高电平)。…

关机时无人照管更新正在运行_无法抗拒的未来:无人叉车在内部物流中已成为现实...

自动化和半自动化的叉车不再是新奇的东西&#xff0c;在人力短缺的仓库中取得了进展。他们最终会成为规范吗?目前尚不知道全世界有多少辆无人驾驶叉车(也称为自动叉车、机器人叉车或者AGV)售出。但是叉车生产商都显示出&#xff0c;它在该领域的迅速增长。重要的是&#xff0c…