JavaSE---内部类
1、概述
1.1 内部类:一个类 定义在 其他类的内部,这个类被称为内部类;
1.1.1 内部类可以 放在外部类的任何位置,方法中也可以(称为局部内部类);
1.1.2 一般将内部类作为 成员内部类 使用
1.1.3 内部类大致分类:
1.1.3.1、成员内部类 :
(定义在类中)
非静态内部类:
静态内部类:
public class CYInnerClass {
/**
* 非静态成员内部类
*/
class A{
}
/**
* 静态成员内部类
*/
static class B{
}
public static void main(String[] args) {
}
}
1.1.3.2、局部内部类:
a, 定义在方法中,仅在方法中有效;
b, 不能使用任何修饰符,也不能用static修饰;
package com.exiuge.mytest.innerclass;
public class JuBuInnerClass {
private int age;
public static void main(String[] args){
class A{
int a;
}
class B extends A{
int b;
}
A a=new B();
a.a=10;
((B) a).b=11;
System.out.println(a.a+":"+((B) a).b);
}
}
1.1.3.3、匿名内部类:
a, 只使用一次;
b, 语法:
new 父类构造器(实参) | 实现接口(){ }
c, 必须 继承一个父类(最多一个) 或 实现一个接口(最多一个);
d, 不能 定义构造器,但 可以有初始化块;
e, 不能 是抽象类;
public interface NMInnerClassInterface {
}
public class NMInnerClass {
private String name;
private Integer age;
public NMInnerClass(){
}
public NMInnerClass(Integer age){
this.age=age;
}
public void say(){
/**
* 匿名内部类调用父类构造器
*/
new NMInnerClass(23){
void test(){
System.out.println("hahaha...");
}
};
/**
* 匿名内部类实现接口
*/
new NMInnerClassInterface(){
void test(){
System.out.println("hahaha...");
}
};
}
}
2、使用
2.1、在外部类 以外 使用内部类
eg:
package com.an.innerclass; /**
* @description:
* @author: anpeiyong
* @date: Created in 2019/12/26 9:01
* @since:
*/
public class CYInnerClass { /**
* 非静态成员内部类
*/
class A{ } /**
* 静态成员内部类
*/
static class B{ }
}
public class Test {
public static void main(String[] args) {
CYInnerClass cyInnerClass=new CYInnerClass();
CYInnerClass.A a=cyInnerClass.new A();
}
}
JavaSE---内部类的更多相关文章
- Object类、包装类、内部类详解
1.Object类 1.概念: 1.1 所有类在创建时都默认继承了java.lang.Object 1.2 所有类对象都可以声明为类对象的引用 Object ob1=new String(); Obj ...
- JavaSE学习笔记(5)---内部类和String类
JavaSE学习笔记(5)---内部类和String类 一.内部类基础 转自菜鸟教程 在 Java 中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类.广泛意义上的内部类一般来 ...
- JavaSE 复习_4 接口多态和内部类
△abstract不可以修饰成员变量 △一个类可以没有抽象方法,可以定义为抽象类,这样的目的是不能让其他类建立本类对象,交给子类完成. △abstract和static(可以被类名调用方法,但是抽象方 ...
- JavaSE学习总结(六)——接口、抽象类、内部类
一.不需要实例化的原因 看一个示例: package com.zhangguo.chapter5.s1; /**动物园*/ public class Zoo { public static void ...
- JAVASE(十一) 高级类特性: abstract 、模板模式、interface、内部类、枚举、注解
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 1.关键字 abstract 1.1.abstract可以修饰:类,方法 1.2.abstract修饰方 ...
- JavaSE 学习笔记03丨继承、接口、多态、内部类
Chapter. 5 继承 继承作为面向对象的三大特征之一,它是多态的前提.它主要解决的问题是共性抽取. Java中的继承,是单继承.多级继承的. 已存在的类,被称为超类.基类.父类(parent c ...
- JAVASE笔记回顾
第一部分,JAVA基础和面向对象 part01 入门与开发环境搭建 1: 计算机基础知识(了解)(1)计算机(2)计算机硬件(3)计算机软件系统软件:windows,linux,mac应用软件:QQ, ...
- Java中的嵌套类和内部类
以前看<Java编程思想>的时候,看到过嵌套类跟内部类的区别,不过后来就把它们的概念给忘了吧.昨天在看<数据结构与算法分析(Java语言版)>的时候,又遇到了这个概念,当时就很 ...
- JavaSE集合(十)之Map
前面给大家介绍了集合家族中的Collection家族,这一篇给大家分享的是集合中的另一个家族就是Map家族.以前的时候学习Map的时候没有很认真的去学习,我觉得很多东西还是不是很清楚. 这次我将总结的 ...
- java 内部类 嵌套类
.markdown-body { color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI" ...
随机推荐
- poj3557 Map Generator
传送门 题目大意 给定两个数n,p;表示n个点中任意两点连边的概率为p,求生成的图是个连通块的概率 分析 我们发现直接求产生联通块的概率并不容易,于是我们转而考虑计算不能生成联通块的概率,公式如下: ...
- LeetCode第110题:平衡二叉树
问题描述 给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1. 示例 1: 给定二叉树 [3,9,20,nu ...
- 记一次OOM问题排查过程
上周运维反馈线上程序出现了OOM,程序日志中的输出为 Exception in thread "http-nio-8080-exec-1027" java.lang.OutOfMe ...
- Linux下boost编译安装
说明:下面内容仅针对Linux环境(boost官网为:http://www.boost.org/,可从这里下载它的源代码包,这里要求下载.tar.gz包,而非.7z..zip或bz2包). 在当前目录 ...
- idea中解决Error:java: Compilation failed: internal java compiler error的问题
项目中,使用gradle做项目构建,当我们想更改JDK的版本时,报以下错误: Information:Using javac 1.8.0_111 to compile java sourcesInfo ...
- 【Android学习】三种布局<include />、<merge />、<ViewStub />
1.布局重用<include /> <include />标签能够重用布局文件,使用起来非常简单 <include layout="@layout/layout ...
- C# WinForm:无法访问已释放的对象
C#在父窗口中调用子窗口的过程: 1. 创建子窗口对象 2. 显示子窗口对象 笔者的程序中,主窗体MainFrm通过菜单调用子窗口ChildFrm.在窗体中定义了子窗口对象,然后在菜单项点击事件中 ...
- MySQL的索引单表优化案例分析
建表 建立本次优化案例中所需的数据库及数据表 CREATE DATABASE db0206; USE db0206; CREATE TABLE `db0206`.`article`( `id` INT ...
- vue 路由里面的 hash 和 history
对于 Vue 这类渐进式前端开发框架,为了构建 SPA(单页面应用),需要引入前端路由系统,这也就是 Vue-Router 存在的意义.前端路由的核心,就在于 —— 改变视图的同时不会向后端发出请求. ...
- P4177 [CEOI2008]order 最小割
\(\color{#0066ff}{ 题目描述 }\) 有N个工作,M种机器,每种机器你可以租或者买过来. 每个工作包括若干道工序,每道工序需要某种机器来完成,你可以通过购买或租用机器来完成. 现在给 ...