内部类概念:顾名思义,就是将一个类定义在另一个个类内部。内部的类称之为内部类 。

内部类的主要特点:
1.内部类可以很好的实现隐藏,可以使用protected、private修饰符。
2.内部类可以直接访问外部类的所有成员,包括私有成员。
3.外部类不能直接访问内部类的成员,必须首先要建立内部类的对象才可以访问。
4.内部类可以解决一些问题,比如间接地实现继承。可以避免修改接口而实现同一个类

中两种同名方法的调用

内部类有四种:

成员内部类,静态内部类,匿名内部类,局部内部类

起名字时,$符号是合法字符,是为内部类准备的

成员的内部类特点:
1.成员内部类属于外部类的实例成员,成员内部类可以有public,private,default,

protected权限修饰符。在成员内部类中访问外部类的成员方法和属性,要使用“外部

类名.this.成员方法”和“外部类名.this.成员属性”的形式。
2.创建成员内部类的实例使用“外部类名.内部类名 实例名=外部类实例名.new 内部

类构造方法(参数)”的形式。
成员内部类的限制:
1.成员内部类不能与外部类重名
2.不能在成员内部类中定义static属性、方法和类(static final形式的乘凉定义除外)因

为一个成员内部类实例必然与一个外部类实例关联,static成员完全可以移到其外部类

去。

public class MemberInnerClassDemo {

	public static void main(String[] args) {
// TODO Auto-generated method stub
Outer1 outer1 = new Outer1();
Outer1.Inner1 inner1 = outer1.new Inner1();
outer1.outer();
inner1.inner();
} } class Outer1{
private String name = "张三";
private int num1 = 1; public void outer() {
System.out.println(name+" "+num1);
//System.out.println(num2);外部类不能直接访问内部类成员
Inner1 inner1 = new Inner1();//外部类可以实例化内部类,访问内部类
inner1.inner();
} class Inner1{//如果内部类声明为private类型,则外部无法访问通过外部类内部类
private String name = "李四";
private int num2 = 2;
//private static final int num3 = 3;在成员内部类中可以声明静态常量
//private static int num3 = 3;在成员内部类中不能声明静态成员,包括属性和方法
public void inner() {
System.out.println(name+" "+num2);
System.out.println(Outer1.this.name+" "+Outer1.this.num1);//内部类调用外部类属性
outer();//内部类可以直接访问外部类的属性和方法,包括私有的
Outer1.this.outer();//和上面的一样,区别是如果内部类出现重名,那么这样可以解决
}
}
}

  

java内部类之成员内部类的更多相关文章

  1. java内部类之成员内部类之局部内部类

    局部内部类特点: 1.定义在代码块.方法体内的类叫局部内部类 2.局部内部类访问外部类的属性和方法使用“外部类名.this.属性名”和“外部类名.this.方法名(参数)”的形式 3.对外部世界完全隐 ...

  2. Java -- 内部类, 成员内部类,局部内部类,匿名内部类,闭包和回调, 枚举类

    1. 成员内部类分为  静态内部类 和 非静态内部类. 非静态内部类 和 外部类的其他成员一样处理, 非静态内部类可以访问外部类的private的属性,而外部类不能访问非静态内部类的属性,需要实例非静 ...

  3. java内部类之成员内部类之匿名内部类

    匿名内部类特点:1.匿名内部类是没有名称的内部类,没办法引用它们.必须在创建时,作为new语句的一部分来声明并创建它们的实例.2.匿名内部类必须继承一个类(抽象的.非抽象的都可以)或者实现一个接口.如 ...

  4. java内部类之成员内部类实例

    第一个是如何实现同时继承两个类 public class MultiExtendsDemo { public static void main(String[] args) { // TODO Aut ...

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

    Java中的内部类(成员内部类.静态内部类.局部内部类.匿名内部类) 神话丿小王子的博客主页 我们先看这样一段话:人是由大脑.肢体.器官等身体结果组成.而组成我们人体的心脏它也有自己的属性和行为(血液 ...

  6. Java内部类小程序(成员内部类,静态内部类,匿名内部类)

    /** * 测试java内部类(成员内部类,静态内部类,匿名内部类) * 局部内部类不常用,就不写了. * @package :java05 * @author shaobn * @Describe ...

  7. Java 内部类(成员内部类、局部内部类、静态内部类,匿名内部类)

    一.什么是内部类? 内部类是指在一个外部类的内部再定义一个类.内部类作为外部类的一个成员,并且依附于外部类而存在的.内部类可为静态,可用protected和private修饰(而外部类只能使用publ ...

  8. 【09-04】java内部类学习笔记

    java中的内部类 静态内部类 成员内部类 方法内部类 匿名内部类 1.静态内部类 class Outer { private static String outer = "outer&qu ...

  9. Java内部类详解

    Java内部类详解 说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉.原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法.今天我们就 ...

随机推荐

  1. jQueryEasyUI 学习笔记

    jQuery EasyUI是什么? jQuery EasyUI是一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面.开 ...

  2. 问题集录--Android:解决Studio新建项目时,在 Building gradle project info 一直卡住

    Android Studio导入项目的时候,一直卡在Building gradle project info这一步,主要原因还是因为被墙的结果.gradle官网虽然可以访问,但是速度连蜗牛都赶不上.. ...

  3. [转]Sql Server 分页存储过程

    本文转自: 版权声明:作者:jiankunking 出处:http://blog.csdn.net/jiankunking  本文版权归作者和CSDN共有,欢迎转载,但未经作者同意必须保留此段声明,且 ...

  4. [转]ASP.NET web API 2 OData enhancements

    本文转自:https://www.pluralsight.com/blog/tutorials/asp-net-web-api-2-odata-enhancements Along with the ...

  5. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  6. [javaSE] GUI(打开文件对话框)

    使用FileDialog可以打开文件对话框,根据模式不同,可以分为打开文件和保存文件对话框 获取FileDialog对象,new出来,参数:所属Frame对象,String的标题,FileDialog ...

  7. SpringMVC拦截器的实现单方登陆

    过滤器跟拦截器的区别 ①拦截器是基于java的反射机制的,而过滤器是基于函数回调.②拦截器不依赖与servlet容器,过滤器依赖与servlet容器.③拦截器只能对action请求起作用,而过滤器则可 ...

  8. MySQL,Oracle,PostgreSQL,mongoDB 通过web方式管理维护, 提高开发及运维效率

    在开发及项目运维中,对数据库的操作大家目前都是使用客户端工具进行操作,例如MySQL的客户端工具navicat,Oracle的客户端工具 PL/SQL Developer, MSSQL的客户端工具查询 ...

  9. sql: postgreSQL sql script

    SELECT * from pg_class c,pg_attribute a,pg_type t where c.relname='BookKindList' and a.attnum>0 a ...

  10. Bzoj3597: [Scoi2014]方伯伯运椰子

    题面 传送门 Sol 消圈定理:如果一个费用流网络的残量网络有负环,那么这个费用流不优 于是这个题就可以建出残量网络,然后分数规划跑负环了 # include <bits/stdc++.h> ...