Java面向对象之内部类(访问格式)
一、基础概念
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面向对象之内部类(访问格式)的更多相关文章
- Java面向对象之内部类(匿名内部类)
一.基础概念 匿名内部类:简化书写的内部类.其实匿名内部类就是一个子类对象. 前提:内部类需要继承或者实现外部的类或者接口. 格式:new 父类或者接口(){定义子类的内容} 二.将内部类定义到局部的 ...
- JAVA基础之内部类
JAVA基础之内部类 2017-01-13 1.java中的内部类都有什么?! 成员内部类 局部内部类 匿名内部类 静态内部类 2.内部类详解 •成员内部类 在一个类的内部再创建一个类,成为内部类 1 ...
- 黑马程序员——JAVA基础之内部类,匿名内部类
------- android培训.java培训.期待与您交流! ---------- 内部类 将一个类定义在另一个类的里面,对里面那个类就称为内部类(内置类,嵌套类). 内部类访问特点: • 内部 ...
- Java系列之内部类
今天温习一下 Java 中的内部类,内部类一般有如下几种:静态内部类.成员内部类.匿名内部类和方法内部类,下文中将主要介绍静态内部类和成员内部类,主要内容如下: 概述 静态内部类 成员内部类 匿名内部 ...
- JAVA面向对象-----成员内部类的访问方式
成员内部类的访问方式 1.内部类可以直接访问外部类的成员属性.(孙悟空相当于内部类飞到牛魔王的肚子里面去). 2.外部类需要访问内部类的成员属性时需要创建内部类的对象. 1.在外部类的成员函数中创建内 ...
- java学习面向对象之内部类
什么是面向对象内部类呢?所谓的内部类,即从字面意义上来理解的话,就是把类放到类当中. 那么内部类都有什么特点呢? 1.内部类可以访问包裹他的类的成员. 2.如果包裹他的类想访问被其包裹的类的话就得实例 ...
- Java学习之内部类
示例1: package com.swust.面向对象; class Person1{ private String username="zhangsan"; public Per ...
- java面向对象--包及访问控制符
多人开发同一个项目时,会出现类名称相同的情况.package就是为了避免类或接口名称重复而采用的一种措施.实际上包就是有一定层次结构的文件夹,*.class文件要保存当前类声明的和包对应的文件夹中. ...
- java面向对象5--内部类
6内部类 内部类是指在一个外部类的内部再定义一个类.类名不需要和文件夹相同. 内部类可以是静态static的,也可用public,default,protected和private修饰.(而外部顶级类 ...
随机推荐
- C过程思想,根据需求写方法就行
实现的方法有多种 Comprehensive orientate 2017/10/27 13:25:07 C过程思想,根据需求写方法就行
- C#读写EXCEL(二) ZedGraph在Asp.net中的应用
C#读写EXCEL(二) 2010-08-25 14:50:42| 分类: 默认分类 | 标签: |举报 |字号大中小 订阅 用微信 “扫一扫” 将文章分享到朋友圈. 用易信 “扫一扫” ...
- SSH连接Linux
转载自百度经验 https://jingyan.baidu.com/article/bea41d439d16d7b4c51be619.html 连接Linux的工具有Putty.SSH Secure ...
- 场景中,并没有灯源的存在,但是cube却会有灯光照射的反应,这就是Light Probe Group的作用。
http://blog.csdn.net/qq617119142/article/details/41674755
- Quick Find
--------------------siwuxie095 Quick Find 这里介绍并查集的一种实现思路:Qui ...
- 使用Java读取XML数据
---------------siwuxie095 工程名:TestReadXML 包名:com.siwuxie095.xml 类名:ReadXML.java 打开资源管理器,在工程 TestRead ...
- ajax load事件
ajax.load 使用ajax 来改变div元素文本. load( url [, data][, callback] ) load()方法的传递方式根据参数data来自动指定.如果没有参数传递,则 ...
- 243. Shortest Word Distance 最短的单词index之差
[抄题]: Given a list of words and two words word1 and word2, return the shortest distance between thes ...
- mybatis 框架 的应用之三(操作两张没有关联的表,存在主键和外键关系)
#注意:要配置开启多条语句操作,否则会报错( org.apache.ibatis.exceptions.PersistenceException) lf-driver=com.mysql.jdbc.D ...
- 面试题:缓存Redis与Memcached的比较 有用
Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载. 它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态.数据库驱动网站的速度. Memca ...