sum+=data[i];
}
returnsum/data.length;
}
}
}
publicclassInnerClassTest{
publicstaticvoidmain(String[]args){
inta[]={6,8,9,22,34,7,2,1,15};
OuterouterObj=newOuter(a);
outerObj.checkInner();
【补充代码outerObj.checkLocal();】//调用outerObj对象的checkLocal方法
}
}
6.通过一个简单的例子理解多态的概念
/**
*人民警察
*/
publicinterfaceIPolice{
/**
*抓小偷
*/
publicvoidcatchThief();
}
/**
*一个警察,执行抓小偷任务.
*/
publicclassPoliceRealimplementsIPolice{
publicvoidcatchThief(){
System.out.println("抓住小偷了");
}
}
/**
*另一个警察,也执行抓小偷任务.
*/
publicclassPoliceHypimplementsIPolice{
publicvoidcatchThief(){
System.out.println("大冷天的抓什么小偷啊,不如偷个菜.");
}
}
/**
*市民
*/
publicclassCitizen{
privateStringmName;
publicCitizen(Stringname){
mName=name;
}
/**
*市民报案
*/
publicvoidreport(IPolicepolice){
System.out.println(String.format("市民%s丢失手机,向警察报案抓小偷.",mName));
police.catchThief();
}
}
案情:
市民虽然向警察报了案,
但你不知道能不能把小偷抓住,
甚至你都不知道他们有没有去抓小偷,
还有可能你在电影里看到的剧情真的发生了...
事情经过可能是这样:
publicclassMain{
publicstaticvoidmain(String[]args){
Citizencitizen=newCitizen("张三");
IPolicepolice=getPolice();
citizen.report(police);
}
privatestaticIPolicegetPolice(){
returnnewPoliceReal();
}
}
事情结果一:
市民张三丢失手机,向警察报案抓小偷.
抓住小偷了
事情经过也可能是这样:
publicclassMain{
publicstaticvoidmain(String[]args){
Citizencitizen=newCitizen("张三");
IPolicepolice=getPolice();
citizen.report(police);
}
privatestaticIPolicegetPolice(){
returnnewPoliceHyp();
}
}
事情结果二:
市民张三丢失手机,向警察报案抓小偷.
大冷天的抓什么小偷啊,不如偷个菜.
事情经过还可能是这样:
publicclassMain{
publicstaticvoidmain(String[]args){
Citizencitizen=newCitizen("张三");
IPolicepolice=getPolice();
citizen.report(police);
}
privatestaticIPolicegetPolice(){
returnnewPoliceReal(){
@Override
publicvoidcatchThief(){
System.out.println("抓小偷?
笑话,抓了小偷我哪儿收保护费去啊.");
}
};
}
}
事情结果三:
市民张三丢失手机,向警察报案抓小偷.
抓小偷?
笑话,抓了小偷我哪儿收保护费去啊.
7.阅读并分析以下程序,将程序中的代码补充完整。
publicclassCalendarFrameextendsFrameimplementsActionListener
{LabellabelDay[]=newLabel[42];
ButtontitleName[]=newButton[7];
Stringname[]={"日","一","二","三","四","五","六"};
ButtonnextMonth,previousMonth;
intyear=2006,month=10;
CalendarBeancalendar;
LabelshowMessage=newLabel("",Label.CENTER);
publicCalendarFrame()
{PanelpCenter=newPanel();
【代码1:
pCenter.setLayout(newGridLayout(7,7));】//将pCenter的布局设置为7行7列的GridLayout布局。
for(inti=0;i<7;i++)
{titleName[i]=newButton(name[i]);
【代码2:
pCenter.add(titleName[i]);】//pCenter添加组件titleName[i]。
}
for(inti=0;i<42;i++)
{
labelDay[i]=newLabel("",Label.CENTER);
【代码3:
pCenter.add(labelDay[i]);】//pCenter添加组件labelDay[i]。
}
calendar=newCalendarBean();
calendar.setYear(year);
calendar.setMonth(month);
Stringday[]=calendar.getCalendar();
for(inti=0;i<42;i++)
{labelDay[i].setText(day[i]);
}
nextMonth=newButton("下月");
previousMonth=newButton("上月");
nextMonth.addActionListener(this);
previousMonth.addActionListener(this);
PanelpNorth=newPanel(),
pSouth=newPanel();
pNorth.add(previousMonth);
pNorth.add(nextMonth);
pSouth.add(showMessage);
showMessage.setText("日历:
"+calendar.getYear()+"年"+calendar.getMonth()+"月");
ScrollPanescrollPane=newScrollPane();
scrollPane.add(pCenter);
【代码4:
add(“Center”,scollPane);】//窗口添加scrollPane在中心区域
【代码5:
add(“North”,pNorth);】//窗口添加pNorth在北面区域
【代码6:
add(“South”,pSouth);】//窗口添加pSouth在南区域。
}
publicvoidactionPerformed(ActionEvente)
{if(e.getSource()==nextMonth)
{month=month+1;
if(month>12)
month=1;
calendar.setMonth(month);
Stringday[]=calendar.getCalendar();
for(inti=0;i<42;i++)
{labelDay[i].setText(day[i]);
}
}
elseif(e.getSource()==previousMonth)
{month=month-1;
if(month<1)
month=12;
calendar.setMonth(month);
Stringday[]=calendar.getCalendar();
for(inti=0;i<42;i++)
{labelDay[i].setText(day[i]);
}
}
showMessage.setText("日历:
"+calendar.getYear()+"年"+calendar.getMonth()+"月");
}
}
8.使用滚动条改变背景颜色
程序功能:
移动滚动条可以改变背景颜色。
阅读并分析以下程序,将程序中的代码补充完整。
publicclassKY7_2extendsAppletimplementsAdjustmentListener{
Scrollbarr1,r2,r3;
intred,green,blue;
TextFieldt;
Labela;
publicvoidinit(){
setLayout(null);
r1=newScrollbar(Scrollbar.HORIZONTAL,0,1,0,255);
r2=newScrollbar(Scrollbar.HORIZONTAL,0,1,0,255);
r3=newScrollbar(Scrollbar.HORIZONTAL,0,1,0,255);
t=newTextField("0",5);
t.setEditable(false);
a=newLabel("移动滚动条可改变背景颜色",Label.CENTER);
add(a);
a.setBounds(120,10,150,15);
代码1:
add(r1);//添加滚动条r1
r1.setBounds(20,30,100,20);
代码2:
add(r2);//添加滚动条r2
r2.setBounds(140,30,100,20);
代码3:
add(r3);//添加滚动条r3
r3.setBounds(260,30,100,20);
add(t);
t.setBounds(20,120,220,18);
r1.addAdjustmentListener(this);
代码4:
r2.addAdjustmentListener(this);
代码5:
r3.addAdjustmentListener(this);
}
publicvoidadjustmentValueChanged(AdjustmentEvente){
red=r1.getValue();
代码6:
green=r2.getValue();
代码7:
blue=r3.getValue();
t.setText("red的值"+String.valueOf(r1.getValue())+",green的值"+String.valueOf(r