zoukankan      html  css  js  c++  java
  • 静态内部类:

    1、用static修饰的内部类,称为静态内部类,完全属于外部类本身,不属于外部类某一个对象

    2、static关键字的作用是把修饰的成员变成类相关,而不是实例相关

    3、静态内部类可以包含静态成员,也可以包含非静态成员

    4、静态类内部不可以访问外部类的实例成员,只能访问外部类的类成员,即使是静态内部类的实例方法也不能访问外部类的实例成员,只能访问外部类的静态成员

    5、外部类不可以定义为静态类,Java中静态类只有一种,那就是静态内部类,顶级类不能用static 修饰

    public class StaticClassW{
    	private int a=5;
    	private static int b=10;
    	
    	private static class StaticClassN{
    		public static int c=20;
    		public int d=30;
    		public static void print(){
    			//-下面代码会报错,静态内部类不能访问外部类实例成员
    			//System.out.println(a);
    
    			//-静态内部类只可以访问外部类类成员
    			System.out.println(b);
    		}
    
    		public void printA(){
    			System.out.println(d);
    		}
    	}
    
    	private static class StaticClassNN{
    		public int d=40;
    
    		public void printA(){
    			System.out.println(d);
    		}
    	}
    
    	public static void main(String[] args){
    		//-要想访问静态内部类的实例成员,需先创建实例对象,才可以调用,因为实例成员是属于实例的
    		StaticClassN sc=new StaticClassN();
    		sc.printA();
    
    		StaticClassNN sc1=new StaticClassNN();
    		sc1.printA();
    		
    		//-访问静态内部类的类成员,可以直接由该类访问,因为类成员是属于类的
    		StaticClassN.print();
    		System.out.println(StaticClassN.c);
    
    		//-要想访问静态内部类的实例成员,需先创建实例对象,才可以调用,因为实例成员是属于实例的,下面代码编译就会报错
    		//StaticClassN.printA();
    		
    	}
    }
    

     编译结果:

     运行结果:

    注:编译结果中$1.class为匿名类

  • 相关阅读:
    在 Asp.NET MVC 中使用 SignalR 实现推送功能
    开发高效的Tag标签系统数据库设计
    【译】ASP.NET MVC 5 官方教程
    介绍 ASP.NET Identity
    iOS使用UIWebView遇到Error Domain=WebKitErrorDomain Code=101 “The operation couldn’t be completed. (WebKitErrorDomain error 101
    浏览器是怎样工作的:渲染引擎,HTML解析
    堆 和 栈的 区别(经典)
    Javascript的堆和栈的简单理解
    页面呈现、重绘、回流。
    什么是 dynaTrace Ajax
  • 原文地址:https://www.cnblogs.com/baby-zhude/p/8279955.html
Copyright © 2011-2022 走看看