内部类(成员、静态、方法)| java帮助文档 | 垃圾回收机制
2017-08-11 17:58
901 查看
一、内部类
内部类:在类内部定义的类,就称为内部类。
内部类又分为三种,分别是成员内部类,方法内部类,静态内部类。
1、成员内部类:
一个类中可以定义成员变量,成员方法,还可以定义类。
首先应该注意,内部类如果被声明为私有,外界则无法访问。
成员内部类格式
//内部类在其所在的外部类中被调用自身方法 只需要实例化内部类,用内部类引用即可
那么,如果不是在自己所在的类中被调用应该如何呢?
那么就要用外部类创建内部类对象,创建内部类对象步骤如下
2、方法内部类
方法内部类就是定义在成员方法中的类,并且只能在该方法中使用
方法内部类可以访问外部类的成员变量
案例
3、静态内部类
静态内部类实际上是一个被static修饰的成员内部类。前面有一篇文章已经说过static和静态方法,静态变量,静态代码块,如果不记得了,请先去复习前面的文章
静态内部类的好处就是可以在不创建外部类对象的情况下被实例化。
具体的与发给是如下
二、垃圾回收机制
java 本身是会自动进行垃圾回收的,但是要等到垃圾积累到一定的成都才行。我们可以通过调用 System.gc( )方法来通知虚拟机立即进行垃圾回收。
但是我们不知道一个对象何时会被内存释放,但是我们知道当一个对象被释放时,他的finalize()方法会被自动调用,所以我们可以通过在类中定义飞finalize方法来观察对象何时被回收。
下面来模拟一下java虚拟机垃圾回收的步骤
三、java帮助文档
帮助文档需要借助文档注释才可以,文档注释的方法是/* /
java中提供了javadoc命令,可以自动生成帮助文档,可直接通过查看文档了解程序功能,而不需要查看程序源代码,因此可以大大提高开发效率。
@author 对类进行说明 表示程序作者
@version 对类进行说明,表示程序开发版本号
@param 用于对方法进行说明,表示方法定义的参数以及参数对应的说明
@return 用于对方法进行说明,表示方法的返回值代表的意义
jdk帮助文档
jdk帮助文档中对所有看Java类提供了详细的说明。开发人员一般将其作为文档查阅工具来使用。可以在oracle官网找到。
四、博主学习的教材是传智播客的,所以用的例子也有部分是的,如果有侵权,可联系进行删除。
内部类:在类内部定义的类,就称为内部类。
内部类又分为三种,分别是成员内部类,方法内部类,静态内部类。
1、成员内部类:
一个类中可以定义成员变量,成员方法,还可以定义类。
首先应该注意,内部类如果被声明为私有,外界则无法访问。
成员内部类格式
class Outer{ int num=1;//成员变量 public void test(){//成员方法 Inner inner=new Inner();//创建一个成员内部类对象 inner.show()//调用成员内部类方法 } class Inner(){//成员内部类 void show(){//成员内部类方法 System.out.print(num);//成员内部类方法访问外部内的成员变量 } } } public class Example01{ public static void main (String [] args){ Outer outer =new Outer(); outer.test(); } } //内部类在其所在的外部类中被调用自身方法 只需要实例化内部类,用内部类引用即可
//内部类在其所在的外部类中被调用自身方法 只需要实例化内部类,用内部类引用即可
那么,如果不是在自己所在的类中被调用应该如何呢?
那么就要用外部类创建内部类对象,创建内部类对象步骤如下
//外部类类名.内部类类名 变量名=new 外部类类名().new 内部类类名(); //例如,如果想调用show方法,则需要如下步骤 Outer.Inner neibuleiduixiang=new Outer().new Inner(); neibuleiduixiang.show();
2、方法内部类
方法内部类就是定义在成员方法中的类,并且只能在该方法中使用
方法内部类可以访问外部类的成员变量
案例
class Outer{ int num=4; public void test(){ class Inner{//方法内部类 void show(){ System.out.print(num); } } Inner inner=new Inner();//创建对象 inner.show();//调用方法 } } public class Example02{ public static void main (String [] args){ Outer out=new Outer(); out.test(); } }
3、静态内部类
静态内部类实际上是一个被static修饰的成员内部类。前面有一篇文章已经说过static和静态方法,静态变量,静态代码块,如果不记得了,请先去复习前面的文章
静态内部类的好处就是可以在不创建外部类对象的情况下被实例化。
具体的与发给是如下
//外部类名.内部类名 变量名=new 外部类名.内部类名(); //需要注意的是①静态内部类中只能访问外部类的静态成员。②静态内部类中可以定义静态的成员,而非静态内部类中不允许定义静态成员 例子如下 class Outer { private static int num =6; static class Inner{ void show(){ System.out.print(num); } } } class Example03{ public static void main (String [] args){ Outer.Inner inner=new Outer.Inner(); inner.show; } }
二、垃圾回收机制
java 本身是会自动进行垃圾回收的,但是要等到垃圾积累到一定的成都才行。我们可以通过调用 System.gc( )方法来通知虚拟机立即进行垃圾回收。
但是我们不知道一个对象何时会被内存释放,但是我们知道当一个对象被释放时,他的finalize()方法会被自动调用,所以我们可以通过在类中定义飞finalize方法来观察对象何时被回收。
下面来模拟一下java虚拟机垃圾回收的步骤
class Person{ public void finalize(){ System.out.print("finalize方法被调用啦") } } public class Example04{ public static void main (String [] args){ Person p1=new Person(); Person p2=new Person(); p1=null; p2=null; System.gc(); for(int i=0;i<10000000;i++){ //这个循环是用来延长程序运行时间的 } } } //需要注意的是 在虚拟机中 这个过程是在后台运行的 所以看不到
三、java帮助文档
帮助文档需要借助文档注释才可以,文档注释的方法是/* /
java中提供了javadoc命令,可以自动生成帮助文档,可直接通过查看文档了解程序功能,而不需要查看程序源代码,因此可以大大提高开发效率。
@author 对类进行说明 表示程序作者
@version 对类进行说明,表示程序开发版本号
@param 用于对方法进行说明,表示方法定义的参数以及参数对应的说明
@return 用于对方法进行说明,表示方法的返回值代表的意义
jdk帮助文档
jdk帮助文档中对所有看Java类提供了详细的说明。开发人员一般将其作为文档查阅工具来使用。可以在oracle官网找到。
四、博主学习的教材是传智播客的,所以用的例子也有部分是的,如果有侵权,可联系进行删除。
相关文章推荐
- 面向对象——概念(成员变量、静态变量、成员方法、静态方法、垃圾回收机制、重载、包)
- java学习笔记(四)----对象、数组作为参数传递,静态变量、静态方法的使用,内部类,使用文档注释
- Java基础——Static修饰符+静态相关+帮助文档制作+对象初始化_调用成员过程+单例设计
- Java垃圾回收机制——方法区
- JAVA基础初探(四)JAVA封装、包的概念及使用、访问修饰符、this关键字、内部类(成员,静态,方法,匿名)
- 为什么用内部类,java的垃圾回收机制
- 【Java 基础】Java垃圾回收机制 finalize() 方法
- 简单理解Java的垃圾回收机制与finalize方法的作用
- 接口,构造器与垃圾回收机制,对像的生命周期。非静态方法与静态方法。
- java垃圾回收机制和finalize()方法
- java 垃圾回收的机制及方法
- 为什么java有垃圾回收机制,还有close方法?
- JASE总结--09(1.抽象类2.接口3.Debug4.垃圾回收机制5.内部类6.方法内部类7.静态内部类)
- java 垃圾回收的机制及方法
- java 垃圾回收的机制及方法
- Java面向对象(七)包、内部类、垃圾回收机制
- 深刻剖析经典面试题之二:Java与C#的垃圾回收机制
- java中的垃圾回收机制
- 全面分析Java的垃圾回收机制
- Java的垃圾回收机制详解和调优