zoukankan      html  css  js  c++  java
  • 内部类代码

     1 package com.yj.fenghao.indoor;
     2 
     3 import java.awt.Toolkit;
     4 import java.awt.event.ActionEvent;
     5 import java.awt.event.ActionListener;
     6 import java.util.Date;
     7 
     8 import javax.swing.Timer;
     9 
    10 /**内部类
    11  * 内部类可以是私有类  ---内部类既可以访问自身的数据域,也可以访问构造他的外围类对象的数据域
    12  * 编译器修改类内部类的构造器,添加了对外部类的引用
    13  * <P>Description: TODO</P>
    14  * @ClassName: TimerClock
    15  * @author 冯浩  2017年4月5日 下午1:19:08
    16  * @see TODO
    17  */
    18 
    19 public class TimerClock {
    20     
    21     private int intervel;
    22     private boolean beep;
    23     public TimerClock(int intervel, boolean beep) {
    24         super();
    25         this.intervel = intervel;
    26         this.beep = beep;
    27     }
    28     
    29     public class TimerPrinter implements ActionListener{
    30 
    31 //        private TimerClock out;
    32 //        public TimerPrinter(TimerClock out){
    33 //            this.out=out;
    34 //        }
    35         
    36         public void actionPerformed(ActionEvent e) {
    37             Date date=new Date();
    38             System.out.println("at the now ,this is "+date);
    39             if(beep){
    40                 Toolkit.getDefaultToolkit().beep();
    41             }
    42 //            if(out.beep){
    43 //                Toolkit.getDefaultToolkit().beep();
    44 //            }
    45         }
    46         
    47     }
    48     
    49     public void start(){
    50 //        ActionListener listener=new TimerPrinter(this);
    51         ActionListener listener=new TimerPrinter();
    52         Timer t=new Timer(intervel,listener);
    53         t.start();
    54         
    55     }
    56 
    57 }
     1 package com.yj.fenghao.indoor;
     2 
     3 import java.awt.Toolkit;
     4 import java.awt.event.ActionEvent;
     5 import java.awt.event.ActionListener;
     6 import java.util.Date;
     7 
     8 import javax.swing.Timer;
     9 
    10 import com.yj.fenghao.indoor.TimerClock.TimerPrinter;
    11 
    12 /**
    13  * 局部内部类---作用域被限定在定义这个类的块中-----不仅能够访问包含他们的外部类,还能访问局部变量(必须定义成final)
    14  * <P>Description: TODO</P>
    15  * @ClassName: TimerClock2
    16  * @author 冯浩  2017年4月6日 上午8:36:02
    17  * @see TODO
    18  */
    19 public class TimerClock2 {
    20     
    21     private int intervel;
    22     private boolean beep;
    23     public TimerClock2(int intervel, boolean beep) {
    24         super();
    25         this.intervel = intervel;
    26         this.beep = beep;
    27     }
    28     
    29       public void start(){
    30             class TimerPrinter implements ActionListener{
    31                 public void actionPerformed(ActionEvent e) {
    32                     Date date=new Date();
    33                     System.out.println("at the now ,this is "+date);
    34                     if(beep){
    35                         Toolkit.getDefaultToolkit().beep();
    36                     }
    37                     
    38                 }
    39                 
    40             }
    41             ActionListener listener=new TimerPrinter();
    42             Timer t=new Timer(intervel,listener);
    43             t.start();
    44             
    45         }
    46 
    47 }
     1 package com.yj.fenghao.indoor;
     2 
     3 import java.awt.Toolkit;
     4 import java.awt.event.ActionEvent;
     5 import java.awt.event.ActionListener;
     6 import java.util.ArrayList;
     7 import java.util.Date;
     8 import java.util.List;
     9 
    10 import javax.swing.Timer;
    11 
    12 import com.yj.fenghao.indoor.TimerClock.TimerPrinter;
    13 
    14 /**
    15  * 匿名内部类---不能有构造器,将构造器参数传递给超类
    16  * <P>Description: TODO</P>
    17  * @ClassName: TimerClock2
    18  * @author 冯浩  2017年4月6日 上午8:36:02
    19  * @see TODO
    20  */
    21 public class TimerClock3 {
    22     
    23     private int intervel;
    24     private boolean beep;
    25     public TimerClock3(int intervel, boolean beep) {
    26         super();
    27         this.intervel = intervel;
    28         this.beep = beep;
    29     }
    30     
    31       public void start(){
    32            
    33             ActionListener listener=new ActionListener(){
    34 
    35                 public void actionPerformed(ActionEvent e) {
    36                     Date date=new Date();
    37                     System.out.println("at the now ,this is "+date);
    38                     if(beep){
    39                         Toolkit.getDefaultToolkit().beep();
    40                     }
    41                 }
    42                 
    43             };
    44             Timer t=new Timer(intervel,listener);
    45             t.start();
    46             
    47         }
    48       
    49       public void t(){
    50           this.test(new ArrayList(){{add("111");add("22222");}});
    51       }
    52       public void test(List<String> list){
    53           
    54       }
    55 
    56 }
     1 package com.yj.fenghao.indoor;
     2 
     3 
     4 /**
     5  * 静态内部类-没有对生成他的外围类的引用
     6  * <P>Description: TODO</P>
     7  * @ClassName: StaticInnerClass
     8  * @author 冯浩  2017年4月6日 上午9:09:31
     9  * @see TODO
    10  */
    11 public class StaticInnerClass {
    12     
    13     public static void main(String[] args) {
    14         double[] d=new double[20];
    15         for (int  i= 0; i < d.length; i++) {
    16             d[i]=Math.random()*100;
    17         }
    18         ArrayAlg.Pair minMax = ArrayAlg.Pair.minMax(d);
    19         System.out.println(minMax.getFirst());
    20         System.out.println(minMax.getSecond());
    21     }
    22     
    23     
    24     
    25 
    26 }
    27 class ArrayAlg{
    28     public static class Pair{
    29         private double first;
    30         private double second;
    31         public Pair(double first, double second) {
    32             super();
    33             this.first = first;
    34             this.second = second;
    35         }
    36         public double getFirst() {
    37             return first;
    38         }
    39         public double getSecond() {
    40             return second;
    41         }
    42         
    43         public static Pair minMax(double[] values){
    44             double maxValue = Double.MAX_VALUE;
    45             double minValue = Double.MIN_VALUE;
    46             for (double d : values) {
    47                 if(d>maxValue)maxValue=d;
    48                 if(d<minValue)minValue=d;
    49             }
    50             return new Pair(maxValue,minValue);
    51         }
    52         
    53         
    54     }
    55 }

    内部类的简单代码,需要的时候看一下

    关于这个定时器的完整功能代码,挺好玩的

     1 package com.yj.fenghao.indoor;
     2 
     3 import java.awt.Toolkit;
     4 import java.awt.event.ActionEvent;
     5 import java.awt.event.ActionListener;
     6 import java.util.Date;
     7 
     8 import javax.swing.*;
     9 import javax.swing.Timer;
    10 
    11 
    12 public class TimerTest {
    13     public static void main(String[] args) {
    14         
    15         ActionListener listener=new TimerPrinter();
    16         Timer t=new Timer(1000,listener);
    17         t.start();
    18         JOptionPane.showMessageDialog(null, "are you ok !");
    19         System.exit(0);
    20     }
    21     
    22     
    23 
    24 }
    25 class TimerPrinter implements ActionListener{
    26 
    27     public void actionPerformed(ActionEvent e) {
    28         Date date=new Date();
    29         System.out.println("at the tone ,this time is +"+date);
    30         Toolkit.getDefaultToolkit().beep();
    31         
    32     }
    33     
    34 }
  • 相关阅读:
    NOIP2011 D1T1 铺地毯
    NOIP2013 D1T3 货车运输 倍增LCA OR 并查集按秩合并
    POJ 2513 trie树+并查集判断无向图的欧拉路
    599. Minimum Index Sum of Two Lists
    594. Longest Harmonious Subsequence
    575. Distribute Candies
    554. Brick Wall
    535. Encode and Decode TinyURL(rand and srand)
    525. Contiguous Array
    500. Keyboard Row
  • 原文地址:https://www.cnblogs.com/nihaofenghao/p/6671919.html
Copyright © 2011-2022 走看看