Day06_32_Java各种内部类
内部类
内部类都有哪些?
成员内部类
匿名内部类
静态内部类
局部内部类
成员内部类
- 成员内部类内部不能有静态声明(静态方法和静态变量) - 成员内部类可以访问外部类中所有的数据包括静态数据和实例
语法
// 外部类
public class Outer { // 外部类变量
private int id=10; // 外部类方法
public void out(){
System.out.println("外部类方法");
} // 成员内部类
public class Inner{ // 内部类方法
public void in(){
System.out.println("内部类方法");
} // 内部类获取外部类变量(id)
public void getId(){
System.out.println(id);
}
}
}
创建成员内部类对象
// 创建成员内部类对象
Outer.Inner inner=outer.new Inner(); // 调用内部类方法
inner.in();
inner.getId();
静态内部类
静态内部类可以等于看做内部变量
可以用访问修控制权限符修饰
内部类重要的作用:可以访问外部类中私有的数据。
静态内部类可以直接访问外部类中的静态数据,无法直接访问成员数据
静态内部类的定义
public class statiinclass {
//静态方法
public static void mian(String []args) {
innerClass.m3();
}
//静态变量
private static String s1="A";
//成员变量
private String s2="B";
//静态方法
private static void m1() {
System.out.println("static's m1 method execute!");
}
//成员方法
private void m2() {
System.out.println("m2 method execute!");
}
//静态内部类
//可以用访问修控制权限符修饰
//内部类重要的作用:可以访问外部类中私有的数据。
//静态内部类可以直接访问外部类中的静态数据,无法就直接访问成员数据
static class innerClass{
//静态方法
public static void m3() {
System.out.println(s1);
statiinclass.m1();
}
//成员方法
public void m4() {
System.out.println();
}
}
}
* 局部内部类
- 局部内部类等同于局部变量
- 局部内部类中不能有静态声明(静态方法和静态变量)
- 局部内部类在访问局部变量的时候,该局部变量必须使用final关键字修饰
- 局部内部类需要在局部内部类中创建对象,引用内部类中的方法,然后在主方法中调用包含内部类的方法就实现了依次执行
* 匿名内部类
- 指的是类没有名字,没有名字的类。
- 匿名内部类的优点是少定义一个类、缺点是无法重复使用。
Day06_32_Java各种内部类的更多相关文章
- java中的内部类
/** * 内部类 ?? * 定义在一个内部的类,被称为内部类. * 内部类里有类体,方法体 * 内部类所在的类,被称为外部类. * --------------------------------- ...
- java中的内部类总结
内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类 如同一个人是由大脑.肢体.器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液.跳动) 显然, ...
- 错误: 从内部类中访问本 地变量vvv; 需要被声明为最终类型
从github 下载了源码, 进行编译, 出现了下面的错误 E:\downloads\ff\elasticsearch-master\elasticsearch-master>GRADLE :b ...
- Java内部类final语义实现
本文描述在java内部类中,经常会引用外部类的变量信息.但是这些变量信息是如何传递给内部类的,在表面上并没有相应的线索.本文从字节码层描述在内部类中是如何实现这些语义的. 本地临时变量 基本类型 fi ...
- Java内部类学习笔记
20160923 定义:将一个类的定义放在另一个类的内部: 从外部类的非静态方法之外,创建某个内部类的对象:OutClassName.InnerClassName: 内部类拥有所有其外部类的成员的访问 ...
- Android XML中引用自定义内部类view的四个why
今天碰到了在XML中应用以内部类形式定义的自定义view,结果遇到了一些坑.虽然通过看了一些前辈写的文章解决了这个问题,但是我看到的几篇都没有完整说清楚why,于是决定做这个总结. 使用自定义内部类v ...
- 静态方法中不能new内部类的实例对象的总结
class Test{ public void main(String[] args){ A testA=new A(); //这里会出现问题 new Thread(new Runnable(){ p ...
- Java内部类与外部类的那些事
昨天去笔试的时候遇到了Java的内部类的创建方式与访问权限的问题,我不懂,没写,故今天起来特意去试验一下,就有了这篇总结性的文章. Java中的内部类又分为非静态内部类(匿名内部类也是非静态的内部类) ...
- java 多态和内部类
接口跟接口之间存在继承关系 一个接口可以继承多个接口 一个非抽象类:必须实现接口中的所有方法 一个抽象类实现接口 可以不实现接口中的方法 但是继承与抽象类的类必须要是实现接口中的方法 多态:一个对 ...
随机推荐
- 数据处理_HIVE增量ETL的一种方式
适用场景: 贴源层主表历史数据过大,ETL不涉及历史数据对比或聚合 处理流程: 1.确定一个业务主键字段或物理主键字段 2.确定一个可以判断增量数据范围的字段,这取决于具体的业务场景,一般选用记录的创 ...
- WPF 数据绑定实例一
前言: 数据绑定的基本步骤: (1)先声明一个类及其属性 (2)初始化类赋值 (3)在C#代码中把控件DataContext=对象: (4)在界面设计里,控件给要绑定的属性{Binding 绑定类的属 ...
- 【免费开源】基于Vue和Quasar的crudapi前端SPA项目实战—环境搭建 (一)
背景介绍和环境搭建 背景 crudapi增删改查接口系统的后台Java API服务已经全部可用,需要一套后台管理UI,主要用户为开发人员或者对计算机有一定了解的工作人员,通过UI配置元数据和处理业务数 ...
- Shell脚本控制docker容器启动顺序
1.遇到的问题 在分布式项目部署的过程中,经常要求服务器重启之后,应用(包括数据库)能够自动恢复使用.虽然使用docker update --restart=always containerid能够让 ...
- 【Git】敏感信息保护
保护Git仓库敏感信息 代码中无可避免有一些敏感信息,包含但不限于,数据库信息,密钥,账号信息等等.通常我们会把这些信息放在配置文件,这些信息若泄露会造成安全问题. 以前我们做法,是把配置文件通过.g ...
- git的回滚与撤销【reset and revert】
git的工作流程-- 3个区域 工作区:我们可以看到的文件内容 在操作 git add 之前的!! 缓存区:是不可见的 已经git add操作,还没git commit -m "" ...
- vue 给一个值重置初始值
查了下资料很多都是如下: 1. this.$options.data() 这个可以获取原始的data值,this.$data 获取当前状态下的data,拷贝重新赋值一下就行了. 1 Object.as ...
- Ubuntu之软件包管理 (最全最精)
Centos与Ubuntu的关系 * CentOS之前的地位:Fedora稳定版-->发布-->RHEL稳定版-->发布-->CentOS * CentOS如今的地位:Fedo ...
- 【python小示例】简易彩票中奖模拟
咱自己写个彩票程序,成功亏掉3个亿 今天突发奇想,自己设计一个小程序,模拟彩票中奖,看看如果自己有个彩票公司,能挣钱吗?代码如下: # -*- utf-8 -*- """ ...
- Hashtable 渐渐被人们遗忘了,只有面试官还记得,感动
尽人事,听天命.博主东南大学硕士在读,热爱健身和篮球,乐于分享技术相关的所见所得,关注公众号 @ 飞天小牛肉,第一时间获取文章更新,成长的路上我们一起进步 本文已收录于 「CS-Wiki」Gitee ...