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");
    				
    	}
    	}
    	}
    }
    

    在开发中一个文件一个类

  • 相关阅读:
    【MongoDB 工具篇】MongoDB Compass介绍
    【MongoDB 安全篇】MongoDB权限、角色管理
    【MongoDB 安全篇】MongoDB用户管理
    【MongoDB 基础篇】MongoDB增、删、改、查操作
    【MongoDB 安装篇】安装MongoDB单实例
    【Oracle 11g学习路线】
    MySQL自动化安装脚本
    Python条件判断
    Python数据类型
    MySQL服务器OOM导致数据库crash recovery
  • 原文地址:https://www.cnblogs.com/-zero/p/10401697.html
Copyright © 2011-2022 走看看