当前位置: 首页 > news >正文

怎么做北京赛网站安徽六安发现一例新冠阳性检测者

怎么做北京赛网站,安徽六安发现一例新冠阳性检测者,wordpress自动跳转,申请中网可信网站目录 1、接口新特性1.1 JDK8的新特性1.2 JDK9的新特性 2、代码块2.1 代码块的定义2.2 代码块的分类 3、内部类3.1 内部类的定义3.2 内部类成员访问3.3 学习内部类的原因3.4 内部类的分类3.4.1 成员内部类3.4.2 静态内部类3.4.3 局部内部类3.4.4 匿名内部类#xff08;1#x… 目录 1、接口新特性1.1 JDK8的新特性1.2 JDK9的新特性 2、代码块2.1 代码块的定义2.2 代码块的分类 3、内部类3.1 内部类的定义3.2 内部类成员访问3.3 学习内部类的原因3.4 内部类的分类3.4.1 成员内部类3.4.2 静态内部类3.4.3 局部内部类3.4.4 匿名内部类1定义2使用场景 4、Lambda表达式4.1 概述4.2 案例4.3 注意事项4.4 Lambda表达式的省略写法4.5 Lambda表达式和匿名内部类的区别 5、窗体、组件、事件5.1 窗体5.2 组件5.2.1 按钮组件Jbutton5.2.2 文本组件Jlabel 5.3 事件5.4 适配器设计模式5.5 模板设计模式 1、接口新特性 1.1 JDK8的新特性 之前说过接口里面只能是抽象方法但是JDK8为何要修改成允许定义带方法体的方法呢原因是什么呢 答如果系统要升级版本2那么在接口中再新加抽象方法时会导致以前的接口实现对象报错因此JDK8改成接口中可以定义有方法体的方法就是为了解决丰富接口功能的同时又不需要更改实现类的代码。如下图 下面再看下JDK8是怎么做的 1.2 JDK9的新特性 为什么JDK9允许定义私有方法呢 答 下面看看JDK9是如何做的 2、代码块 2.1 代码块的定义 2.2 代码块的分类 package com.itheima.vo;public class Student {//随着类的加载而加载多用于数据初始化static {System.out.println(Student类的静态代码块...);}//编译时会分散到每个构造方法的第一行{System.out.println(Student类的构造代码块...);}public Student(){//现在电脑内存都很大了所以一般不会使用局部代码块提前释放内存{System.out.println(局部代码块...);}System.out.println(Student类的构造方法...);} }注同步代码块多线程会使用到这个放多线程介绍。 3、内部类 3.1 内部类的定义 下面是一个例子 package com.itheima.inner;public class InnerTest {public static void main(String[] args) {Outer.Inner in new Outer().new Inner();//创建内部类对象in.show();//调用内部类方法} }class Outer{class Inner{int num 11;public void show(){System.out.println(show...);}} }3.2 内部类成员访问 看下面这三个变量第一个是外部类成员变量、第二个是内部类成员变量、第三个是方法里的变量现在的问题是如何分别访问他们三个 答看代码 class Outer{int num 11;//外部类成员变量class Inner{int num 22;//内部类成员变量public void show(){int num 33;//方法里的变量System.out.println(num); //33System.out.println(this.num); //22System.out.println(Outer.this.num); //11}} }注 1、方法里的变量直接访问即就近原则 2、内部类成员变量使用this关键字 3、外部类成员变量使用外部类名称.this访问。 3.3 学习内部类的原因 3.4 内部类的分类 3.4.1 成员内部类 如下所示的Inner就是成员内部类 class Outer{class Inner{int num 11;public void show(){System.out.println(show...);}} }3.4.2 静态内部类 注其实可以发现静态内部类与成员内部类主要的区别是创建对象不同。记住一点只要是静态的都是使用类名来调用理解了这一点不用刻意记也能知道静态内部类是怎么创建的。 3.4.3 局部内部类 局部内部类是指放在方法、代码块、构造器等执行体中的类。 下面是一个例子 class A{public void show(){//B是一个局部内部类class B{int num;}} }局部内部类只有在调用此代码块时才会调用到因此鸡肋使用较少。 3.4.4 匿名内部类 1定义 注 new 类名(){}代表继承这个类new 接口名(){}代表实现这个类 2使用场景 如果发现在调用一个方法时此方法的参数是一个接口类型那么有两种办法解决 1、定义一个此接口的实现类并重写此方法然后new这个实现类最后调用这个方法 2、使用匿名内部类即new 接口名(){}。 看下面的例子 可以发现第二种方法很简洁因此这就是匿名内部类的使用场景。 对于上述的两种方法要如何选择呢 答如果一个接口的抽象方法很少则推荐使用匿名内部类反之使用定义接口实现类的这种方法比较简洁。 4、Lambda表达式 4.1 概述 4.2 案例 public class InnerTest {public static void main(String[] args) {//这是匿名内部类useInnerA(new InnerA() {Overridepublic void show() {System.out.println(我是匿名内部类...);}});//使用Lambda表达式简化匿名内部类useInnerA(()-{System.out.println(我是使用Lambda表达式的匿名内部类...);});}//这是一个形参类型为接口的方法public static void useInnerA(InnerA a){a.show();} }interface InnerA{void show(); }4.3 注意事项 总结Lambda表达式只能简化只有一个抽象方法的匿名内部类。 4.4 Lambda表达式的省略写法 下面我们一条一来看 参数类型可以省略不写 //使用Lambda表达式参数类型可以省略 useInnerA((a, b) - {System.out.println(我是使用Lambda表达式的匿名内部类...);});只有一个参数则参数类型可以省略不写同时()也可以省略 //使用Lambda表达式只有一个参数则参数类型可以省略不写同时()也可以省略 useInnerA(a - {System.out.println(只有一个参数则参数类型可以省略不写同时()也可以省略...);});Lambda表达式的方法体只有一行代码大括号和分号都可省略同时如果是return则必须省略。 //Lambda表达式的方法体只有一行代码大括号和分号都可省略同时如果是return则必须省略。 //返回值为字符串类型只需要写字符串即可需要省略return语句。 useInnerA(a- 我是使用Lambda表达式的匿名内部类...);4.5 Lambda表达式和匿名内部类的区别 5、窗体、组件、事件 5.1 窗体 import javax.swing.*;public class JFrameTest {public static void main(String[] args) {//创建窗体对象JFrame jf new JFrame();//设置窗体大小jf.setSize(511, 511);//修改窗体的关闭模式jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗体标题jf.setTitle(大哥的第一个窗口);//设置窗体可见jf.setVisible(true);} }5.2 组件 5.2.1 按钮组件Jbutton 看下面代码 package com.itheima.frame;import javax.swing.*;public class JFrameTest {public static void main(String[] args) {//1、窗体对象//创建窗体对象JFrame jf new JFrame();//设置窗体大小jf.setSize(511, 511);//修改窗体的关闭模式jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗体标题jf.setTitle(我是标题);//取消窗体的默认布局jf.setLayout(null);//2、按钮对象//2.1 创建按钮对象JButton jb new JButton(确定);jb.setBounds(51,51,111,111);//2.2 将按钮对象添加到面板对象当中jf.getContentPane().add(jb);//设置窗体可见jf.setVisible(true);} }5.2.2 文本组件Jlabel 5.3 事件 动作监听 package com.itheima.action;import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.awt.event.KeyListener;public class ActionTest {public static void main(String[] args) {//1、窗体对象//创建窗体对象JFrame jf new JFrame();//设置窗体大小jf.setSize(511, 511);//修改窗体的关闭模式jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗体标题jf.setTitle(我是标题);//取消窗体的默认布局jf.setLayout(null);//2、按钮对象//2.1 创建按钮对象JButton jb new JButton(确定);jb.setBounds(51,51,111,111);//2.2 将按钮对象添加到面板对象当中jf.getContentPane().add(jb);//3、事件监听jb.addActionListener(new AbstractAction() {Overridepublic void actionPerformed(ActionEvent e) {System.out.println(我被点击了);}});//设置窗体可见jf.setVisible(true);} }键盘事件 package com.itheima.action;import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.awt.event.KeyListener;public class KeyActionTest {public static void main(String[] args) {//1、窗体对象//创建窗体对象JFrame jf new JFrame();//设置窗体大小jf.setSize(511, 511);//修改窗体的关闭模式jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗体标题jf.setTitle(我是标题);//取消窗体的默认布局jf.setLayout(null);//键盘事件jf.addKeyListener(new KeyListener() {Overridepublic void keyTyped(KeyEvent e) {}Overridepublic void keyPressed(KeyEvent e) {//键盘按下时触发事件int keyCode e.getKeyCode();if (keyCode 37){System.out.println(左移动业务...);} else if (keyCode 38) {System.out.println(上移动业务...);} else if (keyCode 39) {System.out.println(右移动业务...);} else if (keyCode 40) {System.out.println(下移动业务...);}}Overridepublic void keyReleased(KeyEvent e) {//键盘松开时触发事件 // System.out.println(键盘松开了...);}});//设置窗体可见jf.setVisible(true);} }5.4 适配器设计模式 上述对适配器设计模式的描述可能不够清晰下面再用大白话解释一下 当我们写了一个接口后我们会将这个接口进行实现。在进行一个实现时我们发现无论怎么样这个实现类是一定要重写接口里的所有方法的那有什么方法只重写想要的方法呢这个就是适配器要解决的问题。 解决思路 先编写一个适配器抽象方法让适配器来实现这个接口然后我们要写的实现类只需要继承适配器就可以了这样我们需要实现哪个方法就重写哪个即可。 如下所示: 解决步骤 5.5 模板设计模式 上面的陈述可能还不是太清晰下面再通俗的解释一下 模板设计模式其实就是先写一个抽象类然后在抽象类里写一个模板方法依次调用业务逻辑代码但是发现有些业务逻辑代码并不通用于是把这些不通用的代码抽为一个或者几个方法然后将这几个方法定义为抽象方法让子类去实现这样子类就会有各自的业务逻辑这个就是模板设计模式。 下面看一段代码 package com.itheima.design.template;public abstract class CompositionTemplate {/*** write方法是模板但是里面的body是随着每个实现类的不同而不同因此需要定义为抽象方法*/public void write(){System.out.println(我的爸爸);body();System.out.println(啊~ 这就是我的爸爸~);}abstract void body(); }public class Tom extends CompositionTemplate{Overridevoid body() {System.out.println(我的爸爸是一个很严肃的人每天工作很长时间。。。);} }public class Test {public static void main(String[] args) {Tom t new Tom();t.write();} }输出我的爸爸 我的爸爸是一个很严肃的人每天工作很长时间。。。 啊~ 这就是我的爸爸~Process finished with exit code 0注意上述代码中要是子类重写了write方法那岂不是不遵循当初定义的模板了为了防止重写write方法可以把write方法定义为最终的即前面加关键字final如下所示 public abstract class CompositionTemplate {/*** write方法是模板但是里面的body是随着每个实现类的不同而不同因此需要定义为抽象方法*/public final void write(){//定义为最终的防止重写System.out.println(我的爸爸);body();System.out.println(啊~ 这就是我的爸爸~);}abstract void body(); }但其实业务代码中一般不会这么写死因为万一你写的模板确实不适合人家的业务需求呢那岂不是坏大事了。
http://www.tj-hxxt.cn/news/228147.html

