//内部类就是在一个类中再定义一个类
//内部类可以直接访问内部类的一些东西
单拉出来一个联系下,看看刚看到的有什么执行的方法,层次关系,特点,进行罗列一个
搞思维导图有几个技巧,需要把这个弄成分点的样式,- ,这个是罗列出一个一个的
Outer.java
package com.oop.Demo10;
public class Outer { //外部类
private int id=10;
public void out() {
System.out.println("这是外部类的方法");
}
public void getID() {
System.out.println(id);
}
public class Inner { //内部类
public void in() { //类里面有方法
System.out.println("这是内部类的方法");
}
}
}
实现类Application
package com.oop.Demo10;
//想要调用一个类里的方法,先new一个对象new这个类的对象,然后通过 类.方法 调用
//加上 static 变成静态类,先实例化
public class Application {
public static void main(String[] args) {
Outer outer = new Outer();
//先new外部类,再new内部类
//通过这个外部类来实例化内部类
Outer.Inner inner = outer.new Inner(); //outer.new Inner()
//对象的类型 对象名
inner.in(); //调用外部类
System.out.println("============");
outer.out(); //调用内部类
}
}
输出:
这是内部类的方法
============
这是外部类的方法
进程已结束,退出代码 0
package com.oop.Demo10;
public class Outer { //外部类
private int id=10;
public void out() {
System.out.println("这是外部类的方法");
}
public static class Inner { //内部类
//加上static,id报红的原因是先实例化了
//加了static成了静态类,先实例化了类,定义变量id=10在其后面
public void in() { //类里面有方法
System.out.println("这是内部类的方法");
}
public void getID() {
System.out.println(id); //id报红
}
}
}
B1.java
package com.oop.Demo10;
public class B1 {
//局部内部类
public void method() { //方法
class Inner { //局部内部类
public void in() { //局部内部类中的方法
}
}
}
}
A1.java
package com.oop.Demo10;
public class A1 {
public class Outer {
}
}
class a1 {
}
A2.java,实现接口是不是子类?
package com.oop.Demo10;
public class A2 {
public static void main(String[] args) {
//匿名内部类
//没有名字初始化类,不用将实例保存到变量中~
new Apple().eat();
new UserService() {
@Override
public void Hello() {
}
};
}
}
class Apple {
public void eat() {
System.out.println("123");
}
}
interface UserService {
void Hello(); //接口,先创建一个方法的接口让另外一个去实现
}
原文:https://www.cnblogs.com/function123/p/13615120.html