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

Java内部类

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

Java内部类

内部类 1、内部类的概述

内部类就是在一个类的内部定义一个类。我们把外边的类称为外部类
内部类的分来:

  1. 成员内部类
  2. 静态内部类
  3. 局部内部类
  4. 匿名内部类
2. 成员内部类

注:成员内部类中不能写静态属性和方法

//在A类申明一个B类,此B类就是在A的内部,并且在成员变量的位置上,所以就称为成员内部类
public class Outer{
	private int id;
	public void out(){
	System.ot.pirntln("这是外部类方法")
	}
	
	class Inner {
		public void in(){
			System.out.println("这是内部类")
	}
}

实例化内部类

public class MemberInnerClassTest{
	private String name;
	private static int age;
	public void run(){
	}
	public static void go(){
	}
	public class MemberInnerClass{
		private String name;
		//内部类访问外部类
		public void test (String name){
			System.out.println(name);
			System.out.println(this.name);
			System.out.pirntln(MemberInnerClassTest.this.name);
			System.out.println(MemberInnerClassTest.age);
			MemberInnerClassTest.this.run();
			MemberInnerClassTest.go();
		}
	}
	public void test(){
		MemberInnerClass mic=new MemberInnerClass();
		mic.name="Tom";
		mic.test("hua");
	}
	public static void main(String [] args){
	MemberInnerClassTest out=new MemberInnerClassTest();
	MemberInnerClass mic=out.new MemberInnerClass();
	mic.name="jik";
	mic.test("kkk");
	}


}
静态内部类

使用static修饰的内部类就是静态内部类。。

  1. static修饰成员变量:整个类的实例共享静态变量
  2. static修饰方法:静态方法:静态方法,只能访问static修饰的属性或方法,而非静态方法可以访问static修饰的方法或属性。
  3. 被static修饰的变量和方法能直接被类名调用
  4. static不能修饰局部变量
public calss StaticInnerClassTest{
	private String name;
	private static int age;
	public void run(){
	}
	public static static go(){
	}
	//外部类访问静态内部类
	public void test(){
	//静态内部类不需要以来外部类,所以不用this
	StaticInnerClass sic =new StaticInnerClass();
	sic.name="tom";
	sic.test1("jack");
	StaticInnerClass.age=10;
	StaticInnerClass.test2("xixi");
	
	}
	pirvae static class StaticInnerClass{
		private String name;
		private static int age;

		public void test1(Strig name){
			System.out.println(name);
			System.out.println(this.name);
			System.out.pirntln(StaticInnerClass.age);
			System.out.println(StaticInnerClassTest.age);
			//System.out.println(StaticInnerClassTest.this.name);//静态类不能访问非静态属性
			StaticInnerClassTest.go();			
		}
	}
}

未完,,,太多了。。。
内容来自:https://oddfar.github.io/notes/java/se/object/#_5%E3%80%81%E5%8C%BF%E5%90%8D%E5%86%85%E9%83%A8%E7%B1%BB

4. 局部内部类 5. 匿名内部类

匿名内部类:我也只需要用一次,那我就不需要在类中先定义一个内部类,而是等待需要用的时候,我就在临时实现这个内部类,因为用次数少,可能就这一次,那么这样写内部类,更方便。不然先写出一 个内部类的全部实现来,然后就调用它一次,岂不是用完之后就一直将其放在那,那就没必要那样。

匿名内部类需要依托于其他类或者接口来创建
如果依托的是类,那么创建出来的匿名内部类就默认是这个类的子类
如果依托的是接口,那么创建出来的匿名内部类就默认是这个接口的实现类。
匿名内部类的声明必须是在使用new关键字的时候
匿名内部类的声明及创建对象必须一气呵成,并且之后能反复使用,因为没有名字

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/424742.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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