Java面向对象15——内部类

时间:2021-08-02
本文章向大家介绍Java面向对象15——内部类,主要包括Java面向对象15——内部类使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

内部类(了解)

成员内部类

 package oop.demon01.demon10;
 
 public class Outer {
 
     private int id = 10;
     public void out(){
         System.out.println("这是外部类的方法");
    }
 
    public class Inner{
         public void in(){
             System.out.println("这是内部类的方法");
        }
         //获得外部类的私有属性、方法
        public void getID(){
            System.out.println(id);
        }
 
    }
 }
 --------------------------
 package oop.demon01.demon10;
 
 public class Application {
     public static void main(String[] args) {
         //new
 
         Outer outer=new Outer();
 
         //通过外部类来实例化内部类~
         Outer.Inner inner = outer.new Inner();
         inner.in();
         inner.getID();
 
    }
 }
 

静态内部类

 package oop.demon01.demon10;
 
 public class Outer {
 
    private static int id = 10;
    public void out(){
        System.out.println("这是外部类的方法");
    }
 
    public static class Inner{
        public void in(){
            System.out.println("这是内部类的方法");
        }
    }
 }

注意:

 package oop.demon01.demon10;
 
 public class Outer {
 
 }
 //一个Java类中可以有多个class类,但是只能有一个 public class
 class A{
     public static void main(String[] args) {
         
    }
 }
 ....

局部内部类

 package oop.demon01.demon10;
 
 public class Outer {
     
    //局部内部类(在方法里面写的类)
    public void method(){
        class Inner{
             
        }
    }
 }

匿名内部类

 package oop.demon01.demon10;
 
 public class Test {
     public static void main(String[] args) {
         //没有名字初始化类,不用实例保存到变量中~
         new Apple().eat();// 1
         //Apple apple=new Apple(); 没有输出结果的
 
         UserService userService = new UserService() {
             //接口需要重写
             @Override
             public void Hello() {
                 
            }
        };
 
    }
 }
 
 class Apple{
     public void eat(){
         System.out.println("1");
    }
 }
 interface UserService{
     void Hello();
 }

 

原文地址:https://www.cnblogs.com/lwtyyds/p/15090237.html