-
无static修饰,属于外部类的对象。
-
JDK16之前,成员内部类不能定义静态成员,JDK16开始也可以定义静态成员了。
-
定义成员内部类如下:
public class Outer{ // 成员内部类 public class Inner{ } }
格式:外部类名.内部类名 对象名 = new 外部类构造器().new 内部类构造器();
范例:Outer.Inner in = new Outer().new Inner();
成员内部类代码案例展示
/**
外部类
*/
public class Outer {
public Outer(){}
public Outer(String hobby) {
this.hobby = hobby;
}
public static int a = 100;
private String hobby;
/**
成员内部类,不能加static修饰
*/
public class Inner{
private String name;
private int age;
// private static int a; // JDK 16之后开始支持内部类了
public void show(){
System.out.println("名称:"+name);
System.out.println("数量:"+a);
System.out.println("爱好:"+hobby);
}
public Inner() {
}
public Inner(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
}
public class Test {
public static void main(String[] args) {
Outer.Inner in = new Outer().new Inner();
in.setName("内部");
in.show();
// 调用实例内部类的静态成员
// Outer.Inner.run();
System.out.println("-------------");
Outer.Inner in1 = new Outer("Java").new Inner();
in1.show();
}
}
以上是成员内部类的案例
成员内部类的访问扩展 1、成员内部类是否可以直接访问外部类的静态成员?- 可以的,外部类的静态成员只有一份可以被共享。
- 可以的,因为必须有外部类,才能有成员内部类,所以可以直接访问外部类对象的实例成员。
1、成员内部类是什么样的、有什么特点?
-
无static修饰,属于外部类的对象。
-
可以直接访问外部类的静态成员,实例方法中可以直接访问外部类的实例成员。
2、成员内部类如何创建
外部类名.内部类名 变量名 = new 外部类构造器().new 内部类构造器();
成员内部类的一个题目
// 一下填入什么,才能输出对应的值?
class people{
private int heartbeat = 150;
/**
内部类(实例内部类)
*/
public class Heart{
private int heartbeat = 110;
public void show(){
int heartbeat = 78;
System.out.println(???); // 78
System.out.println(???); // 110
System.out.println(???); // 150
}
}
}
答案,明天发布!!!
明天,公布答案
明天会将局部内部类与匿名内部类
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)