zoukankan      html  css  js  c++  java
  • Java学习笔记——内部类及其调用方法

    一、static内部类的static方法

    public class Test0719_Inner_Test {
    	public static void main(String[] args) {
    		//static内部类的static方法。。。
    		Outter.InnerStatic.InnerNameee();
    		System.out.println(Outter.InnerStatic.jjj);
    		System.out.println();
    	}
    }
    class Outter {
    	String i = "非static"; 
    	static String j = "static";
    	static class InnerStatic{
    		static String jjj = "内部类的static"; 
    		public static void InnerNameee() {
    			System.out.println("static内部类的static方法。。。");
    			//static内部类访问外部类的static成员
    			System.out.println(j);
    			//static内部类访问外部类的非static成员
    			System.out.println(new Outter().i);
    		}
    	}
    }

    运行结果:
    static内部类的static方法。。。
    static
    非static
    内部类的static

    二、static内部类的非static方法

    public class Test0719_Inner_Test {
    	public static void main(String[] args) {
    		//static内部类的非static方法
    		Outter.InnerStatic inner = new Outter.InnerStatic();
    		inner.InnerName();
    		System.out.println(inner.iii);
    		System.out.println();
    	}
    }
    class Outter {
    	String i = "非static"; 
    	static String j = "static";
    	static class InnerStatic{
    		String iii = "内部类的非static";
    		public void InnerName() {
    			System.out.println("static内部类的非static方法");
    			//static内部类访问外部类的static成员
    			System.out.println(j);
    			//static内部类访问外部类的非static成员
    			System.out.println(new Outter().i);
    		}
    	}
    }

    运行结果:
    static内部类的非static方法
    static
    非static
    内部类的非static

    三、非static内部类的非static方法

    public class Test0719_Inner_Test {
    	public static void main(String[] args) {
    		//非static内部类的非static方法…………
    		Outter.InnerNoStatic innerNoStatic = new Outter().new InnerNoStatic();
    		innerNoStatic.InnerNoName();
    		System.out.println(innerNoStatic.iiiNoStatic);
    	}
    }
    class Outter {
    	String i = "非static"; 
    	static String j = "static";
    	class InnerNoStatic{
    		int iiiNoStatic = 99776;
    		public void InnerNoName() {
    			System.out.println("非static内部类的非static方法…………");
    			//非static内部类访问外部类的static成员
    			System.out.println(Outter.j);
    			//非static内部类访问外部类的非static成员
    			System.out.println(i);
    		}
    	}
    }

    运行结果:
    非static内部类的非static方法…………
    static
    非static
    99776

    四、综合练习

    package com.acc;
    
    public class Test0719_Inner2 {
    	String str = "孙洋洋";
    
    	class Text2 {
    		int i = 1;
    
    		void m2() {
    			System.out.println(new Test0719_Inner2().str);
    		}
    
    		class Text3 {
    			int k = 3;
    
    			public void m1() {
    				System.out.println("m1的"+ new Test0719_Inner2().str);
    			}
    		}
    	}
    
    	public static void main(String[] args) {
    		Test0719_Inner2.Text2 text2 = new Test0719_Inner2().new Text2();
    		text2.m2();
    		System.out.println();
    
    		Test0719_Inner2.Text2.Text3 text3 = new Test0719_Inner2().new Text2().new Text3();
    		text3.m1();
    	}
    }

    运行结果:
    孙洋洋


    m1的孙洋洋

    五、汇总

    package com.test;
    
    
    public class Test0719_Inner_Test {
    	public static void main(String[] args) {
    		//static内部类的static方法。。。
    		Outter.InnerStatic.InnerNameee();
    		System.out.println(Outter.InnerStatic.jjj);
    		System.out.println();
    		//static内部类的非static方法
    		Outter.InnerStatic inner = new Outter.InnerStatic();
    		inner.InnerName();
    		System.out.println(inner.iii);
    		System.out.println();
    		//非static内部类的非static方法…………
    		Outter.InnerNoStatic innerNoStatic = new Outter().new InnerNoStatic();
    		innerNoStatic.InnerNoName();
    		System.out.println(innerNoStatic.iiiNoStatic);
    	}
    }
    class Outter {
    	String i = "非static"; 
    	static String j = "static";
    	static class InnerStatic{
    		String iii = "内部类的非static";
    		static String jjj = "内部类的static"; 
    		public void InnerName() {
    			System.out.println("static内部类的非static方法");
    			//static内部类访问外部类的static成员
    			System.out.println(j);
    			//static内部类访问外部类的非static成员
    			System.out.println(new Outter().i);
    		}
    		public static void InnerNameee() {
    			System.out.println("static内部类的static方法。。。");
    			//static内部类访问外部类的static成员
    			System.out.println(j);
    			//static内部类访问外部类的非static成员
    			System.out.println(new Outter().i);
    		}
    	}
    	
    	class InnerNoStatic{
    		int iiiNoStatic = 99776;
    		public void InnerNoName() {
    			System.out.println("非static内部类的非static方法…………");
    			//非static内部类访问外部类的static成员
    			System.out.println(Outter.j);
    			//非static内部类访问外部类的非static成员
    			System.out.println(i);
    		}
    	}
    }

    运行结果:
    static内部类的static方法。。。
    static
    非static
    内部类的static


    static内部类的非static方法
    static
    非static
    内部类的非static


    非static内部类的非static方法…………
    static
    非static
    99776
  • 相关阅读:
    复制excel表中的数据
    微信H5页面分享获取JS-SDK
    JS中let、var、const的区别
    JS-对象常用方法整理
    JS-数组常用方法整理
    掌握一门新技术/语言需要哪些步骤?
    浅谈JavaScript中的内存管理
    js对象模型2
    ts中的装饰器
    ts中的泛型
  • 原文地址:https://www.cnblogs.com/java20130723/p/3211373.html
Copyright © 2011-2022 走看看