zhlx2835 2015-02-27 12:52 采纳率: 33.3%
浏览 2860
已采纳

为什么要使用内部类,好处是什么

(1):有一个计算器类,具有运算功能,能对两个整数进行相加运算
(2):有一个闹钟类,具有闹铃功能,能发出懒猪起床的声音
(3):有一个手机类,需要同时拥有运算功能和闹铃功能,通过内部类实现多继承
(4):创建测试类,测试继承的两个功能
package com.bwie.innerClassDemo;

class Alarm {
public void ring() {
System.out.println("懒猪起床");
}
}

class Computer {
public void count(int a, int b) {
System.out.println("a+b=" + (a + b));
}
}
class Phone{
private myAlarm ma=new myAlarm();
private MyComputer mc=new MyComputer();
private class myAlarm extends Alarm{
public void ring() {
System.out.println("Iphone手机呼唤懒猪起床");
}
}
private class MyComputer extends Computer{

}
public void ring(){
    ma.ring();
}
public void count(int a,int b){
    mc.count(a, b);
}

}
public class TestPhone{
public static void main(String[] args) {
Phone p=new Phone();
p.ring();
p.count(12, 3);
}
}

没感觉出这段代码有什么好处,倒是觉得很繁琐,麻烦?还是不明白老师为啥这么写?

  • 写回答

4条回答

  • threenewbee 2015-02-27 13:24
    关注

    内部类有几个好处,一个是更清晰的层次关系,如果一个类型依附于另一个类型,那么内部类很好体现了这种层次关系。
    一个是内部类相当于友元类,可以定义对于外部来说私有,又可以被内部类访问的成员和函数。
    当然,你的代码仅仅是用于学习目的的,为写而写的,本身就没有意义,换言之,不用内部类,它也没用,当然你觉得它没有好处。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已采纳回答 7月17日

悬赏问题

  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 opencv 无法读取视频