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();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值