java–方法内部类
方法内部类—
方法内部类------在这里我们可以认为方法内部类就相当于方法中的一个局部变量
1、定义方法内部类的时候没有访问修饰符
2.方法内部类中不能出现类变量和类方法
3.方法内部类中的构造方法/实例方法,可以访问本方法中的局部变量,jdk8.0之前需要使用final修饰局部变量,包括参数
4方法内部类中的构造方法/实例方法,可以访问外部类的实例变量/实例方法,默认外部类类名.this. , 可以省略外部类类名.this.
5方法内部类中的构造方法/实例方法,可以访问外部类的类变量/类方法,默认外部类类名,也可以外部类类名.this. ,可以省略外部类类名/外部类类名.this.
6.定义该方法内部类的方法中可以访问这个方法内部类中的变量和方法,对象访问
7.外部类中的方法中是不能访问方法内部类的。【方法内部类当于方法中的一个局部变量
package com.lin183.time;
public class MyClass {
//实例变量
public int myclassid=1001;
//类变量
public static String myclassname="zhangsan";
//构造方法
public MyClass(){
//7.外部类中的方法中是不能访问方法内部类的。
}
//实例方法
public void myclassMethod(){
//7.外部类中的方法中是不能访问方法内部类的。【方法内部类当于方法中的一个局部变量】
//InnerClass innerclass=new InnerClass();无法访问
}
//类方法
public static void myclassStatic(){
//7.外部类中的方法中是不能访问方法内部类的。
}
//实例方法
public void testMethod() {
//方法内部类--就是将有个java类定义在方法中
//我们可以认为方法内部类就相当于这个方法中的一个局部变量
//1.方法内部类不能有访问限制修饰符的
//2.方法内部类中不能出现类方法和类变量
//3.方法内部类中的构造方法/实例方法,可以访问本方法中的局变量.
//4.方法内部类中的构造方法/实例方法,可以访问外部类的实例变量/实例方法,
//默认外部类类名.this. , 可以省略外部类类名.this.
//5.方法内部类中的构造方法/实例方法,可以访问外部类的类变量/类方法,
//默认外部类类名,也可以外部类类名.this. ,可以省略外部类类名/外部类类名.this.
double value=12.5;
class InnerClass{
//方法内部类的实力方法
public int innermyclassid=1002;
//方法内部类的类变量
// public static String innerclassname="lisi";
//方法内部类的构造方法
public InnerClass() {
System.out.println("vlaue==="+value);
System.out.println("myclassid==="+MyClass.this.myclassid);
System.out.println("myclassid==="+myclassid);
MyClass.this.myclassMethod();
myclassMethod();
System.out.println("myclassname==="+MyClass.this.myclassname);
System.out.println("myclassname==="+MyClass.myclassname);
System.out.println("myclassname==="+myclassname);
MyClass.this.myclassStatic();
MyClass.myclassStatic();
myclassStatic();
}
//方法内部类的实例方法
public void innerclassMethod() {
System.out.println("vlaue==="+value);
System.out.println("myclassid==="+MyClass.this.myclassid);
System.out.println("myclassid==="+myclassid);
MyClass.this.myclassMethod();
myclassMethod();
System.out.println("myclassname==="+MyClass.this.myclassname);
System.out.println("myclassname==="+MyClass.myclassname);
System.out.println("myclassname==="+myclassname);
MyClass.this.myclassStatic();
MyClass.myclassStatic();
myclassStatic();
}
//方法内部类的类方法
//public static void innermyclassStatic(){}
}
//6.定义该方法内部类的方法中可以访问这个方法内部类中的变量和方法,对象访问
InnerClass inner=new InnerClass();
System.out.println("innerClassid==="+inner.innermyclassid);
}
}