内部类(代码片段)

yanze yanze     2023-01-15     152

关键词:

本文转自:https://www.cnblogs.com/shen-hua/p/5440285.html

成员内部类

特征:

1. 作为外部类的一个成员存在,与外部类的属性、方法并列

2. 成员内部类持有外部类的引用(能直接使用外部类的方法、属性)

3. 成员内部类中不能定义static变量和方法

使用格式:

Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();

实例:

/*
 * 成员内部类
 */
public class Body 
    String arm;
    String leg;
    String blood;
    public Body(String arm, String leg, String blood) 
        super();
        this.arm = arm;
       this.leg = leg;
        this.blood = blood;
    
    //成员内部类Heart
    class Heart
        String name;
         void work() 
            System.out.println("心脏正在给"+arm+leg+"输"+blood);
        
     ;
public class Test 
    public static void main(String[] args)        
        Body body=new Body("两个胳膊","两条腿","血");
        Body.Heart  heart=body.new Heart();
        heart.work();
    

 

---------------------------------------------------------------------------------------------------------

 

静态内部类

特征:

1. 静态内部类不会持有外部类的引用,如果访问外部类的成员变量必须通过外部类的实例访问

2. 静态内部类可以访问外部的静态变量,(就好比静态方法只能调用静态方法,访问静态变量)

3. Java中只有内部类才可以是静态的

使用格式:

Outer.Inner inner = new Outer.Inner();

实例:

/*
 * 静态内部
 */
public class Company 
    String companyNam;
    static String country;
    static class Clear
        String name;
        public Clear() 
            // TODO Auto-generated constructor stub
        
        
        public Clear(String name) 
            super();
            this.name = name;
        

        public void work(String name)
            String na=new Company().companyNam="联想";
            country="中国";
            System.out.println(name+"为"+na+"打扫卫生,该公司属于"+country);
        
    
public class Test 
    public static void main(String[] args) 
        Company.Clear zcl=new Company.Clear();
        zcl.work("shen_hua");
    

 

---------------------------------------------------------------------------------------------------------

 

局部内部类

特征:

1. 用在方法内部,作用范围仅限于该方法中

2. 根据情况决定持有外部类对象引用

3. 不能使用private,protected,public修饰符

4. 不能包含静态成员

实例:

/*
 * 局部内部类
 */
public class School 

    String schoolName;
    String buss="培养人才";
    int studentNum;
    public School() 
        // TODO Auto-generated constructor stub
    
    
    public School(String schoolName, String buss, int studentNum) 
        super();
        this.schoolName = schoolName;
        this.buss = buss;
        this.studentNum = studentNum;
    

    //宣传
    public void show()
        final double tvMoney=10000;
        final double netMoney=20000;
        class AdverTeam
            String teamName="shen_hua";
            //电视宣传
            public void tvShow()
                System.out.println("宣传队是:"+teamName);
                System.out.println("这是电视宣传,学校名称"+schoolName+",业务内容:"+buss+",学校人数:"+studentNum+",宣传所需费用"+tvMoney);
            
            //网络宣传
            public void netShow()
                System.out.println("宣传队是:"+teamName);
                System.out.println("这是网络宣传,学校名称"+schoolName+",业务内容:"+buss+",学校人数:"+studentNum+",宣传所需费用"+netMoney);
            
        
        new AdverTeam().tvShow();
        new AdverTeam().netShow();
    
public class Test 
    public static void main(String[] args) 
        School qinghua=new School("清华","互联网培训",1000);
        
        qinghua.show();
    

 

---------------------------------------------------------------------------------------------------------

 

匿名内部类

特征:

1. 使用new创建没有具体位置

2. 创建的匿名类,默认继承或实现new后面的类型

3. 根据使用情况决定是否持有外部类对象引用

4. 内嵌匿名类编译后生成的.class文件的命名方式是”外部类名称$编号.class”,编号为1,2,3…n,编号为x的文件对应的就是第x个匿名类

/*
 * 匿名内部类
 */
public interface Person 
    public void run();
/*
 * 测试类
 */
public class Test 
    public static void main(String[] args) 
        Person p=new Person()   //匿名内部类,实现Person接口      
            public void run() 
                System.out.println("匿名内部类实现的");
            
        ;
        p.run();
    

 

12.内部类(代码片段)

内部类内部类内部类:在一个类中定义一个类,在类A的内部定义一个类B,类B就称为内部类内部类格式格式:publicclass类名 修饰符class类名 范例publicclassOuter publicclassInner 内部类访问特点:内部类可以直接访问外部类的成员,包括私有外... 查看详情

内部类(代码片段)

