在JAVA中,类内部可以添加其它类,当然也可以实现类继承(后续章节学习).

本章示例-实现部门类和雇员类

  • 可以通过部门对象,查找该部门的雇员信息.
  • 可以通过雇员对象,查找该雇员所在的部门信息

代码如下:

/*
* 部门类
*/
class Department
{
  private int DepNo; //部门编号
  private String DepName; //部门名称
  private String DepLoc; //部门位置
  private Employee[] emps; //部门的人数   public Department(int DepNo,String DepName,String DepLoc)
  {
    this.DepNo = DepNo;
    this.DepName = DepName;
    this.DepLoc = DepLoc;
  }   public void setEmps(Employee[] emps)
  {
    this.emps = emps;
  }
  public Employee[] getEmps()
  {
    return this.emps;
  }
  public String getDepName()
  {
    return this.DepName;
  }
  public String getInfo()
  {
    String ret = "部门编号:"+ DepNo + " 名称:"+ DepName + " 位置:"+ DepLoc + " 部门人数:"+ emps.length +"\r\n" ;     for(int i=0;i<emps.length;i++)
      ret += "雇员:"+ emps[i].getEmpName() + " 编号:"+ emps[i].getEmpNo() +" 薪水:"+ emps[i].getEmpSalry() +"\r\n";
    return ret;
  } } /*
* 雇员类
*/
class Employee
{
  private int EmpNo; //雇员编号
  private String EmpName; //雇员名称
  private int EmpSalry; //雇员薪水
  private Department dep; //雇员所在的部门   public Employee(int EmpNo,String EmpName,int EmpSalry,Department dep)
  {
    this.EmpNo = EmpNo;
    this.EmpName = EmpName;
    this.EmpSalry = EmpSalry;
    this.dep = dep;   }   public int getEmpNo()
  {
    return this.EmpNo;
  }
  public String getEmpName()
  {
    return this.EmpName ;
  }
  public int getEmpSalry()
  {
    return this.EmpSalry ;
  }   public Department getDep()
  {
    return this.dep ;
  }   public String getInfo()
  {
    return "雇员编号:"+ EmpNo + " 名称:"+ EmpName + " 所属部门:"+ dep.getDepName() + " 薪水:"+ EmpSalry;
  }
} public class Test{
  public static void main(String args[]){     //先有部门,再有雇员,所以Department构造方法里,是没有雇员的
    Department dep = new Department(7,"销售部","成都");
    //先有部门,再有雇员,所以Employee构造方法里,是有部门信息的
    Employee emp1 = new Employee(7760,"小张",2700,dep);
    Employee emp2 = new Employee(7761,"小李",3300,dep);
    Employee emp3 = new Employee(7762,"小王",4200,dep);     dep.setEmps(new Employee[]{emp1,emp2,emp3});
    System.out.println( dep.getInfo() );
  }
}

运行打印:

下章学习:6.JAVA-链表实例

