成员内部类

package com.hisoft.java.DifferentClass;
/**
 * 外部类的构造方法先于内部类构造方法执行
 *
 */
public class MyOuterClass {
    String outValue;
    static String name;
    MyInnerClass myinner;
//在类内部定义的类叫内部类,定义在外部类内部,外部类方法的外部叫成员内部类,也加全局内部类
//    在成员内部类中不能定义静态方法
//    成员内部类可以直接调用外部类的成员变量和成员方法
    class MyInnerClass {
        String name;
        public MyInnerClass() {
            System.out.println(" this is myinnerclass 构造方法");
        }
        public MyInnerClass(String name) {
            System.out.println(" this is myinnerclass 有参构造方法 "+name);
        }
        String inValue ="this is 内部类的变量";
        public void testInner() {
            System.out.println("this is testInner() ");
            System.out.println("this outValue is"+outValue);
            name="张三";
            run();
        }
//        public void run(){
//            System.out.println("this is myinnerclass run()");
//        }
    }
    private void run(){
//        外部类访问内部类成员必须通过内部类对象进行方法
        System.out.println(myinner.name);
    }
//    在main方法中实例内部类对象,要通过外部类对象来进行实例化内部类对象
    public static void main(String[] args) {
        MyOuterClass myout = new MyOuterClass("zs");
        myout.run();
//        MyInnerClass myinner = myout.new MyInnerClass();
    }
    public MyOuterClass(String outValue) {
        System.out.println("this is myout 构造方法");
        myinner = new MyInnerClass(outValue);
    }

	public static void main(String[] args) {
		在其他类中实例成员内部类
		MyOuterClass myout = new MyOuterClass("");
		MyInnerClass myinner = myout.new MyInnerClass();//对象的声明
		myinner.testInner();
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值