java内部类的简介说明

java内部类的简介说明

转自:

http://www.java265.com/JavaCourse/202206/3755.html

下文笔者讲述java中内部类的简介说明

内部类简介

 我们将定义在类中的类称之为“内部类”

例:

public class User{
    //内部类
    public class run{
    
    }
}

内部类的使用场景及功能

当一个对象内部
   还拥有一个完整的结构时,内部结构同时为外部结构服务
   那么内部完整结构,可使用内部类设计

内部类注意事项:
  1.内部类通常可以方便访问外部类的成员,包括私有的成员
  2.内部类提供了更好的封装性
     内部类本身就可以用private protectecd等修饰
      封装性可以做更多控制。

内部类的分类

 静态内部类
 成员内部类(非静态内部类)
 局部内部类
 匿名内部类

静态内部类简介

有static修饰
 属于外部类本身
如:
public class outer{
    //静态内部类
    public class static inner{
        
    }
}

静态内部类创建对象的格式
  外部类名.内部类名 对象名 = new 外部类名.内部类名();

例:

 
public class user {
    public static String name = "刘畅";
    public static class score{
        private String name ;
        private int price;
 
        public score() {
        }
 
        public score(String name, int price) {
            this.name = name;
            this.price = price;
        }
 
        public void buy(){
            System.out.println(user.name+"购买了"+this.name);
        }
 
        public String getName() {
            return name;
        }
 
        public void setName(String name) {
            this.name = name;
        }
 
        public int getPrice() {
            return price;
        }
 
        public void setPrice(int price) {
            this.price = price;
        }
    }
}
//main方法
user.score m = new user.score("猫猫",300);
m.buy();
静态内部类可以访问外部类的静态成员
 但是不能访问外部类的实例成员
 因为实例成员是由对象创建的
内部类无法找到
除非在内部类中new一个对象
进行间接的访问

成员内部类简介

 无static修饰
 属于外部类的对象

//格式
public class outer{
    public class inner{
    }
}

成员内部类创建对象的语法:
   外部类名.内部类名 对象名 = new 外部构造器.new内部构造器();
   outer.inner in = new outer().new inner();

例:

public class user {
    public static String name1 = "刘畅";
    private String name2 ;
    public  class score{
        private String name ;
        private int price;
        public void buy(){
            System.out.println(user.name1+"购买了"+this.name);
        }
 
        public String getName() {
            return name;
        }
 
        public void setName(String name) {
            this.name = name;
        }
 
        public int getPrice() {
            return price;
        }
 
        public void setPrice(int price) {
            this.price = price;
        }
    }
}
//main方法
user.score m = new user().new score();
        m.setName("奥特曼");
        m.buy();

局部内部类简介

局部内部类放在方法、代码块、构造器等执行体中
局部内部类的类文件名:
    外部类$N内部类.class
例:在方法test中定义类
class 类名{

   } 

匿名内部类

将定义在方法中,代码块中等
并且没有类名,我们将这种类称之为“匿名内部类”

匿名内部类的用途:
   方便创建子类对象,简化代码编写
    
new 类名|抽象类名|或者接口名(){

        重写方法;

};
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » java内部类的简介说明