5.JAVA-内部类实例的更多相关文章

  1. 黑马----JAVA内部类

    黑马程序员:Java培训.Android培训.iOS培训..Net培训 黑马程序员--JAVA内部类 一.内部类分为显式内部类和匿名内部类. 二.显式内部类 1.即显式声明的内部类,它有类名. 2.显 ...

  2. java 内部类 *** 最爱那水货

    注: 转载于http://blog.csdn.net/jiangxinyu/article/details/8177326 Java语言允许在类中再定义类,这种在其它类内部定义的类就叫内部类.内部类又 ...

  3. java内部类以及匿名类

    内部类 一个类内部定义的类称为内部类. 内部类允许把逻辑相关的类组织在一起,并控制内部代码的可视性. 内部类与外部类的结构层次如下. 顶层类:最外层的类 外部类:内部类所在的类 内部类:类内部定义的类 ...

  4. 9)Java内部类(Inner Class)

      内部类:不可以有静态数据,静态方法或者又一个静态内部类      内部类的优点:隐藏类的细节,内部类可以声明为私有.内部类可以访问外部类的对象(包括private) 静态内部类:可以有静态数据,静 ...

  5. JAVA内部类(转)

    源出处:JAVA内部类 在java语言中,有一种类叫做内部类(inner class),也称为嵌入类(nested class),它是定义在其他类的内部.内部类作为其外部类的一个成员,与其他成员一样, ...

  6. 【JAVA】浅谈java内部类

    一.什么是内部类? 到底什么是内部类呢?通俗的讲,就是在类内部定义的类,包括定义在一个类的方法外面.方法里面或者代码块中. 二.为什么要使用内部类? 为什么我们要不走寻常路,把一个类定义在另一个类的内 ...

  7. java内部类实现多继承

    class Example1 { public String name() { return "liutao"; } } class Example2 { public int a ...

  8. Java内部类的使用小结

    转载:http://android.blog.51cto.com/268543/384844/ Java内部类的使用小结 内部类是指在一个外部类的内部再定义一个类.类名不需要和文件夹相同. *内部类可 ...

  9. java 内部类(摘抄自网络)

    Java内部类 1.内部类分为成员内部类.静态嵌套类.方法内部类.匿名内部类. 几种内部类的共性: A.内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类 ...

  10. 【转】Java 内部类种类及使用解析

    Java 内部类种类及使用解析 内部类Inner Class 将相关的类组织在一起,从而降低了命名空间的混乱. 一个内部类可以定义在另一个类里,可以定义在函数里,甚至可以作为一个表达式的一部分. Ja ...

随机推荐

  1. JavaScript中的trim自定义

    先直接贴代码 String.prototype.trimfy=function (val){ var demo=String(this); if(demo.indexOf(val)>=0){ i ...

  2. JSON Patch

    1.前言 可以这么说的是,任何一种非强制性约束同时也没有"标杆"工具支持的开发风格或协议(仅靠文档是远远不够的),最终的实现上都会被程序员冠上"务实"的名头,而 ...

  3. 用 Python 鉴别色色的图片

    0 前言 实话实说啊,这个标题起得就有点标题党,识别是识别,准确率就有点玄学了. 1 环境说明 Win10 系统下 Python3,编译器是 Pycharm,需要安装 nonude 这个库. Pych ...

  4. MySQL varchar类型数据转tinyint类型

    在mysql数据库中性别字段以前存的是'男'和'女',使用varchar类型存储的,但是在我mongo库中这个字段使用的是'1'和'0'存储的,在两个库之间的数据转换就很不方便,于是想要统一存储类型, ...

  5. 重写equals时,遵守的规定

      0 正确的equals方法 public class MyClass { // 主要属性1 private int primaryAttr1; // 主要属性2 private int prima ...

  6. eclipse工具按键翻译

    1.新建项目界面 2.新建类界面 3.类中右击

  7. 【基于url权限管理 shiro(一)】--基础

    只要有用户参与的系统一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源.权限管理包括用户认证和授权两部分.   用户认证 1.概 ...

  8. tkinter中frame布局控件(九)

    frame控件 frame控件是将窗口分成好几个小模块,然后每个小模块中添加控件. 也就是将窗口合理的布局 由于和其他控件的操作基本一致,就不做注释了 import tkinter wuya = tk ...

  9. HTTPS加密原理

    http(超文本传输协议) 一种属于应用层的协议 缺点: 通信使用明文(不加密),内容可能会被窃听 不验证通信方的身份,因此有可能遭遇伪装 无法证明报文的完整性,所以有可能已遭篡改 优点: 传输速度快 ...

  10. 今天读一读七天学会NodeJS

    七天学会NODEJS NodeJS基础 小结 本章介绍了有关NodeJS的基本概念和使用方法,总结起来有以下知识点: NodeJS是一个JS脚本解析器,任何操作系统下安装NodeJS本质上做的事情都是 ...