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

内部类的主要特点:
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. 用canvas和原生js写的一个笨鸟先飞的小游戏(暂时只有一个关卡)

    其中一个画布背景是一张图片,还有小鸟,两个管子的图片.暂时不知道怎么附上去就不添加了.这里只有源代码,css和js都是在html写着的,感觉比他们的容易吧,hah <!DOCTYPE html& ...

  2. Android运行时权限开启问题

    参考: http://www.cnblogs.com/whoislcj/p/6072718.html(重点这篇) https://www.jianshu.com/p/b4a8b3d4f587 http ...

  3. [转]MVC Razor模板引擎 @RenderBody、@RenderPage、@RenderSection及Html.RenderPartial、Html.RenderAction

    本文参考自下面文章整理 MVC Razor模板引擎 @RenderBody.@RenderPage.@RenderSection及Html.RenderPartial.Html.RenderActio ...

  4. 标准Trie字典树学习一:原理解析

    特别声明: 博文主要是学习过程中的知识整理,以便之后的查阅回顾.部分内容来源于网络(如有摘录未标注请指出).内容如有差错,也欢迎指正! 系列文章: 1. 字典树Trie学习一:原理解析 2.字典树Tr ...

  5. C#制作手机网站

    <meta name="viewport" content="width=device-width, initial-scale=1.0"> //在 ...

  6. GPUImage使用

    GPUImage项目下载地址:https://github.com/BradLarson/GPUImage.git 下载项目时如果下载不下来可以直接check一份(之前下载了好多次都是下载失败,最后没 ...

  7. hashmap的一些基础原理

    本文来源于翁舒航的博客,点击即可跳转原文观看!!!(被转载或者拷贝走的内容可能缺失图片.视频等原文的内容) 若网站将链接屏蔽,可直接拷贝原文链接到地址栏跳转观看,原文链接:https://www.cn ...

  8. K:求取两个数的最大公约数的两个算法

    相关介绍:  最大公因数,也称最大公约数.最大公因子,指两个或多个整数共有约数中最大的一个.a,b的最大公约数记为gcd(a,b).同样的,a,b,c的最大公约数记为gcd(a,b,c),多个整数的最 ...

  9. RN canvas画布大小之谜

    一.需求 在一个高640.宽360的canvas内画一些坐标点. 二.问题 坐标点只显示了一部分,剩下的点没显示(其坐标属于(640,360)区域). 三.原因 canvas默认的画布大小是高150, ...

  10. 爬虫day03之scrapy安装与使用

    参考博客 技术问题不要问,业务问题可以问是不是有一种更好的方法? scrapy windows安装 1. 安装scrapy 参考博客 https://www.cnblogs.com/wupeiqi/a ...