栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

学习博客:内部类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

学习博客:内部类

内部类就是在一个类的内部再定义一个类,在A类中定义一个B类,那么B类对A类就成为内部类,而A类对B类就是外部类

外部类与内部类:

//外部类
public class Outer {

    private int id;
    //外部类的方法
    public void out(){
        System.out.println("这是外部类的方法");

    }

    //内部类
    public class Inner{
        //内部类的方法
        public void in(){
            System.out.println("这是内部类的方法");
        }

        //获得外部类的私有属性
        public void getID(){
            System.out.println(id);
            }
        }
        
    }
}
public class Application {
    public static void main(String[] args) {

        //外部类实例化
        Outer outer = new Outer();

        //通过外部类将内部类实例化
        Outer.Inner inner = outer.new Inner();
        outer.out();    //外部
        inner.in();     //内部
        inner.getID();
    }
}

内部类可以操作外部类的私有属性、私有方法
静态内部类不能直接访问非静态属性

一个Java类中可以有多个class,但只有一个public class

public class Outer {
    
}

class A{
	public static void main(String[] args) {

    }
}

class B{
    
}

1.成员内部类
成员内部类内部不能存在static变量或方法

class Outer{
	//成员内部类
	class Inner{
		private int id;
		public void hi(){
		}
	}
}

2.静态内部类
静态内部类不能使用任何外部类的非静态变量或方法,但可以存在自己的成员变量

class Outer{
	//静态内部类
	static class Inner{
		private int id;
		public void hi(){
		}
	}
}
public class Test{
	public static void main(String [] args){
		Outer.Inner in = new Outer.Inner();
	}
}

3.局部内部类

public class Outer {

    
    public void method(){
        //局部内部类
        class Inner{
            public void in(){
                
            }
        }
        
    }
    
}

4.匿名内部类

public class Test {
    public static void main(String[] args) {
        
        //没有名字初始化类
        new Apple().eat();  //匿名内部类,不用将实例保存到变量中
        
        //实现接口的类,也可以没有名字
        new UserService(){

            @Override
            public void hi() {
                
            }
        };
        
    }
}

class Apple{
    public void eat(){
        System.out.println("eat");
    }
}

interface UserService{
    void hi();
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/749094.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号