-
内部类: 一个类里面再定义一个类 , 里面的类叫做 内部类
外面的类 外部类,宿主类 -
内部类 : 通常是为了帮助管理外部类事物的,则内部类可以访问外部类的属性和方法,即使外部类属性和方法是私有的
3.内部类的分类:
成员内部类: 相当于外部类的一个成员属性 或者成员方法
静态内部类
局部内部类
匿名内部类
4.使用场景: 这个内部类只可以帮助 这一个外部类实现外部类的需求
5.先要创建外部类对象 通过外部类对象 创建内部类对象
- 格式:外部类对象.new 内部类();
main:
public class Test {
public static void main(String[] args) {
MemeberInner memeberInner = new MemeberInner();
MemeberInner.Inner inner = memeberInner.new Inner();
inner.eat();
MemeberInner2 memeberInner2 = new MemeberInner2();
Inner inner2 = memeberInner2.new Inner();
inner2.sleep();
}
}
- 成员内部类,可以用四种访问权限修饰符修饰
- 成员内部类中 ,不允许直接用静态的属性和方法,但是属性可以 用 final static 修饰变成常量
- 内部类中可以使用外部类中的属性和方法 包括私有的
内部类1
package com.qf.demo9;
public class MemeberInner {
private String name ="太和殿";
private int age = 300;
public void sleep(){
System.out.println("一片寂静");
}
// 成员内部类
// 可以用四种访问权限修饰符修饰
class Inner{
// 成员内部类中 不允许直接用静态的属性和方法
// 但是属性可以 用 final static 修饰变成常量
public final static String sex = "不详";
private double money;
public void eat(){
// 内部类中可以使用外部类中的属性和方法 包括私有的
System.out.println(age);
sleep();
System.out.println(name);
System.out.println("吃");
}
}
}
1.外部类和内部类属性同名的时候 默认调用的是 内部类中的属性
1.想要调用外部类的对象 创建外部类对象 . 属性
内部类2
package com.qf.demo9;
public class MemeberInner2 {
private String name = "小花";
private int age = 2;
public void open(){
System.out.println("开花");
}
class Inner{
// 外部类和内部类属性同名的时候 默认调用的是 内部类中的属性
// 想要调用外部类的对象 创建外部类对象 . 属性
private String name = "小草";
private int age = 5;
public void sleep(){
// this 指代的是内部类的对象
MemeberInner2 memeberInner2 = new MemeberInner2();
System.out.println(memeberInner2.name);
System.out.println("冬眠");
}
}
/**
* 使用场景: 这个内部类只可以帮助 这一个外部类实现外部类的需求
*
*/
}
网友评论