java中的静态内部类

静态内部类是static修饰的内部类

静态内部类的特点:

  1.静态内部类不能直接访问外部类的非静态成员,但是可以通过new 外部类().成员的方式访问;

  2.如果外部类中的静态成员和静态内部类中的成员名称相同,可以通过类名.静态成员访问外部类的静态成员,

   如果外部类中的静态成员和静态内部类中的成员名称不同,则可直接通过静态成员名称访问外部类的静态成员;

  3.创建静态内部类的对象时不需要外部类的对象,直接用 静态内部类 对象名= new 静态内部类();

 1 package com.imooc.test003;
 2
 3 public class Outer {
 4
 5     private int a = 10;//外部类的普通成员变量
 6     private static int b = 20;//外部类的静态成员变量
 7     private static int c = 30;//外部类的静态成员变量
 8
 9     //内部类Inner
10     public static class Inner{
11
12         private int b = 40;
13
14         public void test(){
15             System.out.println("访问外部类中的普通成员变量a:" + new Outer().a);
16             System.out.println("访问外部类中与内部类中成员变量同名的静态成员变量b:" + Outer.b);
17             System.out.println("访问内部类中的普通成员变量b:" + b);
18             System.out.println("访问外部类中与内部类中成员变量不同名的静态成员变量c:" + c);
19         }
20
21     }
22
23     public static void main(String[] args){
24         Inner in = new Inner();//创建内部类的对象
25         in.test();
26     }
27
28 }

   参考:慕课网(http://www.imooc.com/)

时间: 2024-08-29 15:10:00

java中的静态内部类的相关文章

Java 中的静态内部类

静态内部类是 static 修饰的内部类,这种内部类的特点是: 1. 静态内部类不能访问外部类的非静态成员 2. 如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员 3. 创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名= new 内部类(); 运行结果 : 

Java基础(十五):Java 中的内部类

问:什么是内部类呢? 答:内部类( Inner Class )就是定义在另外一个类里面的类.与之对应,包含内部类的类被称为外部类. 问:那为什么要将一个类定义在另一个类里面呢?清清爽爽的独立的一个类多好啊!! 答:内部类的主要作用如下: 1. 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类 2. 内部类的方法可以直接访问外部类的所有数据,包括私有的数据 3. 内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便 问:内部类有几种呢? 答:内部

java中的Static class

Java中的类可以是static吗?答案是可以.在java中我们可以有静态实例变量.静态方法.静态块.类也可以是静态的. java允许我们在一个类里面定义静态类.比如内部类(nested class).把nested class封闭起来的类叫外部类.在java中,我们不能用static修饰顶级类(top level class).只有内部类可以为static. 静态内部类和非静态内部类之间到底有什么不同呢?下面是两者间主要的不同. (1)内部静态类不需要有指向外部类的引用.但非静态内部类需要持有

java中内部类的积累

放在一个类的内部的类我们就叫内部类. 二. 作用 1.内部类可以很好的实现隐藏 一般的非内部类,是不允许有 private 与protected权限的,但内部类可以 2.内部类拥有外围类的所有元素的访问权限 3.可是实现多重继承 4.可以避免修改接口而实现同一个类中两种同名方法的调用. 提起Java内部类(Inner Class)可能很多人不太熟悉,实际上类似的概念在C++里也有,那就是嵌套类(Nested Class),关于这两者的区别与联系,在下文中会有对比.内部类从表面上看,就是在类中又定

[转]java中的Static class

转自:http://www.cnblogs.com/kissazi2/p/3971065.html Java中的类可以是static吗?答案是可以.在java中我们可以有静态实例变量.静态方法.静态块.类也可以是静态的. java允许我们在一个类里面定义静态类.比如内部类(nested class).把nested class封闭起来的类叫外部类.在java中,我们不能用static修饰顶级类(top level class).只有内部类可以为static. 静态内部类和非静态内部类之间到底有什

Java中的内部类(成员内部类、静态内部类、局部内部类、匿名内部类)

Java中的内部类(成员内部类.静态内部类.局部内部类.匿名内部类) 神话丿小王子的博客主页 我们先看这样一段话:人是由大脑.肢体.器官等身体结果组成.而组成我们人体的心脏它也有自己的属性和行为(血液.跳动),显然,此处不能单方面用属性或者方法表示一个心脏了,而需要一个类,但是这个类要依赖于人这个类存在(因为心脏不能脱离人体而存活,当然不考虑现今社会的发达科技,只从正常情况下来说),所心脏以需要写在人类的内部.内部类就相当于其中的某个器官之一. 首先看看什么是内部类:在类的内部定义另一个类.没错

Java中内部类揭秘(一):外部类与非静态内部类的”相互可见性“

声明:本博客为原创博客,未经允许,不得转载!原文链接为 http://blog.csdn.net/bettarwang/article/details/27012421. 我们都知道,非静态内部类可以访问外部类的私有成员(包括私有变量和方法),这也正是使用非静态内部类与普通类的一个重要区别:非静态内部类是依赖于外部类对象而存在的,这种依赖就包括它要能自由地访问外部类对象的所有成员(因为private成员都可以访问了,其他权限的成员更不在话下.不过一般来说一个内部类只会访问外部类的部分成员而不是全

Java中的嵌套类、内部类、静态内部类

在Java中我们在一个类的内部再定义一个类,如下所示: class OuterClass { ... class NestedClass { ... } } 那么在上面的例子中我们称OuterClass为外围类(enclosing class),里面的那个类称之为嵌套类(Nested Class). 嵌套类可以分为两种,静态的和非静态的,即静态嵌套类和非静态嵌套类.非静态嵌套类又叫做内部类(Inner Class).我们通常所说的静态内部类其实是不严格的,严格的说应该叫做静态嵌套类(Static

Java中各种(类、方法、属性)访问修饰符与修饰符的说明

类: 访问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称 (访问修饰符与修饰符的位置可以互换) 访问修饰符 名称 说明 备注 public 可以被本项目的所有类访问(使用),其他项目若想使用本项目中的类,必须将本项目打包为jar包,然后加入到classpath中 public类必须定义在和类名相同的同名文件中 (default) 只能被同一个包中的类访问(使用) 默认的访问权限,可以省略此关键字,可以定义在和public类的同一个文件中 修饰符 名称