首页 > 其他分享 >内部类_Inner

内部类_Inner

时间:2023-03-06 12:01:10浏览次数:26  
标签:部类 内部 对象 成员 私有 Inner new

定义:在一个类中定义一个类,就叫内部类。

  成员内部类:定义在类中方法外的叫成员内部类

  局部内部类:定义在方法中的叫局部内部类

成员内部类

  a、创建不带修饰符的普通成员内部类对象的格式:外部类名.内部类名 对象名 = new 外部类对象().new 内部类对象();

    b、私有成员内部类对象只能在所属外部类创建,如果使用私有内部类的方法,先创建外部类对象,在通过外部类的方法访问私有内部类方法;

    c、创建静态成员内部类对象的格式:外部类名.内部类名 对象名 = new 外部类对象.内部类对象();

public class InnerTest {

    public static void main(String[] args) {
        // 创建不带修饰符的普通成员内部类对象的格式:外部类名.内部类名 对象名 = new 外部类对象().new 内部类对象();
        Outer.Inner inner = new Outer().new Inner();
        System.out.println(inner.num);
        inner.show();
        // 私有成员内部类对象只能在所属外部类创建,如果使用私有内部类的方法,先创建外部类对象,在通过外部类的方法访问私有内部类方法;
        Outer o = new Outer();
        o.menthod();
        // 创建静态成员内部类对象的格式:外部类名.内部类名 对象名 = new 外部类对象.内部类对象();
        Outer.Inner2 inner2 = new Outer.Inner2();
        inner2.show();
        // 静态成员内部类中的静态方法调用格式
        Outer.Inner2.show1();
    }
}

class Outer {
    int a = 5;
    private int b = 6;
    public void outherShow() {
        Inner i = new Inner();
        System.out.println(i.num);
    }

    // 成员内部类
    class Inner {
        int num = 10;
        public void show() {
            // 内部类访问外部类成员可以之间访问,包括私有
            System.out.println(a);
            System.out.println(b);
            System.out.println("成员内部类。。。");
        }
    }

    // 私有成员内部类
    private class Inner1 {
        public void show() {
            // 内部类访问外部类成员可以之间访问,包括私有
            System.out.println("私有成员内部类。。。");
        }
    }

    public void menthod() {
        Inner1 i = new Inner1();
        i.show();
    }

    // 静态成员内部类
    static class Inner2 {
        public void show() {
            // 内部类访问外部类成员可以之间访问,包括私有
            System.out.println("静态成员内部类。。。");
        }

        public static void show1() {
            // 内部类访问外部类成员可以之间访问,包括私有
            System.out.println("静态成员内部类静态成员方法。。。");
        }
    }
}

 

标签:部类,内部,对象,成员,私有,Inner,new
From: https://www.cnblogs.com/weiduaini/p/17183248.html

相关文章

  • 内部类
    内部类普通内部类在一个类里面创建一个类就是普通内部类内部类实例化方法:外部类.内部类实例名=外部类实例.new内部类();例如:publicclassMain{publicst......
  • AtCoder Beginner Contest 292
    A-CAPSLOCK#include<bits/stdc++.h>usingnamespacestd;int32_tmain(){strings;cin>>s;for(autoi:s)cout<<char(i-'a'+......
  • 数据库多表查询之 where & INNER JOIN
    在多表查询中,一些SQL开发人员更喜欢使用WHERE来做join,比如:SELECTa.ID,b.Name,b.DateFROMCustomersa,SalesbWHEREa.ID=b.ID;缺点:在上面语句中,实际上是创建了两张......
  • AtCoder Beginner Contest 292
    《E-Transitivity》   这道题首先要看一下自己有没有理解错题意:      问:点2和点3之间要连边吗? 答案是不需......
  • java内部类
    内部类定义:在java中允许一个类定义在另一个类内中,前者叫内部类,后者叫外部类根据内部类定义的位置分为:成员内部类:类定义在方法外;类定义在方法外并且是静态类嵌套类......
  • 人人都学会APP开发 提高就业竞争力 简单实用APP应用 安卓浏览器APP 企业内部通用APP制
    安卓从2009年开始流程于手机、平板,已经是不争的非常强大生产力工具,更为社会创造非常高的价值,现在已经是202X年,已经十几年的发展,安卓平台已经无所不在。因此......
  • Java_内部类
    Java内部类成员内部类内部类在外部使用时,无法直接实例化,需要借由外部类信息才能完成实例化内部类的访问修饰符,可以任意,但是访问权限会收影响。内部类可以直接访问......
  • AtCoder Beginner Contest 292
    A-CAPSLOCK(abc292a)题目大意给定一个小写字母串,将其转换成大写字母。解题思路调库,或者按照ascii码转换即可。神奇的代码#include<bits/stdc++.h>usingname......
  • AtCoder Beginner Contest 252
    AtCoderBeginnerContest252D题意在数组中形如\(1\leqi<j<k\leqn\)使得\(a_i,a_j,a_k\)互不相同,求共有多少组满足条件思路它的数据范围\(1\leqa_i\leq2*10^5\)......
  • 1.为何try里面放return,finally还会执行,理解其内部机制
    涉及到了一种数据类型:Completion,是js七大标准类型之一为何try里面放return,finally还会执行这种行为就是因为CompletionRecord,在js中,每条语句的执行完成状态都是由Comple......