1.局部内部类例子
实现:控制台输出:现在开始销售苹果
单价为:100元
详细代码:package com.lixiyu;
public class SellOutClass {
private String name;//私有成员变量
public SellOutClass(){
name="苹果";
}
public void sell(int price){
class Apple{//局部内部类
int innerPrice=0;
public Apple(int price){
innerPrice=price;
}
public void price(){
System.out.println("现在开始销售"+name);
System.out.println("单价为:"+innerPrice+"元");
}
}
Apple apple=new Apple(price);//实例化Apple类的对象
apple.price();//调用局部内部类的方法
}
public static void main(String[] args){
SellOutClass sample=new SellOutClass(); //实例化SellOutClass类的对象
sample.sell(100);//调用selloutclass类的sell方法
}
}
————————
2.简单闹钟应用
实现:控制台不断输出当前时间,并每隔一秒会发出提示音。用户可以单击“确定”退出程序
效果图:
详细代码:
主程序部分:package com.lixiyu;
import javax.swing.JOptionPane;
public class PartArea {
public static void main(String[] args){
AlarmClock clock=new AlarmClock(1000,true);
clock.start();
JOptionPane.showMessageDialog(null,"是否退出?");
System.exit(0);
}
}
实现AlarmClock部分,运用到局部内部类方法package com.lixiyu;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.Timer;
public class AlarmClock {
private int delay;
private boolean flag;
public AlarmClock(int delay,boolean flag){//局部内部类
this.delay=delay;
this.flag=flag;
}
public void start() {
// TODO Auto-generated method stub
class Printer implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
SimpleDateFormat format = new SimpleDateFormat("k:m:s");
String result = format.format(new Date());
System.out.println("当前的时间是:" + result);
if (flag) {
Toolkit.getDefaultToolkit().beep();
}
}
}
new Timer(delay, new Printer()).start();
}
}