一、基础概念

  1.内部类是定义在类中的类。A类需要直接访问B类中的成员时,可以将A类定义到B类中,作为B类的内部类存在。

  2.内部类可以相当于外部类中的一个成员,可以被成员修饰符所修饰。(如:public private static)

  3.静态内部类可以相当于一个外部类进行使用。

  4.非静态的内部类只允许定义静态的常量,不能定义其他静态成员。

  5.访问规则:
    内部类可以直接访问外部类中的成员,因为内部类持有了外部类的引用。外部类名.this
    外部类要访问内部类需要创建内部类的对象。

二、实例代码

 //外部类Outer
class Outer
{
private static int num = 4; //内部类Inner_1
class Inner_1
{ void show1()
{
System.out.println("内部类Inner_1 ,show1 "+num);//内部类Inner_1可以直接访问外部类Outer中的成员num
}
} //外部类中的方法Method访问内部类Inner_1中的方法show1
public void Method()
{
Inner_1 in = new Inner_1();
in.show1();
} //静态内部类Inner_2
static class Inner_2
{
void show2()
{
System.out.println("内部静态类Inner_2 ,show2 "+num);
}
static void show3()
{
System.out.println("内部静态类Inner_2 ,show3 "+num);
}
} class Inner_4
{
static final int count = 5; //内部类中定义静态的常量
void show4()
{
System.out.println("内部类Inner_4 ,show4 "+count);
}
}
} class InnerClassDemo
{
public static void main(String[] args)
{
//创建外部类对象,访问内部类。
Outer out = new Outer();
out.Method(); //创建非静态的内部类对象,可以通过创建外部类对象,被外部其他程序访问。
Outer.Inner_1 i1 = new Outer().new Inner_1();
i1.show1(); //创建静态内部类对象,并访问非静态成员。
Outer.Inner_2 i2 = new Outer.Inner_2();
i2.show2(); //创建静态内部类对象,并访问静态成员。
Outer.Inner_2.show3();
Outer.Inner_2 i4 = new Outer.Inner_2();
i4.show3(); //创建非静态的内部类对象,并访问静态变量。
Outer.Inner_4 i5 = new Outer().new Inner_4();
i5.show4();
}
}
三、代码运行

  

Java面向对象之内部类(访问格式)的更多相关文章

  1. Java面向对象之内部类(匿名内部类)

    一.基础概念 匿名内部类:简化书写的内部类.其实匿名内部类就是一个子类对象. 前提:内部类需要继承或者实现外部的类或者接口. 格式:new 父类或者接口(){定义子类的内容} 二.将内部类定义到局部的 ...

  2. JAVA基础之内部类

    JAVA基础之内部类 2017-01-13 1.java中的内部类都有什么?! 成员内部类 局部内部类 匿名内部类 静态内部类 2.内部类详解 •成员内部类 在一个类的内部再创建一个类,成为内部类 1 ...

  3. 黑马程序员——JAVA基础之内部类,匿名内部类

    ------- android培训.java培训.期待与您交流! ---------- 内部类 将一个类定义在另一个类的里面,对里面那个类就称为内部类(内置类,嵌套类). 内部类访问特点: •  内部 ...

  4. Java系列之内部类

    今天温习一下 Java 中的内部类,内部类一般有如下几种:静态内部类.成员内部类.匿名内部类和方法内部类,下文中将主要介绍静态内部类和成员内部类,主要内容如下: 概述 静态内部类 成员内部类 匿名内部 ...

  5. JAVA面向对象-----成员内部类的访问方式

    成员内部类的访问方式 1.内部类可以直接访问外部类的成员属性.(孙悟空相当于内部类飞到牛魔王的肚子里面去). 2.外部类需要访问内部类的成员属性时需要创建内部类的对象. 1.在外部类的成员函数中创建内 ...

  6. java学习面向对象之内部类

    什么是面向对象内部类呢?所谓的内部类,即从字面意义上来理解的话,就是把类放到类当中. 那么内部类都有什么特点呢? 1.内部类可以访问包裹他的类的成员. 2.如果包裹他的类想访问被其包裹的类的话就得实例 ...

  7. Java学习之内部类

    示例1: package com.swust.面向对象; class Person1{ private String username="zhangsan"; public Per ...

  8. java面向对象--包及访问控制符

    多人开发同一个项目时,会出现类名称相同的情况.package就是为了避免类或接口名称重复而采用的一种措施.实际上包就是有一定层次结构的文件夹,*.class文件要保存当前类声明的和包对应的文件夹中. ...

  9. java面向对象5--内部类

    6内部类 内部类是指在一个外部类的内部再定义一个类.类名不需要和文件夹相同. 内部类可以是静态static的,也可用public,default,protected和private修饰.(而外部顶级类 ...

随机推荐

  1. C过程思想,根据需求写方法就行

     实现的方法有多种 Comprehensive orientate 2017/10/27 13:25:07 C过程思想,根据需求写方法就行  

  2. C#读写EXCEL(二) ZedGraph在Asp.net中的应用

      C#读写EXCEL(二) 2010-08-25 14:50:42|  分类: 默认分类 |  标签: |举报 |字号大中小 订阅 用微信  “扫一扫” 将文章分享到朋友圈. 用易信  “扫一扫” ...

  3. SSH连接Linux

    转载自百度经验 https://jingyan.baidu.com/article/bea41d439d16d7b4c51be619.html 连接Linux的工具有Putty.SSH Secure ...

  4. 场景中,并没有灯源的存在,但是cube却会有灯光照射的反应,这就是Light Probe Group的作用。

    http://blog.csdn.net/qq617119142/article/details/41674755

  5. Quick Find

    --------------------siwuxie095                                 Quick Find         这里介绍并查集的一种实现思路:Qui ...

  6. 使用Java读取XML数据

    ---------------siwuxie095 工程名:TestReadXML 包名:com.siwuxie095.xml 类名:ReadXML.java 打开资源管理器,在工程 TestRead ...

  7. ajax load事件

    ajax.load  使用ajax 来改变div元素文本. load( url [, data][, callback] ) load()方法的传递方式根据参数data来自动指定.如果没有参数传递,则 ...

  8. 243. Shortest Word Distance 最短的单词index之差

    [抄题]: Given a list of words and two words word1 and word2, return the shortest distance between thes ...

  9. mybatis 框架 的应用之三(操作两张没有关联的表,存在主键和外键关系)

    #注意:要配置开启多条语句操作,否则会报错( org.apache.ibatis.exceptions.PersistenceException) lf-driver=com.mysql.jdbc.D ...

  10. 面试题:缓存Redis与Memcached的比较 有用

    Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载. 它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态.数据库驱动网站的速度.    Memca ...