Java内部类一.内部类内部类分为:成员内部类静态内部类局部内部类匿名内部类内部类在编译时也可以生成独立的字节码(class)文件;内部类可以直接访问外部类的私有成员,而不破坏封装;成员内部类在类的内部定义,与实... 查看详情

内部类(代码片段)

一.内部类基础在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。1.成员内部类  成员内部... 查看详情

内部类(代码片段)

一.内部类基础在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。下面就先来了解一下这四种... 查看详情

内部类(代码片段)

广义的内部类主要分为四种:匿名内部类、成员内部类、局部内部类以及静态内部类1. 匿名内部类packagecom.royal.summer.test;/***<p>*AnonymousInner匿名内部类(内部类中使用较多的一种,一般用于监听事件)*</p>**@authorzpf*@since2020... 查看详情

java_内部类(代码片段)

在Java中内部类主要分为四种:静态内部类、成员内部类、方法内部类、匿名内部类。非静态内部类包括:成员内部类、方法内部类、匿名内部类。1.成员内部类成员内部类内部不允许存在任何static变量或方法,正如成员方法中不... 查看详情

内部类(代码片段)

内部类简介将类写在其他类的内部,可以写在其他类的成员位置和局部位置,这时写在其他类内部的类就称为内部类。其他类也称为外部类。什么时候使用内部类在描述事物时,若一个事物内部还包含其他可能包含的事物。内部... 查看详情

内部类(代码片段)

what:在一个类中定义一个类。举例:在一个类A的内部定义一个类B,类B就被称为内部类。how:格式:class外部类名修饰符class内部类名why:1.一个内部类的对象能够访问创建它的对象的实现,包括私有数据。2.对于同一个包中的其... 查看详情

内部类(代码片段)

内部类将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。内部类有分为局部内部类,和成员内部类。局部内部类又包含了匿名内部类。 内部类仍然是一个独立的类,在编译之后会内部类会被编... 查看详情

创建内部类对象(代码片段)

分别讲解内部类为静态和非静态的时候,内部类的创建方式。首先看下代码:publicclassOutClasspublicOutClass()//外部类直接创建内部类对象newInnerClass();publicvoidoutMethod()newInnerClass();System.out.println("OutClass.outMethod");/***非静态内部类*@author 查看详情

内部类(代码片段)

...类是平行关系。*在java中,一个类也可以定义在一个类的内部,定义在内部的类称为内部类(Internalclass),*定义在外部的类称为外部类(InternalClassclass).内部类根据具体的修饰符和具体位置分为很多情况:*1成员内部类:一个内部类作... 查看详情

内部类(代码片段)

内部类定义在其他类内部的类。由于内部类的上级是外部类,所以内部类可以比外部类多使用三个修饰符:private,protected,static。在JVM看来,内部类也是一些独立的类,在编译的时候会将每个内部类编译成OuterClass$InnerClass.class... 查看详情

内部类和匿名内部类(代码片段)

目录1.内部类1.1概述1.2成员内部类1.3匿名内部类1.内部类1.1概述将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类1.2成员内部类定义在类中方法外的类,称为成员内部类。定义格式class外部类class内部类... 查看详情

内部类(代码片段)

一、内部类   一个类里面能放6样东西   属性方法构造器初始化块静态初始化块内部类   1)成员内部类(类中)      1、静态成员内部类、非静态成员内部类   &nb... 查看详情

四种内部类(代码片段)

四种内部类实例内部类:直接定义在类当中的一个类,在类前面没有任何修饰符静态内部类:在内部类前面加static局部内部类:定义在方法内的类匿名内部类:属于局部内部类的一种特殊情况 实例内部类:属于对象的内部类... 查看详情

java内部类详解(代码片段)

内部类内部类的定义将一个类定义在另一个给类里面或者方法里面,这样的类就被称为内部类。内部类可以分为四种:成员内部类、局部内部类、匿名内部类、静态内部类,下面我们逐一介绍这四种内部类。成员内部类他定义在... 查看详情

java内部类(代码片段)

文章目录什么是内部类内部类的作用?内部类可以对同一个包的其他类隐藏起来内部类可以解决java单继承的缺陷什么是内部类在一个类的内部在定义一个类用法例如我们定义一个People类packagecom.test;publicclassPeoplepublicvoidspeak()S... 查看详情

java内部类(代码片段)

文章目录什么是内部类内部类的作用?内部类可以对同一个包的其他类隐藏起来内部类可以解决java单继承的缺陷什么是内部类在一个类的内部在定义一个类用法例如我们定义一个People类packagecom.test;publicclassPeoplepublicvoidspeak()S... 查看详情