Java日志第21天 2020.7.26
2021-04-08 04:27
标签:抽象 rac 返回 开始 匿名 变量 com java 8 nbsp 如果一个事物包含另一个事物,这就是一个类内部包含另一个类。 如身体与心脏、汽车与发动机 内部类中包括成员内部类与局部内部类,其中局部内部类中又包含匿名内部类 格式: 修饰符 class 外部类名称{ 修饰符 class 内部类名称{ // ... } // ... } 内部类用外部类时,可以随意访问;外部类用内部类时,需要用内部类的对象。 1.间接方法:在外部类方法中使用内部类,main方法直接调用外部类方法。 2.直接方法: 类名称 对象名 = new 类名称 外部类名称.内部类名称 对象名 = new 外部类名称().new 内部类名称() 当存在重名变量时,访问如下: *内部类的.class文件命名是 外部类名称$内部类名称.class,所以不建议命名类名称时使用$符号 如果一个类是定义在一个方法内部的,那么这就是一个局部内部类。 只有当前所属方法可以使用它,出了这个方法就不能使用。 格式: 修饰符 class 外部类名称{ 修饰符 返回值类型 方法名称(参数列表){ class 内部类名称{ } // 方法体 } } 局部内部类如果希望访问所在方法的局部变量,那么这个局部变量必须是有效final的。 从Java 8 开始,只要局部变量事实不变,那么final关键字可以省略。 如果接口的实现类(或者父类的子类)只需要使用唯一一次,那么这种情况下就可以省略掉该实现类的定义,而使用匿名内部类。 格式: 接口名称 对象名 = new 接口欧名称{ //覆盖重写所有抽象方法 } 今天的内容需要理解,多练一练,明天还有一点内容,然后做一个综合实例。 Java日志第21天 2020.7.26 标签:抽象 rac 返回 开始 匿名 变量 com java 8 nbsp 原文地址:https://www.cnblogs.com/Gazikel/p/13379892.html内部类
成员内部类
两种使用成员内部类的方法
public class Body {//外部类
public class Heart{//内部类
//内部类方法
public void beat(){
System.out.println("心脏跳动");
}
}
//外部类方法中使用内部类
public void methodBody(){
Heart heart = new Heart();
heart.beat();
}
}
public class DemoMain {
public static void main(String[] args) {
Body body = new Body();
body.methodBody();
Body.Heart heart = new Body().new Heart();
heart.beat();
}
}public class Outer {
private int num = 10;
public class Inner{
private int num = 20;
public void method(){
int num = 30;
System.out.println(num);//30
System.out.println(this.num);//20
System.out.println(Outer.this.num);//10
}
}
}
局部内部类
public class Outer {
private int num = 10;
public void method(){
/*final*/ int num = 20;
class Inner{
public void getNum(){
System.out.println(num);
}
}
}
}
匿名内部类
public interface MyInterface {
public abstract void method();
}
public class DemoMain {
public static void main(String[] args) {
MyInterface obj1 = new MyInterface() {
@Override
public void method() {
System.out.println("对象调用匿名内部类中的方法");
}
};
obj1.method();
new MyInterface() {
@Override
public void method() {
System.out.println("匿名对象调用匿名内部类中的方法");
}
}.method();
}
}
下一篇:Python len()方法
文章标题:Java日志第21天 2020.7.26
文章链接:http://soscw.com/index.php/essay/72709.html