Java程序设计——内部类

目录(仅供参考)

一、定义

二、访问权限


一、定义

Java支持在一个类中定义另一个类,这样的类称作内部类,而包含内部类的类为内部类的外嵌类。内部类就是外嵌类里定义的一个类型而已,只不过,该类型仅仅限于在本外嵌类中使用。

二、访问权限

外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外嵌类中的方法。 内部类的类体中不可以声明类变量和类方法。外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员。其他类不可以用个类的内部类声明对象 

访问修饰符:public ,protected private 对内部类没有区别,因为内部类仅仅在该外嵌类中可以被使用。


注意的是,Java编译器生成的内部类的字节码文件的名字和通常的类不同,内部类对应的字节码文件的名字格式是“外嵌类名$内部类名”,例如,例子1中内部类的字节码文件是RedCowForm$RedCow.class。因此,当需要把字节码文件复制给其他开发人员时,不要忘记了内部类的字节码文件。

内部类示例:

public class Example6_1 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
	  RedCowForm form = new RedCowForm("红牛农场");
      form.showCowMess();
      form.cow.speak();
	}

}

public class RedCowForm {
	  public static String formName;
	  RedCow cow;                  //内部类声明对象
	  
	  public RedCowForm() {			//	无参构造方法
	   }
	   
	  public RedCowForm(String s) {	//	含参构造方法
	      cow = new RedCow(150,112,5000);
	      formName = s;
	   }
	   
	  public void showCowMess() {
	      cow.speak();
	  }
	  
	  class RedCow {  //内部类的声明
	      protected String cowName = "红牛";
	      private int height,weight,price;
	      public RedCow(int h,int w,int p){
	          height = h;
	          weight = w;
	          price = p;
	      }
	      
	      public void speak() {
	         System.out.println("偶是"+cowName+",身高:"+height+"cm 体重:"+
	        		 weight+"kg,生活在"+formName);
	      }
	 }    
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来得晚一些也行

观众老爷,请赏~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值