zhlx2835
zhlx2835
采纳率0%
2015-02-27 12:52 阅读 2.6k

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

(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条回答 默认 最新

  • caozhy 从今以后生命中的每一秒都属于我爱的人 2015-02-27 13:24

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

    点赞 2 评论 复制链接分享
  • Evankaka Evankaka 2015-02-27 13:45

    楼上说的是对的,还有其实内部类的设计也是为了弥补JAVA里头多继承的不足,还有就是代码代码写起来能更加简洁(比如匿名内部类。。)

    点赞 1 评论 复制链接分享
  • lhliuhui588 lhliuhui588 2015-02-27 14:02

    1.内部类可以很好的实现隐藏

    一般的非内部类,是不允许有 private 与protected权限的,但内部类可以

    2.内部类拥有外围类的所有元素的访问权限

    3.可是实现多重继承

    4.可以避免修改接口而实现同一个类中两种同名方法的调用。

    点赞 评论 复制链接分享
  • yahohi wangicter 2015-02-27 17:29

    在一个类中定义的类称为嵌套类,定义嵌套类的类称为外围类。
      对嵌套类的若干说明:

      1、从作用域的角度看,嵌套类被隐藏在外围类之中,该类名只能在外围类中使用。如果在外围类的作用域内使用该类名时,需要加名字限定。

      2、从访问权限的角度来看,嵌套类名与它的外围类的对象成员名具有相同的访问权限规则。不能访问嵌套类的对象中的私有成员函数,也不能对外围类的私有部分中的嵌套类建立对象。

      3、嵌套类中的成员函数可以在它的类体外定义。

      4、嵌套类中说明的成员不是外围类中对象的成员,反之亦然。嵌套类的成员函数对外围类的成员没有访问权,反之亦然。国此,在分析嵌套类与外围类的成员访问关系时,往往把嵌套类看作非嵌套类来处理。

    点赞 评论 复制链接分享

相关推荐