zoukankan      html  css  js  c++  java
  • 010.day010

    day10笔记

    一、Eclipse目录结构

    1. 项目文件夹

    创建工程后产生的文件夹,包含配置文件以及相关的核心目录

    2. 源码文件夹

    source类型的目录,可以存在多个,新建工程时,默认会创建src目录

    • 只有源码文件夹下的文件才会被识别为代码文件
    • 当文件修改后被保存时会自动编译

    3. 字节码文件夹

    默认会将编译后的class文件按照对应的源码路径存放在工程路径下的bin目录

    二、反编译工具

    1. jd-gui.exe

    2. class打开方式

    右键class文件->打开方式->选择更多/浏览->找到jd-gui.exe放置位置->选中->打开->jd-gui.exe会出现在打开方式的列表中->勾选class文件均以此方式打开

    三、内部类

    在class声明的内部定义的类结构

    1. 成员内部类

    定义位置与外部类的成员平级

    • 需要借助外部类的实例进行实例化
    • 内部类可以直接访问到外部类的成员
    • 出现同名时可以借助:外部类.this.成员的方式访问外部类的成员
    • 反编译产生的this$0为外部类对象的指代

    2. 局部内部类

    定义地点与局部变量相同

    • 可以出现在方法或代码块中
    • 只能在定义位置手动实例化使用
    • 定义时不需要指定权限修饰符

    3. 静态内部类

    使用static修饰的局部内部类

    • 不需要借助外部对象的实例来实例化
    • 静态内部类只能直接访问外部类的静态成员
    • 出现同名冲突时可以使用:外部类名.成员的方式区分

    4. 匿名内部类

    以已经定义的抽象类或接口作为模板,使用new关键字,重新补全定义其中的描述信息

    • 特殊的局部内部类,无需使用class关键字声明
    • 可以将整个结构看做是一个类的实例
    • 可以作为参数传递
    	public void test(Teach teach) {
    		teach.exam();
    		teach.review();
    	}
    
    	public static void main(String[] args) {
    		Outer outer = new Outer();
    		// 匿名内部类可以当做参数进行传递
    		// 以匿名内部类当中的定义实例化的对象
    		outer.test(new Teach() {
    			
    			@Override
    			public void review() {
    				System.out.println("课前复习");
    			}
    			
    			@Override
    			public void exam() {
    				System.out.println("随堂练习");
    			}
    		});
    	}
    

    四、对象的实例化

    1. 静态代码块

    一个相对独立的区域,会最先被加载

    2. 动态代码块

    编译后会出现在构造方法开头的部分,先于构造器原内容执行

    3. 构造方法

    对象实例化时调用的方法,会将某些引用类型的成员变量的初始化语句一同执行

    4. 成员变量

    编译后会将在类中定义的成员变量进行整理,对于有赋值操作的引用类型,赋值语句将在构造器的开头出现

  • 相关阅读:
    shell脚本之数组
    shell脚本之函数
    shell脚本之sed
    shell脚本的for循环与read
    shell脚本之if语句
    shell脚本正则表达式
    shell的编程原理
    《梦断代码》阅读笔记03
    12.19学习总结
    《梦断代码》阅读笔记02
  • 原文地址:https://www.cnblogs.com/yokii/p/9365587.html
Copyright © 2011-2022 走看看