java 成员类_Java类的五大成员之一——内部类
一. 类的五大成员:
属性、构造方法、一般方法、块、内部类
这篇主要描写内部类。
下面代码演示类的结构:
package com.company.project.test.t41;
import java.sql.Struct;
import org.omg.CORBA.PUBLIC_MEMBER;
public class Demo {
//1属性
String name;
//2.构造方法
public Demo() {
}
//3.方法
public void funOuter1() {
System.out.println("外部类方法");
}
//4.块
{
}
//5.内部类
//5.1成员内部类
class Inner{
public void fun1() {
name = "";
funOuter1();
}
}
//5.2静态内部类
static class StaticClass{
}
//5.3匿名内部类
//通过接口创建匿名内部类
Runnable runnable = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
}
};
//通过类创建匿名内部类
Thread thread = new Thread() {
public void run() {
}
};
//5.4局部内部类
public void funOuter2() {
//作用范围仅限于所属方法,
class A{
}
A a = new A();
}
}
二、内部类
内部类分为4种:成员内部类、静态内部类、匿名内部类、局部内部类。
特点:可以共享外部类的成员(属性,方法)
1.成员内部类
public class Demo {
//1属性String name;
//3.方法public void funOuter1() {
System.out.println("外部类方法");
}
//5.内部类//5.1 成员内部类class Inner{
public void fun1() {
name = "";
funOuter1();
}
}
}
特点:要使用成员内部类的对象,外部类的对象必须存在。
实例化:
package com.company.project.test.t41;
public class Client {
public static void main(String[] args) {
//内部类的实例化
//5.1成员内部类
Demo.Inner inner = new Demo().new Inner();
}
2.静态内部类
public class Demo {
//1属性
String name;
//3.方法
public void funOuter1() {
System.out.println("外部类方法");
}
//5.内部类
//5.2静态内部类
static class StaticClass{
}
}
特点:静态内部类,把外部类当作特殊的包使用,所以实例化时new 后面的Demo不需要小括号(和成员内部类区别)。
实例化:
package com.company.project.test.t41;
public class Client {
public static void main(String[] args) {
//内部类的实例化
//5.2静态内部类的实例化
//静态内部类,把外部类当作特殊的包使用
Demo.StaticClass staticClass = new Demo.StaticClass();
}
}
3.匿名内部类
分为两种:通过接口创建和类创建。
特点:简化了一些临时使用的类,小,方便,属于临时变量类。
创建和实例化在一起。
public class Demo {
//1属性
String name;
//3.方法
public void funOuter1() {
System.out.println("外部类方法");
}
//5.内部类
//5.3匿名内部类
//通过接口创建匿名内部类
Runnable runnable = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
}
};
//通过类创建匿名内部类
Thread thread = new Thread() {
public void run() {
}
};
}
4.局部内部类
特点:可以在方法中定义,并实例化,但使用地方仅局限在此方法中。
public class Demo {
//1属性
String name;
//3.方法
public void funOuter1() {
System.out.println("外部类方法");
}
//5.内部类
//5.4局部内部类
public void funOuter2() {
//作用范围仅限于所属方法,
class A{
}
A a = new A();
}
}
java 成员类_Java类的五大成员之一——内部类相关推荐
- 【java笔记】类/接口作为成员变量类型
类/接口 作为成员变量 以英雄角色为例,有姓名,年龄,武器(类),技能(接口),攻击(方法) 技能接口: public interface Skill {void use();//使用技能的抽象方法 ...
- C# 使用new 关键字显式隐藏从基类继承的成员和内部类的使用
在 C# 中,new 关键字可用作运算符.修饰符或约束. 1)new 运算符:用于创建对象和调用构造函数. 2)new 修饰符:在用作修饰符时,new 关键字可以显式隐藏从基类继承的成员. 3)new ...
- 实时计算 java基础:类的结构之五:内部类
今天分享又来了呀.ღ( ´・ᴗ・` ) 一起学习进步ღゝ◡╹)ノ♡ 摘要: IMDG: 加油,好好学习,天天向上~ Q: 1 内部类概念 什么是内部类 就是在一个类中定义一个类.生活举例:我们用的笔记 ...
- java派生类_我可以使派生类从Java的基类继承派生成员...
我有看起来像这样的代码: public class A { public void doStuff() { System.out.print("Stuff successfully done ...
- java乐器_java类的多态编程。 (1)乐器(Instrument)分为:钢琴(Piano)、小提琴(Vio...
展开全部 public class Instrument { public void play(){ System.out.println("演奏乐器......"); } } p ...
- 什么是java类的继承_Java类与继承
在Java中,类文件是以.java为后缀的代码文件,在每个类文件中最多只允许出现一个public类,当有public类的时候,类文件的名称必须和public类的名称相同,若不存在public,则类文件 ...
- java 类成员访问权限_Java类成员访问权限控制知识总结
一 前言 这篇文章是很基础的一文,没多大深度,对于开发人员必然是熟练于心.本篇文章的主题是为什么java要设置类成员访问级别?其原因也很简单,就是为了面向对象的封装特性:将类成员使用不同的访问级别控制 ...
- java成员变量除了方法传递_JAVA类与对象(四)----成员变量与局部变量 、成员方法、构造方法...
类体中的变量分为两部分.变量定义部分定义的变量为类的成员变量,在方法体中定义的变量和方法中涉及的变量称为局部变量. 成员变量和局部变量的区别: (1).成员变量在整个类中都有效,局部变量只在定义它的方 ...
- Java为枚举类创建成员变量_Java学习——枚举类
Java学习--枚举类 摘要:本文主要介绍了Java的枚举类. 部分内容来自以下博客: https://www.cnblogs.com/sister/p/4700702.html https://bl ...
最新文章
- 打印九九口诀表(15)
- eclipse替换空格和注释
- python socket服务器_python网络编程学习笔记(三):socket网络服务器
- 算法入门经典第六章 例题6-2 铁轨
- 年初新立Flag,新华三解决方案部做了点儿啥?
- javascript中alert函数的替代方案,一个自定义的对话框的方法
- Windows下的函数
- IDEA java出现无效的源发行版 9
- Linux下Nodejs安装
- jsp,servlet交互驱动层实现
- 基于内容的图像检索概述
- Spring AOP之概念解释
- 华云数据:以信创云构筑自主创新长城之基
- TAOCP-Reading-计算机程序设计艺术阅读-1-3
- 记一次联想Y7000P安装黑apple系统地经历
- ANDROID webview解决视频无法播放问题
- 十万个为什么哪个版本适合小学生阅读
- PIO模式和DMA模式的区别
- 运用selenium库写淘宝抢购详解【3】(文末附带源码)
- linux 安装docker简易方法
热门文章
- Thymeleaf选择器引用公共片段
- Mybatis查询日期范围
- jQuery的效果方法
- IntelliJ IDEA 2020.2.4款 神级超级牛逼插件推荐(自用,真的超级牛逼)
- StringBuider 的效率一定高吗?要看你怎么使用
- SpringBoot+Mybatis多模块(module)项目搭建教程
- Spring 事务底层原理,你会了吗?
- java基础(九) 可变参数列表介绍
- druid ssh加密 java mysql_springboot 整合druid数据库密码加密功能的实现代码
- (仿头条APP项目)1.app载入界面相关功能实现