首页 > 编程语言 >java 内部类

java 内部类

时间:2022-09-29 07:44:19浏览次数:59  
标签:部类 java 内部 TalkingClock interval beep public

一、内部类的说明

1、在类的内部再构建一个类,则类内部构建的这个累即为内部类

2、内部类可以访问外部类的private属性和方法

class TalkingClock {
    private int interval;
    private boolean beep;

    public TalkingClock(int interval, boolean beep) {
        this.interval = interval;
        this.beep = beep;
    }

    public void start() {
        TimePrimter listener = new TimePrimter();
        Timer timer = new Timer(interval, listener);
        timer.start();
    }

    public class TimePrimter implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent actionEvent) {
            System.out.println("At the tone, time is " + Instant.ofEpochMilli(actionEvent.getWhen()));
            if (beep) Toolkit.getDefaultToolkit();
        }
    }
}
View Code

如上的if (beep) Toolkit.getDefaultToolkit(); 这里的beep就属于外部类TalkingClock的属性

3、有时候我们可能会遇到临时变量跟外部类的变量冲突的时候我们要显示的指明是外部类的参数,那么应该指明:TalkingClock.this.beep  类似这种的方式:OutClass.this.outparam

上述的例子如果要显示指明beep属于外部类:if (TalkingClock.this.beep) Toolkit.getDefaultToolkit();

4、内部类不能有静态的方法,但是可以有静态的属性并且该属性必须为final;否则编译不通过

标签:部类,java,内部,TalkingClock,interval,beep,public
From: https://www.cnblogs.com/czwlinux/p/16740150.html

相关文章

  • JavaScript——基础语法
    书写语法  输出语句  变量  数据类型  运算符      ==与===区别:      ==:        1、判断类型是否一样,如果不一样,则进行类型转......
  • Java 基础
    JDKJREJVMHelloworldpublicclassHello{publicstaticvoidmain(String[]args){System.out.println("helloworld");}}注释/***文档......
  • tomcat7 内存溢出 java.lang.OutOfMemoryError 处理方法
    找到tomcat的安装目录,在 tomcat安装目录/bin/catalina.sh最上面添加:JAVA_OPTS="-server-Xms800m-Xmx800m-XX:PermSize=128M-XX:MaxPermSize=512m"重启tomcat7......
  • Exception in thread "main" java.util.NoSuchElementException
    Exceptioninthread"main"java.util.NoSuchElementException用了两个scanner的时候,执行程序发生报错:Exceptioninthread"main"java.util.NoSuchElementExceptionat......
  • Java: Memento Pattern
     /***版权所有2022涂聚文有限公司*许可信息查看:*描述:*备忘录模式MementoPattern/SnapshotPattern/TokenPattern*历史版本:JDK14.02*2022-09-1......
  • Java基础 值传递和引用传递
    Java基础值传递和引用传递1.问题描述由于Java中是没有指针的,Java中只存在值传递,只存在值传递!!!!‘在实际使用中,我们经常使用对象的传递,这种看起来很像引用传递,可以改变对......
  • 【笔记】Java相关大杂烩②
    【笔记】Java相关大杂烩②if单分支情况下,如果没有加{},那么默认只包含第一条语句。if和else分支后面如果包含多条语句,那么需要使用{}括起来。不能随意地使用数学上......
  • Java第二讲动手动脑
    1.运行结果  上述代码方法名相同,但是数据类型不同,体现了Java重载的特点(1)方法名相同(2)参数类型不同,参数个数不同,或者是参数类型的顺序不同。也体现了Java中,当函数名......
  • java资源精华
    1. java基础教程虚拟机性能分析和故障解决工具_哔哩哔哩_bilibili2.https://www.bilibili.com/video/BV1Eb4y1v7mB/?p=2&vd_source=3d22ebd70535ac1bb918868055a3c5d8......
  • java笔记
    **命名规范:**首字母大写,后面每个单词首字母大写(大驼峰)HelloWrold变量名规范:首字母小写,后面每个单词首字母大写(小驼峰)helloWorld方法变量名规范:同变量名 常量:在程序运......