相关文章:

  • 天津都有哪些制作网站网站建设完整步骤
  • 网站建设对用户影响青海省建筑信息平台
  • mooc网站建设食品网站建设实施方案
  • 做网站报价出名的域名到期换个公司做网站
  • 建设局网站安徽虚拟主机怎么发布网站
  • 网站如何做导航条下拉菜单杭州手机网站建设公司 网络服务
  • 网站标题优化可以含几个关键词Wordpress翻译自定义链接
  • 把网站做成静态页面舆情分析系统
  • 网站建设工作室 需要营业执照吗免费企业logo设计
  • 建设局网站查询郑州网站服务公司
  • 教程seo推广排名网站定位网站关键词
  • 做一个微信小程序需要多少钱嘉兴做网站优化哪家好
  • 门户型网站建设方案汕头名域设计
  • 网站宣传专利被罚建筑人才网河南省2022年3月安全员
  • 做门户网站需要什么条件网站建设政务新媒体
  • 各大网站开发的区块链有没有安全一点的网站
  • 电影网站建设模板比特币交易所网站开发
  • 百度爱采购网站官网网站建设设计logo
  • 青岛即墨网站建设设计静态网页怎么放到网上
  • 微信浏览为网站的缓存怎么清理东莞常平天气
  • 济南做网站优化的公司郑州一建
  • 嘉兴网站定制公司免费做橙光封面的网站
  • 江苏大丰做网站网站排名如何做
  • 照明做外贸的有那些网站网站开发技术方案模板
  • 国外建筑公司网站wordpress做阿里巴巴国际站
  • 深圳品牌网站设计专家东莞找工作一般在哪里找
  • 永久免费建站程序潮州建设局网站
  • 建筑网站免费南通市网站建设我的完
  • 海南网站运营托管咨询团购小程序
  • 网站建设好怎么发布平台做网站点击