java 学习 内部类 第六天

内部类  ? 

 

内部类就是在类中定义的类 Inner  Class       内部类的this表示本对象      outer.this.data   访问到外部类的成员 

 

内部类能操作外部类   public  private  protectd   缺省权限   修饰的成员      

 

下面是内部类的例子 :

 

 

class Outer
{
 private int index =100;
 class Inner
 {
  private int index=50;
  void  print()
  {
  int index=10;
   System.out.println(index);
   System.out.println(this.index);
   System.out.println(Outer.this.index);
  }

  
  
  
  
 }
 
 
 
 
   void print()
  {
  
  Inner inner =new  Inner();
  inner.print();
 }
 
 
 
 
}

class  Test
{
 public static  void main(String []args)
 {
  Outer  out=new  Outer();
  out.print();
  
  
 }
 
 
 
}

 

首先必须先产生一个 外部类 才能进而产生内部类    内部类允许在 函数中定义不过  作用域只是  函数内部 

我们可以在外部类内通过函数 产生内部类对象然后返回对象引用   也可以通过      new 来直接创建内部类

如果  main函数和内部类在一个外部类中 那么main函数不能调用内部类方法 因为静态函数 无法调用非静态函数的

方法  需要另外声明一个类    类可以定义在函数中 条件语句中   语句块中 不管嵌套多深都可以随意访问外部类所有成员

如果局部函数内部类要访问函数的参数或者 变量那么要声明为final 否则不能访问

内部类也可以用 protected修饰   可以在同一个类中被访问 也可以在同一个包中访问

如果声明为private 那么只能在 外部类访问 其他类都不能访问了   即使是同一个包中的类都不能访问  。。

内部类也可以声明为abstract 

 

例子如下 :

class  Test
{
 public static  void main(String []args)
 {
  Outer  out=new  Outer();   //声明一个外部类
  Outer.Inner inner =out.new Inner();  //声明一个内部类  通过外部类的new构造一个 内部类的对象实例
  inner.print();  //调用显示方法
 }
}

 

 

final  修饰内部类的话 这个类就不能被继承了   

static 修是内部类 那么 内部类就不能访问外部类 的非静态成员变量   

静态的内部类只能访问静态的成员变量和静态成员方法  

 

 

 

 

 

时间: 2024-09-22 13:39:53

java 学习 内部类 第六天的相关文章

【Java学习路线图,看你掌握了多少】附全部知识点免费视频课程,名师主讲

这个路线图中包含了Java学习的三部曲: Java零基础入门(点击标题学习) Java面向对象开发(点击标题学习) Java高级开发(点击标题学习) 在阿里云大学,你可以跟随Java名师李兴华学到路线图中所有的知识点(完全免费哦),赶快开始你的Java学习之路吧! 课程详细目录: Java零基础入门 课时1:Java简介(Java发展概述) 课时2:Java简介(Java主要特点) 课时3:JDK的安装与配置 课时4:第一个Java程序 课时5:CLASSPATH环境属性 课时6:Java程序基

java学习笔记9--内部类总结

java内部类分为: 非静态内部类.静态内部类.局部内部类.匿名内部类 内部类的共性: (1)内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号 . (2)内部类不能用普通的方式访问.内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论是否是private的 . (3)内部类声明成静态的,就不能随便的访问外部类的成员变量了,此时内部类只能访问外部类的静态成员变量 . java 中的内部类和接口加在一起,可以的解决常被

Java学习之Java的运行环境

Java 时下已经非常流行.全球每天有超过百万的程序员在用Java进行着程序的开发.用Java编写的程序也因为其硬件环境无关性而越来越受到人们的青睐.如果您希望成为Java世界的一员,那就看看这个系列的文章也许对您会有帮助. 无论哪种语言都需要有它特定的运行环境也就是平台,Java 同样不例外.您也许会问,Java程序不是有硬件环境无关性吗?好吧,我希望这篇文章可以回答好这个问题. 几乎所有的语言都是需要通过编译或者解释才可以被您的电脑执行.可是Java有一点不同,它同时需要这两个过程.其实,也

JAVA学习,是一条漫长的道路(转贴)

作者:蔡学镛  发表日期:2001-08-13  浏览人次 :378    我在Java 1.0正式问世前就开始学习Java,这么多年过去了,到现在我的Java学习历程还没有停过.我阅读原文书,研究原始码,撰写程序,自认为走得扎实,不奢望一步登天.像我这样老式的学习方式,显然和现在的快餐主义背道而驰.从许多读者的来信和学生的反应中,我发现大多数的人对于Java的学习历程都差不多是:因为公司需要使用Java来进行服务器的计画,所以急急忙忙地学习Java语言,然后就开始使用J2EE的API,开始写起

Java学习从入门到精通

Java学习从入门到精通工具篇一. JDK (Java Development Kit) JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar).不论什么Java应用服务器实质都是内置了某个版本的JDK.因此掌握JDK是学好Java的第一步.最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有G

Java学习路线图,专为新手定制的学习计划建议

怎么学习Java,这是很多新手经常会问我的问题,现在我简单描述下一个Java初学者到就业要学到的一些东西: 首先要明白Java体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA). J2SE,Java 2 Platform Standard Edition,我们经常说到的JDK,就主要指的这个,它是三者的基础,属于桌面级应用开发,这部分如果学得好很容易拓展J2EE和J2ME. J2ME,The Micro Edition of the Java 2 Platform.主要用于嵌入式J

java学习,方向j2ee,android需要看的书籍

问题描述 java学习,方向j2ee,android需要看的书籍 大四,现在处于实习阶段!计算机专业,想从事java语言开发,学习的过程中,望前辈指点,注意些什么,该看些什么书籍!!! 解决方案 首先要掌握大学里学习的相关知识,例如 计算机网络,计算机操作系统,数据结构等等,这些基础知识很重要. 其次,如果要从事java开发的相关工作,推荐看以下书籍; thinking in java ,effective java 有了一定工作经验以后可以查一些设计模式相关的书,一些in action系列的书

Java学习之路:不走弯路,就是捷径

1.如何学习程序设计? Java是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于JAVA,对C++等其他程序设计语言也一样管用.有编程高手认为,JAVA也好C也好没什么分别,拿来就用.为什么他们能达到如此境界?我想是因为编程语言之间有共通之处,领会了编程的精髓,自然能够做到一通百通.如何学习程序设计理所当然也有许多共通的地方. 1.1 培养兴趣 兴趣是能够让你坚持下去的动力.如果只是把写程序作为谋生的手段的话,你会活的很累,也太对不起自己了.多关心一些行业趣事,多想想盖茨.不是提倡

java学习的基本过程,推荐几本好书!!!!!

问题描述 java学习的基本过程,推荐几本好书!!!!! 解决方案 解决方案二:thinkinjava解决方案三:李兴华的<java实战开发经典>,通俗易懂,深入浅出,个人感觉很不错.解决方案四:马士兵,张孝祥的视频解决方案五:Thinkinginjava,不过需要一定的基础本人很少看书,不过知道两本不错的学设计模式的<大话设计模式><深入浅出设计模式>恩,据说李刚的书还可以,楼主可以查一下另外:推荐视频-李兴华的视频教程解决方案六:java核心技术