内部类的访问

代码:

#include <iostream>
using namespace std;
class OuterClass
{
public:
    OuterClass()
    {
        m_outerInt = 10;
    }
private:
    int m_outerInt ;
public:
    class InterClass //内部类
    {
    public:
        InterClass()
        {
            m_inerInt = 100;
        }
    private:
        int m_inerInt;
    public:
        void displayIner()
        {
            cout<<"显示内部类数据:"<<m_inerInt<<endl;
        }
    };//end内部类
public://外部类方法
    void displayOuter()
    {
        cout<<"显示外部类成员:"<<m_outerInt<<endl;
    }
};

int main()
{
    OuterClass outer;
    OuterClass::InterClass iner;
    outer.displayOuter();
    iner.displayIner();
    system("pause");
    return 0;
}

注意,内部类用的是public属性,如果改成private,就会报错,在main函数中不能访问外部类的私有成员(内部类)

比如类A中有一个内部类B
private是私有的,只有在A内部可以使用B
public是公有的,其他类可以通过A.B来使用B类型

如果内部类是私有的,那么在创建外部类对象的时候,内部类会自动创建一个对象吗?如果会自动创建一个内部类对象,那么内部类对象名是什么?我怎样通过外部类对象.内部类对象来使用内部类?

时间: 2024-08-25 21:29:43

内部类的访问的相关文章

深入理解Java中为什么内部类可以访问外部类的成员

内部类简介 虽然Java是一门相对比较简单的编程语言,但是对于初学者, 还是有很多东西感觉云里雾里, 理解的不是很清晰.内部类就是一个经常让初学者感到迷惑的特性. 即使现在我自认为Java学的不错了, 但是依然不是很清楚.其中一个疑惑就是为什么内部类对象可以访问外部类对象中的成员(包括成员变量和成员方法)? 早就想对内部类这个特性一探究竟了,今天终于抽出时间把它研究了一下. 内部类就是定义在一个类内部的类.定义在类内部的类有两种情况:一种是被static关键字修饰的, 叫做静态内部类, 另一种是

JAVA中内部类(匿名内部类)访问的局部变量为什么要用final修饰?

本文主要记录:在JAVA中,(局部)内部类访问某个局部变量,为什么这个局部变量一定需要用final 关键字修饰? 首先,什么是局部变量?这里的局部是:在方法里面定义的变量. 因此,内部类能够访问某局部变量,说明这个内部类不是在类中定义的内部类,而是在方法中定义的内部类,称之为:局部内部类. 局部变量的作用域:局部变量是在某个方法中定义,当该方法执行完成后,局部变量也就消失了.[局部变量分配在JVM的虚拟机栈中,这部分内存空间随着程序的执行自动回收],也即:局部变量的作用域是在 “方法的范围内”.

定义在方法中的内部类能否访问该方法的局部变量?

定义在方法中的内部类当然是可以访问方法中的局部变量的,访问的方法就是在局部变量上添加final关键字 (1)内部类是外部类的一个成员,就像外部类的成员方法一样,所以内部类有权限访问外部类的所有成员,包括private的.(2)内部类不能访问外部类方法中的局部变量,除非变量是final的(一般发生在方法中定义的内部类).这是因为局部变量的生命周期原因. class Outer{    private int a;    public class Inner{        private int

JavaSE8基础 内部类可以访问外部类的私有成员

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码: //内部类 就是在一个类的内部在定义一个类 //外部类 class TestOuter { private int num = 10; //内部类 private class TestInner { public void showInner() { //内部类可以访问外部类的私有成员 System.out.

java 内部类如何访问外部类的对象

用this就可以做到 实例如下: package innerclass; /** * 内部类如何得到外部类的对象 *  * */ public class DotThis { public class Inner { //返回外部内的对象 public DotThis outer(){ return DotThis.this; } } public void print(){ System.out.println("Out class"); } /** * 得到内部内的对象 */ pu

Android(java)学习笔记150:为什么局部内部类只能访问外部类中的 final型的常量

为什么匿名内部类参数必须为final类型: 1)  从程序设计语言的理论上:局部内部类(即:定义在方法中的内部类),由于本身就是在方法内部(可出现在形式参数定义处或者方法体处),因而访问方法中的局部变量(形式参数或局部变量)是天经地义的,是很自然的. 2) 为什么JAVA中要加上一条限制:只能访问final型的局部变量? JAVA语言的编译程序的设计者当然全实现:局部内部类能访问方法中的所有的局部变量(因为:从理论上这是很自然的要求),但是:编译技术是无法实现的或代价极高. 至于为什么只能是fi

普通内部类的访问规则

/*什么是内部类:类里面的类好处:内部类可以直接访问外部类的成员(因为内部类中持有外部类的引用 外部类.this)外部类要访问内部类成员,必须建立内部类对象 @author WangShuang */public class Test {public static void main(String[] args) {Outer outer = new Outer();outer.omethod();Outer.Inner inner = new Outer().new Inner();//内部类

Java学习笔记23---内部类之局部内部类只能访问final的局部变量

局部内部类是定义在方法体或代码块中的类,在笔记19中已有过简单介绍. 今天要讨论的是局部内部类为什么只能访问为常量的局部变量. 作者: 博客园--蝉蝉 请尊重作者劳动成果,转载请在标题注明"转载"字样,并标明原文链接: http://www.cnblogs.com/chanchan/p/8402411.html 参考资料: http://www.cnblogs.com/dolphin0520/p/3811445.html 1.首先来了解一下局部内部类是如何访问局部变量的 Person类

Java中,内部类的概述和内部类的访问特点和内部类的分类(内部类的位置)

内部类的概述: 把类定义在另一个类的内部,该类就被称为内部类. 举例:把类B定义在类A中,类B就被称为内部类. 内部类的访问特点: A:内部类可以直接访问外部类的成员,包括私有成员. B:外部类要想访问内部类成员,必须创建内部类的对象,通过内部类的对象去访问. 示例代码如下: 内部类的分类(内部类的位置): 原文地址:https://www.cnblogs.com/chenmingjun/p/8454006.html

外部类与内部类的访问

外部类与内部类之间的访问 内部类相当于外部类的一个成员,和其它成员处于同一个级别,因此可以在内部类中直接访问外部类的各个成员(包括私有属性). 需要注意的是在外部类中要想访问内部类的各个成员(这里也包括内部类的私有属性)就必须先实例化内部类,然后才能访问.对于为什么能访问内部类的私有属性,是因为即使内部类的成员是私有的,但是也是在外部类中,和外部类的其它成员是平等的,只不过被内部类囊括是在内部中,因此访问都必须先实例化. 例如: class NodeManager{ private Node r