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
  • 相关阅读:
    LintCode "Maximum Gap"
    LintCode "Wood Cut"
    LintCode "Expression Evaluation"
    LintCode "Find Peak Element II"
    LintCode "Remove Node in Binary Search Tree"
    LintCode "Delete Digits"
    LintCode "Binary Representation"
    LeetCode "Game of Life"
    LintCode "Coins in a Line"
    LintCode "Word Break"
  • 原文地址:https://www.cnblogs.com/java20130723/p/3211373.html
Copyright © 2011-2022 走看看