java内部类的简介说明
下文笔者讲述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 类名|抽象类名|或者接口名(){
重写方法;
};
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


