zoukankan      html  css  js  c++  java
  • java34

    局部内部类:定义在方法中的类
    1.

    class A3{
    	void Myxq() {
    		String name = "myxq";
    		class B{
    			void Test() {
    				System.out.println(name);
    			}
    		}
    //局部内部类的东西只能在定义的方法中使用(在方法中创建内部类对象)
    
    		B in = new B();
    		in.Test();
    	}
    }
    

    1.局部类中可引用局部变量(定义在方法中的变量),但是局部变量必须已经初始化,因为局部变量前默认带着final。
    2..局部内部类不可以放静态变量
    3.不能使用一些修饰符(private,public等)
    5.局部内部类的内存分析
    栈帧:方法和其局部变量,创建的内部类被赋给对象地址的变量
    堆:创建的内部类对象的地址-- 内部类的方法,变量
    6.final修饰的变量相当于常量,常量存放在方法区(方法区中放:static,final)中
    7.当堆中的对象没人引用时,不会立马销毁,因为final的存在使变量放在了方法区中,所以在程序关闭时才会被销毁
    8.匿名内部类:

    interface IUSB{
    	void swapData();
    }
    class MotherBoard{
    	void plugIn(IUSB u) {
    		u.swapData();
    	}
    }
    class Printer implements IUSB{
    	
    }
    public class 匿名内部类 {
    public static void main(String[] args) {
    	MotherBoard b = new MotherBoard();
    	b.plugIn(new Printer()//匿名对象
    	{
    		public void swapData() {
    			System.out.println("打印机工作");
    		}
    	});
    }
    }
    

    没有名字的内部类且放在方法中。
    9.匿名内部类没有构造器,只能使用父类或者接口的构造器
    10.只使用一次的时候才会使用匿名内部类
    11.匿名内部类的格式:
    new 父类名称或者已实现的接口名称(){
    内部写的代码(在new的时候就会自动执行)
    }

    eg:
    (已实现的接口)
    interface IUSBable{
        void a(); 
    }
    class motherboard{
    	void swapdata(IUSBable IUSBable) {
    		IUSBable.plugIn();
    	}
    }
    	public static void main(String[] args) {
    		motherboard m = new motherboard();
    		m.swapdata(new IUSBable() ){
    			public void plugIn(){
    				System.out.println("niming");
    				
    	}
    	}
    	}
    }
    

    在开发中一个文件一个类

  • 相关阅读:
    os.fork()
    解决方案:WindowsError: [Error 2]
    Python遍历文件夹和读写文件的方法
    导航帖
    IDEA后缀补全及快捷键
    Codeforces-Round#614 Div2
    图论算法-欧拉回路 专题训练
    快速求出n!质因数的个数
    Codeforces-Round#589 Div2
    洛谷P3386二分图匹配
  • 原文地址:https://www.cnblogs.com/-zero/p/10401697.html
Copyright © 2011-2022 走看看