国内全屏网站有哪些,一些建筑设计网站,百度搜索引擎的网址是,罗湖区住房和建设局包 导包 Final
不能被改变的#xff0c;修饰方法 类 变量
方法不能被重写
类不能被继承
变量#xff0c;赋值一次#xff0c;变成常量#xff0c;不能再被赋值 final修饰引用数据类型#xff0c;地址值不能变#xff0c;里面的内容可以变 字符串是不可变的
源码中使…包 导包 Final
不能被改变的修饰方法 类 变量
方法不能被重写
类不能被继承
变量赋值一次变成常量不能再被赋值 final修饰引用数据类型地址值不能变里面的内容可以变 字符串是不可变的
源码中使用了private 和 final来修饰 Final修饰value使其中所存的string的地址值不能发生改变
再用private使得外界无法访问这个地址值也就无法修改地址值
所以string里面的内容就是不能改变的 权限修饰符 代码块 局部代码块 构造代码块 这两种代码块渐渐被淘汰不够灵活
怎么改 直接调用有参构造直接把重复的代码写成一个方法直接调用 静态代码块
数据初始化的时候用 创建第一个student类时就会执行一次
创建第二个student类时机不会执行 抽象类 abstract 注意抽象方法定义没有大括号
抽象类不能创建对象
既然不能创建对象那写构造方法有什么用
A当创建子类对象时给属性进行赋值的 统一代码格式 接口 interface
定义规则 Implement 注意接口里swim是抽象方法
一个类implement一个接口后就成了这个接口的子类叫做实现类 接口中成员的特点
成员变量只能是常量
没有构造方法
只有抽象方法 多个接口有同名的抽象方法则实现类中只需重写一次抽象方法相当于重写了所有接口里的同名抽象方法。
接口继承之后实现类里要重写所有父接口和子接口的抽象方法 JDK8后接口新增的方法 默认方法 带方法体的
加default如果省略了default就会被当成一个抽象方法
出现多个相同名字的默认方法就必须要重写 静态方法 不能被重写 通过接口名.静态方法调用 JDK9之后接口中加入私有方法 有static只能用在静态方法中
没有static用在默认default默认方法中
抽象方法都没有方法体所以这些私有方法抽象方法都用不了 接口的应用 适配器设计模式 class也是一个类
在实现类和接口之间的中间类让实现类继承extends中间类
里面重写所有接口的抽象方法不过是空实现
适配器写成抽象类abstract防止被外界创建对象 内部类 为什么外部类访问内部类成员必须要创建对象 A因为在测试类中调用外部类的成员方法时成员方法的形参中会有一个隐藏的this要表示调用者如果直接使用内部类的方法这个this调用者就没办法调用必须先创建一个内部类的对象通过这个内部类对象才能调用内部类的方法。 内部类的分类 成员内部类 Private只能在本类中使用在外界不能用
默认只能在本包当中用其他包用不了
Protected只能在本包中其他类中使用或者是其他包的子类也能用
Public所有地方都能创建对象
Static叫做静态内部类 Private方式一适用方式二不适用
其他基本都用方式二 成员内部类如何获取外部类的成员变量 Outer.this.a
内存方面解释 外部类和内部类的字节码文件是分别独立加载在方法区内存中的 内部类对象中会有一个隐藏的this记录外部类对象的地址值 Outer.this 就是获取外部类对象的地址值
总结 静态内部类 成员内部类的特殊情况 static修饰 Show1是静态内部类的非静态方法show2是静态内部类的静态方法 局部内部类 匿名内部类 最重要
隐藏了名字 java会帮我们起名字 叫做 外部类类名$序号 其实new出来的是一个对象真正的匿名内部类是后面大括号里面的内容。
大括号里和前面的类名或是接口名是继承或实现的关系。
然后这个匿名内部类中就要重写前面的类名或是接口的所有的抽象方法 所以把这个匿名内部类当做是一个不用起名字的子类/实现类 去用
同时也可以起名字即把它赋值给一个变量 还可以直接调用自己的方法