方法(局部)内部类

方法内部类就是定义在外部类方法中的内部类,又称为方法内部类。
1.方法中定义的局部变量只能在方法中使用,同理方法内部类定义在方法内部,所以作用范围也只在方法内。
2.方法内不能定义静态成员,方法内部类中同样不能包含静态成员。
3.不能用public、private、protected修饰符进行成员的访问设定。
4.类中可以包含final、abstract修饰的成员。
对方法成员的约束,对方法内部类同样有效。
我们创建一个Person类,再创建一个getHeart方法,在其中创建一个命名为Heart的方法内部类

package people;
//外部类
public class Person {
    public static int age;
    public Object getHeart(){
        //方法内部类
        class Heart{
            public int age=13;
            int temp=22;
            public void say(){
                System.out.println("Hello");
            }
            public void  eat(){
            }
            public String beat(){
                new Person().eat();
                //调用的是Person外部类中的age
                return Person.age+"心脏再跳动!";
            }
        }
        return new Heart().beat();
    }
    public void eat(){
        System.out.println("人会吃东西");
    }
}

方法内部类作为方法的成员,所有的动作只能通过这个方法进行,所以返回值应该调用其中的方法,将方法的返回结果带回去。如返回值为Heart内部类的beat方法。
创建一个测试类命名为PeopelTest

package people;
//将内部类实例化
public class PeopleTest {
    public static void main(String[] args) {
        Person lili=new Person();
        lili.age=12;
        System.out.println(lili.getHeart());
    }
}

方法内部类的对象无法直接获取只有通过调用getHeart方法来产生Heart对象,所以我们还是要借助外部类的实例对象,通过实例对象的方法来获取方法内部类的实例对象。
运行结果

人会吃东西
12心脏再跳动!

在这里输出age的值为12,但是在方法内部类中给age赋值为13,之所以输出为12,是因为在Heart方法中的返回值的age为Person外部类的属性,若想返回方法内部类的值则修改为

return age+"心脏再跳动";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值