A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© a80C51 中级黑马   /  2015-9-11 22:46  /  551 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本程序是紧扣之前关于内部类总结的帖子,所总结的一套代码。可参见相关注释,理解相关概念

帖子传送门

代码如下:
  1. class Cow
  2. {
  3.         //Cow类的实例变量
  4.         private double height;//奶牛的高度
  5.        
  6.         public Cow(){}
  7.        
  8.         public Cow(double height)
  9.         {
  10.                 this.height = height;
  11.         }
  12.        
  13.         //非静态内部类
  14.         private class CowLeg
  15.         {
  16.                 //非静态内部类的两个实例变量
  17.                 private double height;//奶牛的腿长
  18.                 private String color;//奶牛腿的颜色
  19.                
  20.                
  21.                 //非静态内部类的两个重载的构造器
  22.                 public CowLeg(){}
  23.                 public CowLeg(double height,String color)
  24.                 {
  25.                         this.height = height;
  26.                         this.color = color;
  27.                 }
  28.                
  29.                 //非静态内部类的实例方法
  30.                 public void info()
  31.                 {
  32.                         //直接访问外部类的private修饰的成员变量
  33.                         //内部类的height和外部类的height同名;
  34.                         //所以需要通过外部类.this来限定
  35.                         System.out.println("当前奶牛的腿长:"+ this.height);
  36.                         System.out.println("当前奶牛的高度:"+ Cow.this.height);
  37.                 }
  38.                
  39.                 public String getCowLegColor()
  40.                 {
  41.                         return this.color;
  42.                 }
  43.         }
  44.        
  45.         //静态内部类
  46.         static class CowEyes
  47.         {
  48.                 private static int eyeNums = 2;
  49.                
  50.                
  51.                 public static int getEyeNums()
  52.                 {
  53.                         return eyeNums;
  54.                 }
  55.         }
  56.        
  57.         public void testLegs()
  58.         {
  59.                 CowLeg cl = new CowLeg(1.12,"黑白相同");
  60.                 cl.info();
  61.                 //访问内部类的实例方法,必须显示创建内部类对象
  62.                 //System.out.println("当前奶牛腿的颜色:"+getCowLegColor());
  63.                 System.out.println("当前奶牛腿的颜色:"+cl.getCowLegColor());
  64.         }
  65.        
  66.         public static void testEyesNums()
  67.         {
  68.                 System.out.println("当前奶牛眼睛个数:"+ new CowEyes().getEyeNums());
  69.         }
  70. }

  71. public class myInnerClass
  72. {
  73.         public static void main(String[] args)
  74.         {
  75.                 Cow cow = new Cow(1.5);
  76.                 cow.testLegs();
  77.                
  78.                 cow.testEyesNums();
  79.                
  80.         }
  81. }
复制代码

2 个回复

倒序浏览
代码运行结果如下:

QQ图片20150911224724.png (2.2 KB, 下载次数: 9)

QQ图片20150911224724.png
回复 使用道具 举报
多谢分享,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马