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

Java---内部类

时间:2023-05-11 12:22:22浏览次数:29  
标签:Body Java String void name --- public 内部

Java---内部类

内部类的概念

内部类就是一个类内部包含另一个类

分类:

  1. 成员内部类
  2. 局部内部类(包含匿名内部类)

格式:

修饰符 class 外部类名称

{

修饰符 class 内部类名称

{

//

}

}

注意:内用外,随意访问;外用内,需要内部类对象.

image-20230511100502621

代码示例

public class Body {
    private String name;

    public class Heart {
        public void show() {
            System.out.println("名字是" + name);//内部随便访问外部.即使外部类是私有的
        }

        public void method() {
            System.out.println("我是内部类");
        }
    }

    public void methodwai() {//外部类方法
        System.out.println("我是外部类方法");
    }

    public Body(String name) {
        this.name = name;
    }

    public Body() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

使用成员内部类

1.间接方法

2.直接方法

外部类名称.内部类名称 对象名 = new 外部类名称().new 内部类名称();

image-20230511101750815

代码示例

间接方法

内部类

public class Body {
    private String name;

    public class Heart {


        public void method() {
            System.out.println("我是内部类方法");
            System.out.println("名字是" + name);//内部随便访问外部.即使外部类是私有的
        }
    }

    public void methodwai() {//外部类方法
        System.out.println("我是外部类方法");
        new Heart().method();//再内部类方法里面调用内部类
    }

    public Body(String name) {
        this.name = name;
    }

    public Body() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

Main方法

public class Main {
    public static void main(String[] args) {
        Body one =new Body();
        one.methodwai();//调用外部类方法,里面含有内部类对象
    }
}

直接使用

内部类

public class Body {
    private String name;

    public class Heart {


        public void method() {
            System.out.println("我是内部类方法");
            System.out.println("名字是" + name);//内部随便访问外部.即使外部类是私有的
        }
    }

    public void methodwai() {//外部类方法
        System.out.println("我是外部类方法");
        new Heart().method();//再内部类方法里面调用内部类
    }

    public Body(String name) {
        this.name = name;
    }

    public Body() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

Main方法

public class Main1 {
    public static void main(String[] args) {
        //使用外部类创建内部类对象来使用内部类
        //第一个new body()实际上就是一个构造方法
        Body.Heart one = new Body("小黑").new Heart();
        one.method();
    }


}

标签:Body,Java,String,void,name,---,public,内部
From: https://www.cnblogs.com/harper886/p/17390699.html

相关文章

  • C/C++交通咨询系统设计哈夫曼编码问题[2023-05-11]
    C/C++交通咨询系统设计哈夫曼编码问题[2023-05-11]题目三、交通咨询系统设计最短路径问题设计要求及分析:设计一个交通咨询系统,能让旅客咨询从任一个城市顶点到另一城市顶点之间的最短路径(里程)、最低花费、最少时间等问题。对于不同咨询要求,可输出城市间的路程、所需时间......
  • el-autocomplete select事件传递多个参数
    问题<el-autocompletev-model="state":fetch-suggestions="querySearchAsync"placeholder="请输入内容"@select="handleSelect"></el-autocomplete>这是ElementUI官方文档中 el-autocomplete 的示例,而这里的 handleSelec......
  • Ansible-常用模块
    ping模块ping模块,这个很好理解,跟我们常用的ping命令是一样的,用来检测与目标主机的连通性[root@master~]#ansible192.168.142.45-mping192.168.142.45|SUCCESS=>{"ansible_facts":{"discovered_interpreter_python":"/usr/bin/python"},......
  • c++模版多参数的递归用法--自定义log
    #include<iostream>#include<sstream>#include<string>#include<tuple>#include<type_traits>template<typenameT>voidprint_impl(std::ostringstream&os,constchar*format,T&&arg){while(*form......
  • Java8相对于Java7新增了什么新特性
    Java8和Java7是两个不同的Java版本,Java8相对于Java7引入了相当多的新特性,以下是Java8相对于Java7新增的重要特性:Lambda表达式:Lambda表达式是Java8最重要的特性之一,它提供了一种简洁的编写匿名函数的方式,有助于编写更加易读和简单的代码。函数式接口和......
  • 论文阅读 -- High-speed_function_approximation_using_a_minimax_quadratic_interpol
    SFU设计算法基础Interpolation插值:给定有限点预测附近点的方法算法复现requireMaple代码复现精度与资源referenceHigh-SpeedFunctionApproximationminimaxcoeffAitken(埃特金)逐次插值法|一次插值、二次插值、k次插值FPGA_LUT-based_InterpolationF......
  • C语言中.与->的区别
    (一)基础结构体用点,结构体指针用箭头。a->b 的含义是 (*a).b 。  现代的标准化的C语义上来说, -> 可以用 * 和 . 的组合实现。简单的说,就是一个快捷方式,一个语法糖。(二)例子在机器码和汇编的角度来看,不存在变量,不存在struct这种东西,只存在寄存器和一个叫做内存的......
  • 京喜APP - 图片库优化
    作者:京东零售何骁介绍京喜APP早期开发主要是快速原生化迭代替代原有H5,提高用户体验,在这期间也积累了不少性能问题。之后我们开始进行一些性能优化相关的工作,本文主要是介绍京喜图片库相关优化策略以及关于图片相关的一些关联知识。图片性能问题作为电商APP,图片在各个业务场景......
  • APP自动化-多页列表滑动获取元素
    在APP自动化过程中,遇到目录类的元素需要获取元素里的值,如果存在多页,需要滑动很多次,可以通过循环+源码变化来判断是否滑动到底#wait.until(ec.visibility_of_element_located(locator)).click()#点击目录#开始正序listlocator=(By.ID,"com.zhao.myreader:id/tv_chapter_......
  • 【Java】Stream的一些日常操作
    1  前言 Java8出来的stream写法让我们对数据的处理带来了一些写法上的增进,这节就简单记录下平时使用的stream的一些操作,关于stream的书籍,可以看一下Java8实战,里边会有两三章讲解我们的stream。2 常用记录 //根据单个属性或者多个属性去重List<Object>data......