java学习笔记(二十)内部类

 

内部类:


1.1 什么是内部类?


#  一个类的内部还有类,就成为内部类。如果在类outer的内部再定义一个类inner,此时类inner就称为内部类,而类outer则称为外部类。

#  内部类可以声明为public或private,此时对其访问的限制于成员变量和方法完全相同。

1.2   内部类的定义格式


标示符 class 外部类的名称{
//外部类的成员
标示符 class 内部类的名称
{
//内部类的成员
}
}

 

class Outer
{
 private String info="hello,word!";
 class Inner
 {
  public void print(){
  System.out.println(info);
  }
  
 };
 public void fun(){
 new Inner().print();
 }
};
public class Inner01
{
 public static void main(String args[]){
 new Outer().fun();
 }
}



结果为:

F:\java>javac Inner01.java

F:\java>java Inner01
hello,word!

 

1.3:内部类的缺点:

1:正常的一个类操作时,在类中最好只定义属性或方法。如果定义一个类的话,就破坏了程序的一个结构。

优点:

将以上的两个类变成两个独立的类,在分析:

 

class Outer
{
 private String info="hello,word!";
 
 public void fun(){
 new Inner().print();
 }
 public String getInfo(){
 return this.info;
 }
};
class Inner
 {
  public void print(){
  System.out.println(new Outer().getInfo());
  }
  
 };
public class Inner01
{
 public static void main(String args[]){
 new Outer().fun();
 }
}


 

以上程序实例了两个Outer对象,显然不合适:

可以这样改:

 


 

class Outer
{
 private String info="hello,word!";
 
 public void fun(){
 new Inner(this).print();
 }
 public String getInfo(){
 return this.info;
 }
};
class Inner
 {
  private Outer out=null;
  public Inner(Outer out){
  this.out=out;
  }
  public void print(){
  System.out.println(new Outer().getInfo());
  }
  
 };
public class Inner01
{
 public static void main(String args[]){
 new Outer().fun();
 }
}



结果为:


F:\java>javac Inner01.java

F:\java>java Inner01
hello,word!

 


:1.4:

如果内部类拿到外部以后,会发现代码增加了,而且复杂度也增加了,使用内部类的最大优点:可以方便访问外部类中的私有属性。

但是以上的内部类是无法在外部直接使用的,

 

1.5:使用static声明内部类


如果一个内部类使用static关键字声明,则此内部类就成为外部类,可以直接通过外部类进行访问。

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值