java 通常在函数内部创建对象还是在外部创建对象_java中为什么在主函数中创建外部类对象可以,创建内部类对象就失败了呢?2类不都是非静态的吗?...
展开全部
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类不都是非静态的吗?...相关推荐
- 在 Java 中,为什么需要创建内部类对象之前需要先创建外部类对象
在 Java 中,为什么需要创建内部类对象之前需要先创建外部类对象 我们知道,在 Java 中,创建一个内部类对象之前,需要它的一个外部类对象.这是因为内部类可能使用外部类的数据. 在内部类中 ...
- 编写一个C程序,实现以下功能:定义一个学生结构体Student(含学号、姓名、年龄、身高)和一个函数sort(struct Student *p),该函数使用选择排序法按年龄由小到大排序。在主函数中
编写一个C程序,实现以下功能: 定义一个学生结构体Student(含学号.姓名.年龄.身高)和一个函数sort(struct Student *p),该函数使用选择排序法按年龄由小到大排序.在主函数中 ...
- C语言编程>第六周 ① 编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中。 在主函数中调用该函数计算出这n个整数之和。
例题:编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中. 在主函数中调用该函数计算出这n个整数之和. 代码如下: /*代码分析:录入函数需要两个参数:一个参数是需要用来存储数字的数组, ...
- 编写函数 int fac(int x)计算 x!的值。在主函数中输入 n 和 m 的值,通过调用函数 fac 计算m Cn 的值(要求分别用递归和非递归的方法编写函数 fac)
编写函数 int fac(int x)计算 x!的值.在主函数中输入 n 和 m 的值,通过调用函数 fac 计算m Cn 的值(要求分别用递归和非递归的方法编写函数 fac) 递归: #includ ...
- C语言: 定义一个函数int isprime(int n),用来判别一个正整数n是否为素数,若为素数函数返回值为1,否则为0。在主函数中输入一个整数x,调用函数isprime(x)来判断这个整数x是
原题: 定义一个函数int isprime(int n),用来判别一个正整数n是否为素数,若为素数函数返回值为1,否则为0.在主函数中输入一个整数x,调用函数isprime(x)来判断这个整数x是不是 ...
- c语言习题 定义函数 areaT,功能是求梯形面积。要求在主函数中输入上底(用变量 a存储)、下底(用变量 b 存储)、和高(用变量 h 存储),在主函数中调用函数 areaT,输出梯形面积(用变量
定义函数 areaT,功能是求梯形面积.要求在主函数中输入上底(用变量 a存储).下底(用变量 b 存储).和高(用变量 h 存储),在主函数中调用函数 areaT,输出梯形面积(用变量 s 存储)的 ...
- 习题 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 ...
- python函数内部变量能改变外部吗_python中,如何利用函数修改外部变量,注意我的要求...
问 题 void swap(int *p1, int *p2){ int temp; //临时变量 temp = *p1; *p1 = *p2; *p2 = temp; } int main(){ i ...
- c语言中两个主函数怎么,C语言如何将两个函数通过主函数调用
C语言如何将两个函数通过主函数调用0 将以下两个函数通过一个主函数调用,求调用后的程序 文件的分割 #include int main() { int len=0; int len2=0; FILE* ...
最新文章
- ruby中取反的问题
- C++ 类的大小计算
- jenkins自动化部署vue
- 【重要】有三AI计算机视觉培养计划组合优惠,4月份起发生重大变化
- 2021-03-29 PE条件(自适应、参数辨识、数据驱动常常涉及)
- Myeclipse使用DB Browser连接数据库错误:OPTION SQL_SELECT_LIMIT=DEFAULT
- linux入门常识(三)
- 手机锁屏js倒计时停止问题解决办法探索
- Spring MVC笔记 使用JdbcTemplate
- java项目源码分享——适合新手练手的java项目
- 【自用】网页设计与制作教程 笔记
- 搞不动了,持安零信任真的安全
- 计算机休眠下睡眠的不同点是什么,电脑休眠和睡眠的区别
- AI研习丨专题:面向共享出行的群体智能技术与应用
- linux双系统安装
- 小米4 第三方re奇兔_再战三年?小米6支持升级Android 11,米10都没它快!
- 【笔记】效率脑科学:卓有成效地完成每一项工作
- 数据分析1_猫眼TOP100
- android基本功
- IDEA 2020版 创建第一个WEB网站——教程
热门文章
- 过去一个月发生了什么,C++再次真香了吗?
- 每日一皮:我当程序员的时候也是...
- 为什么加了@Transactional注解,事务没有回滚?
- 提升系统 10 倍性能的 10 个建议!
- 经典面试题:在这个场景下,你怎么进行性能调优?
- 微信团队放大招!他们为了小程序居然...
- docs邮箱服务器,邮件服务器更换域名
- memsql 落地mysql_MemSQL初体验 - (2)初始化测试环境
- JDK8特性--Stream(list转map)
- ByteTrack 多目标跟踪 测试笔记