一. 类的五大成员:

属性、构造方法、一般方法、块、内部类

这篇主要描写内部类。

下面代码演示类的结构:

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类的五大成员之一——内部类相关推荐

  1. 【java笔记】类/接口作为成员变量类型

    类/接口  作为成员变量 以英雄角色为例,有姓名,年龄,武器(类),技能(接口),攻击(方法) 技能接口: public interface Skill {void use();//使用技能的抽象方法 ...

  2. C# 使用new 关键字显式隐藏从基类继承的成员和内部类的使用

    在 C# 中,new 关键字可用作运算符.修饰符或约束. 1)new 运算符:用于创建对象和调用构造函数. 2)new 修饰符:在用作修饰符时,new 关键字可以显式隐藏从基类继承的成员. 3)new ...

  3. 实时计算 java基础:类的结构之五:内部类

    今天分享又来了呀.ღ( ´・ᴗ・` ) 一起学习进步ღゝ◡╹)ノ♡ 摘要: IMDG: 加油,好好学习,天天向上~ Q: 1 内部类概念 什么是内部类 就是在一个类中定义一个类.生活举例:我们用的笔记 ...

  4. java派生类_我可以使派生类从Java的基类继承派生成员...

    我有看起来像这样的代码: public class A { public void doStuff() { System.out.print("Stuff successfully done ...

  5. java乐器_java类的多态编程。 (1)乐器(Instrument)分为:钢琴(Piano)、小提琴(Vio...

    展开全部 public class Instrument { public void play(){ System.out.println("演奏乐器......"); } } p ...

  6. 什么是java类的继承_Java类与继承

    在Java中,类文件是以.java为后缀的代码文件,在每个类文件中最多只允许出现一个public类,当有public类的时候,类文件的名称必须和public类的名称相同,若不存在public,则类文件 ...

  7. java 类成员访问权限_Java类成员访问权限控制知识总结

    一 前言 这篇文章是很基础的一文,没多大深度,对于开发人员必然是熟练于心.本篇文章的主题是为什么java要设置类成员访问级别?其原因也很简单,就是为了面向对象的封装特性:将类成员使用不同的访问级别控制 ...

  8. java成员变量除了方法传递_JAVA类与对象(四)----成员变量与局部变量 、成员方法、构造方法...

    类体中的变量分为两部分.变量定义部分定义的变量为类的成员变量,在方法体中定义的变量和方法中涉及的变量称为局部变量. 成员变量和局部变量的区别: (1).成员变量在整个类中都有效,局部变量只在定义它的方 ...

  9. Java为枚举类创建成员变量_Java学习——枚举类

    Java学习--枚举类 摘要:本文主要介绍了Java的枚举类. 部分内容来自以下博客: https://www.cnblogs.com/sister/p/4700702.html https://bl ...

最新文章

  1. 打印九九口诀表(15)
  2. eclipse替换空格和注释
  3. python socket服务器_python网络编程学习笔记(三):socket网络服务器
  4. 算法入门经典第六章 例题6-2 铁轨
  5. 年初新立Flag,新华三解决方案部做了点儿啥?
  6. javascript中alert函数的替代方案,一个自定义的对话框的方法
  7. Windows下的函数
  8. IDEA java出现无效的源发行版 9
  9. Linux下Nodejs安装
  10. jsp,servlet交互驱动层实现
  11. 基于内容的图像检索概述
  12. Spring AOP之概念解释
  13. 华云数据:以信创云构筑自主创新长城之基
  14. TAOCP-Reading-计算机程序设计艺术阅读-1-3
  15. 记一次联想Y7000P安装黑apple系统地经历
  16. ANDROID webview解决视频无法播放问题
  17. 十万个为什么哪个版本适合小学生阅读
  18. PIO模式和DMA模式的区别
  19. 运用selenium库写淘宝抢购详解【3】(文末附带源码)
  20. linux 安装docker简易方法

热门文章

  1. Thymeleaf选择器引用公共片段
  2. Mybatis查询日期范围
  3. jQuery的效果方法
  4. IntelliJ IDEA 2020.2.4款 神级超级牛逼插件推荐(自用,真的超级牛逼)
  5. StringBuider 的效率一定高吗?要看你怎么使用
  6. SpringBoot+Mybatis多模块(module)项目搭建教程
  7. Spring 事务底层原理,你会了吗?
  8. java基础(九) 可变参数列表介绍
  9. druid ssh加密 java mysql_springboot 整合druid数据库密码加密功能的实现代码
  10. (仿头条APP项目)1.app载入界面相关功能实现