首页 > 编程语言 >Java基础之--内部类

Java基础之--内部类

时间:2023-08-14 19:56:34浏览次数:47  
标签:Java 内部 -- void System inner04 new public out

1、局部内部类

比如:

 2、匿名内部类

 

package com.lwx.inner;

public class AnonymousInnerClass {
    public static void main(String[] args) {
        Outer02 outer02 = new Outer02();
        outer02.m1();

    }
}

class Outer02{
    private int n1 = 20;
    void m1(){
        System.out.println("Outer02 m1()...");

        IA tiger= new IA(){
            @Override
            public void cry() {
                System.out.println("老虎嗷嗷叫...");
            }
        };

        IA dog = new IA() {
            @Override
            public void cry() {
                System.out.println("小狗汪汪叫...");
            }
        };

        tiger.cry();
        dog.cry();

        Animal cat = new Animal() {
            @Override
            void eat() {
                System.out.println("小猫吃鱼。。。");
            }
        };
        cat.eat();

    }

}

interface IA{
    public void cry();
}


abstract class Animal{
    abstract void eat();
}

 

3、成员内部类

 

package com.lwx.inner;

/**
 * @author: lwx
 * @date: 2023-03-09
 */
public class MemberInner {
    public static void main(String[] args) {
        Outer03 outer03 = new Outer03();
        Outer03.Inner03 inner03 = outer03.getInner03();
        inner03.say();
        outer03.t1();

    }

}

class Outer03{
    private  int n1 = 10;
    public String name = "张三";
    private void hi(){
        System.out.println("hi()方法");
    }

    public class Inner03{
        private int n1 = 100;
        private int sal = 200;
        public  void say(){
            System.out.println("n1="+n1+" name="+name+" 外部类的n1"+Outer03.this.n1);
            hi();
        }
    }
    public Inner03 getInner03(){
        return new Inner03();
    }

    public void t1(){
        Inner03 inner03 = new Inner03();
        inner03.say();
        System.out.println(inner03.sal);
    }


}

4、静态内部类的使用

package com.lwx.inner;

/**
 * @author: lwx
 * @date: 2023-03-09 15:53
 */
public class StaticInner {
    public static void main(String[] args) {
        Outer04.inner04 inner04 = new Outer04.inner04();
        inner04.say();
        System.out.println("===========");
        Outer04 outer04 = new Outer04();
        Outer04.inner04 inner041 = outer04.getInner04();
        inner041.say();

    }

}

class Outer04{
    private int n1 = 10;
    public static String name = "张三";
    private static void cry(){
        System.out.println("cry()方法...");
    }

    static class inner04{
        private static String name = "我是静态内部类";
        public void say(){
            System.out.println("name="+name+" 外部类的name="+Outer04.name);
            cry();
            Outer04 outer04 = new Outer04();
            System.out.println(outer04.n1);
        }
    }
    public void m1(){
        inner04 inner04 = new inner04();
        inner04.say();
    }
    public inner04 getInner04(){
        return new inner04();
    }


}

 

标签:Java,内部,--,void,System,inner04,new,public,out
From: https://www.cnblogs.com/timothygrass/p/17628259.html

相关文章

  • 敏感词过滤算法实现(前缀树)
    前缀树前缀树是N叉树的一种特殊形式,也叫Trie、字典树、查找树。通常来说,一个前缀树是用来存储字符串的。前缀树的每一个节点代表一个字符串(前缀)。每一个节点会有多个子节点,通往不同子节点的路径上有着不同的字符。子节点代表的字符串是由节点本身的原始字符串,以及通往该子节......
  • C2025暑假集训模板
    快速幂#include<bits/stdc++.h>usingnamespacestd;unsignedlonglonga,b,k,ans=1;intmain(){ cin>>a>>b>>k; if(b==0){ ans=1%k; cout<<ans<<endl; return0; }while(b!=0){ if(b&1) ans=ans*a%k; a=a*a%k; ......
  • 一键置灰
    .gray{-webkit-filter:grayscale(100%);-moz-filter:grayscale(100%);-ms-filter:grayscale(100%);-o-filter:grayscale(100%);filter:grayscale(100%);-webkit-filter:gray;filter:gray;-webkit-filter:progid:dximagetran......
  • 2-05-Nacos配置管理-多环境配置共享-not practice
    单环境配置文件-${spring.application.name}-${spring.profiles.active}.yaml多环境配置文件-${spring.application.name}.yaml配置优先级:${spring.application.name}-${spring.profiles.active}.yaml>-${spring.application.name}.yaml>本地.yaml怀疑-待测:远程的两个可能......
  • 8.14总结
    真的让人去世,我对于熬通宵本来不太适合,还得爬山这种体力活,到了中天门已经困到不行了,当时都打算放弃了,然后我就眯了一会,大约调整了半个小时,之后体力恢复多了,就想着来都来了,然后默默开始一点一点往上爬,最后爬上去了,感觉跟梦一样,然后腿脚就废了,真的不想来第二次了,不过真的很惊叹这次......
  • stm32cubemx 配置波特率
    1、参考链接:https://www.cnblogs.com/forever-youth/p/15807690.html 2、步骤:   1、先算出连接can总线的PCLK1时钟频率   2、再根据公式:can波特率=pclk1/((tbs1+tbs2+sync_seg)*brp)     其中PCLK1就是时钟频率,sync_seg一般默认固定为1   ......
  • 2023.08.12 codeforces round 892 div2
    年轻人的第三场div2(已完成:ABCDE)rank:1265solved:4ratingchange:+276newrating:1323A.UnitedWeStand题意:给定一个数列a,问是否能分成两个非空的数列b和c,使得c中任意一个数不是b中任意一个数的因子;若x是y的因子则有x<=y;因此不妨将数列的最大值放入c,把剩下的数放入b;注意数列中......
  • (装饰装修验收规范)有关安全和功能的检验项目表
    《建筑装饰装修工程质量验收标准》GB50210-2018  表15.0.6有关安全和功能的检验项目表项次子分部工程检验项目1门窗工程建筑外窗的气密性能、水密性能和抗风压性能2饰面板工程饰面板后置埋件的现场拉拔力3饰面砖工程外墙饰面砖样板及工程的饰面砖粘......
  • 经典面试题函数柯里化: add(1)(2)(3) = 6
    functioncurrying(){constargs=Array.prototype.slice.call(arguments);constinner=function(){args.push(...arguments);returninner;};inner.__proto__[Symbol.toPrimitive]=inner.toString=inner.getValue=()=>......
  • Go 语言结构体
    结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。定义结构体结构体定义需要使用type和struct语句。struct语句定义一个新的数据类型,结构体中有一个或多个成员。type语句设定了结构体的名称typestruct_variable_typestruct{memberdefinitionmembe......