展开全部

public class OuterClass {

public static void main(String[] args) {

OuterClass outerClass = new OuterClass();

InnerClass innerClass = outerClass.new InnerClass();

StaticInnerClass staticInnerClass = new StaticInnerClass();

}

public void foo() {

InnerClass innerClass = new InnerClass();

StaticInnerClass staticInnerClass = new StaticInnerClass();

}

public class InnerClass {

}

public static class StaticInnerClass {

}

}

了解以下几点:

1:非静态内部类,必须有一个外部类的引用才能创建。

2:在外部类的非静态方32313133353236313431303231363533e59b9ee7ad9431333332626636法中,因为有隐含的外部类引用this,所以可以直接创建非静态内部类。

3:在外部类的静态方法中,因为没有this,所以必须先获得外部类引用,然后创建非静态内部类。

4:静态内部类,不需要外部类引用就可以直接创建。

5:同时静态的内部类,也不能直接访问外部类的非静态方法。

6:由此可以推测,非静态内部类之所以可以直接访问外部类的方法,是因为创建非静态内部类时,有一个隐含的外部类引用被传递进来。

java 通常在函数内部创建对象还是在外部创建对象_java中为什么在主函数中创建外部类对象可以,创建内部类对象就失败了呢?2类不都是非静态的吗?...相关推荐

  1. 在 Java 中,为什么需要创建内部类对象之前需要先创建外部类对象

    在 Java 中,为什么需要创建内部类对象之前需要先创建外部类对象   我们知道,在 Java 中,创建一个内部类对象之前,需要它的一个外部类对象.这是因为内部类可能使用外部类的数据.   在内部类中 ...

  2. 编写一个C程序,实现以下功能:定义一个学生结构体Student(含学号、姓名、年龄、身高)和一个函数sort(struct Student *p),该函数使用选择排序法按年龄由小到大排序。在主函数中

    编写一个C程序,实现以下功能: 定义一个学生结构体Student(含学号.姓名.年龄.身高)和一个函数sort(struct Student *p),该函数使用选择排序法按年龄由小到大排序.在主函数中 ...

  3. C语言编程>第六周 ① 编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中。 在主函数中调用该函数计算出这n个整数之和。

    例题:编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中. 在主函数中调用该函数计算出这n个整数之和. 代码如下: /*代码分析:录入函数需要两个参数:一个参数是需要用来存储数字的数组, ...

  4. 编写函数 int fac(int x)计算 x!的值。在主函数中输入 n 和 m 的值,通过调用函数 fac 计算m Cn 的值(要求分别用递归和非递归的方法编写函数 fac)

    编写函数 int fac(int x)计算 x!的值.在主函数中输入 n 和 m 的值,通过调用函数 fac 计算m Cn 的值(要求分别用递归和非递归的方法编写函数 fac) 递归: #includ ...

  5. C语言: 定义一个函数int isprime(int n),用来判别一个正整数n是否为素数,若为素数函数返回值为1,否则为0。在主函数中输入一个整数x,调用函数isprime(x)来判断这个整数x是

    原题: 定义一个函数int isprime(int n),用来判别一个正整数n是否为素数,若为素数函数返回值为1,否则为0.在主函数中输入一个整数x,调用函数isprime(x)来判断这个整数x是不是 ...

  6. c语言习题 定义函数 areaT,功能是求梯形面积。要求在主函数中输入上底(用变量 a存储)、下底(用变量 b 存储)、和高(用变量 h 存储),在主函数中调用函数 areaT,输出梯形面积(用变量

    定义函数 areaT,功能是求梯形面积.要求在主函数中输入上底(用变量 a存储).下底(用变量 b 存储).和高(用变量 h 存储),在主函数中调用函数 areaT,输出梯形面积(用变量 s 存储)的 ...

  7. 习题 8.5 将本章的例8.4改写为一个多文件的程序:1.将类定义放在头文件arraymax.h中;2.将成员函数定义放在源文件arraymax.cpp中;3.主函数放在源文件file1.cpp中。

    C++程序设计(第三版) 谭浩强 习题8.5 个人设计 习题 8.5 将本章的例8.4改写为一个多文件的程序: 1.将类定义放在头文件arraymax.h中: 2.将成员函数定义放在源文件arraym ...

  8. python函数内部变量能改变外部吗_python中,如何利用函数修改外部变量,注意我的要求...

    问 题 void swap(int *p1, int *p2){ int temp; //临时变量 temp = *p1; *p1 = *p2; *p2 = temp; } int main(){ i ...

  9. c语言中两个主函数怎么,C语言如何将两个函数通过主函数调用

    C语言如何将两个函数通过主函数调用0 将以下两个函数通过一个主函数调用,求调用后的程序 文件的分割 #include int main() { int len=0; int len2=0; FILE* ...

最新文章

  1. ruby中取反的问题
  2. C++ 类的大小计算
  3. jenkins自动化部署vue
  4. 【重要】有三AI计算机视觉培养计划组合优惠,4月份起发生重大变化
  5. 2021-03-29 PE条件(自适应、参数辨识、数据驱动常常涉及)
  6. Myeclipse使用DB Browser连接数据库错误:OPTION SQL_SELECT_LIMIT=DEFAULT
  7. linux入门常识(三)
  8. 手机锁屏js倒计时停止问题解决办法探索
  9. Spring MVC笔记 使用JdbcTemplate
  10. java项目源码分享——适合新手练手的java项目
  11. 【自用】网页设计与制作教程 笔记
  12. 搞不动了,持安零信任真的安全
  13. 计算机休眠下睡眠的不同点是什么,电脑休眠和睡眠的区别
  14. AI研习丨专题:面向共享出行的群体智能技术与应用
  15. linux双系统安装
  16. 小米4 第三方re奇兔_再战三年?小米6支持升级Android 11,米10都没它快!
  17. 【笔记】效率脑科学:卓有成效地完成每一项工作
  18. 数据分析1_猫眼TOP100
  19. android基本功
  20. IDEA 2020版 创建第一个WEB网站——教程

热门文章

  1. 过去一个月发生了什么,C++再次真香了吗?
  2. 每日一皮:我当程序员的时候也是...
  3. 为什么加了@Transactional注解,事务没有回滚?
  4. 提升系统 10 倍性能的 10 个建议!
  5. 经典面试题:在这个场景下,你怎么进行性能调优?
  6. 微信团队放大招!他们为了小程序居然...
  7. docs邮箱服务器,邮件服务器更换域名
  8. memsql 落地mysql_MemSQL初体验 - (2)初始化测试环境
  9. JDK8特性--Stream(list转map)
  10. ByteTrack 多目标跟踪 测试笔记