黑马程序员技术交流社区
标题:
今天刚学的内部类,简单的写了一些内部类的小练习
[打印本页]
作者:
空城dream
时间:
2015-7-3 21:42
标题:
今天刚学的内部类,简单的写了一些内部类的小练习
class Outer{
private String title = "我爱黑马";
//普通成员内部类,类前不加修饰符
class Inner{
public void show(){
System.out.println(title);
System.out.println("成员内部类,不加修饰符");
}
}
//私有成员内部类,类前加修饰符private
private class Inner2{
public void show2(){
System.out.println("成员内部类,加修饰符private");
}
}
public void method(){
Inner2 i2 = new Inner2();
i2.show2();
}
//静态成员内部类,类前加修饰符static
public static class Inner3{
public void show3_1(){
System.out.println("静态成员内部类---非静态方法");
}
public static void show3_2(){
System.out.println("静态成员内部类---静态方法");
}
}
//局部内部类
public void partInner(){
final String num1 = "外部类--方法中---成员变量";//如果局部内部类,调用本方法中的局部变量,局部变量前必须加final
//定义类
class Inner3{
String num2 = "外部类--方法中---内部类---成员变量";
public void show(){
String num3 = "外部类--方法中---内部类---局部变量";
System.out.println(num3);
System.out.println(num2);
System.out.println(num1);
}
}
//创建对象-----局部内部类要在本方法中创建对象
Inner3 i = new Inner3();
i.show();
}
public void function()
{
Outer oo = new Outer();
oo.partInner();//这个function中上面两条语句的方法类似成员内部类的调用,视频中没讲,自己写的
//如果没有上面两条语句,这个function方法中只有下面两条语句,那么就是错误
//Inner3 r = new Inner3();
//r.show();
}
}
class Day10Test {
public static void main(String[] args) {
System.out.println("第一种方式");
Outer.Inner oi = new Outer().new Inner();
oi.show();
System.out.println("-----------------");
System.out.println("第二种方式");
Outer oi2 = new Outer();
oi2.method();
System.out.println("-----------------");
System.out.println("第三种方式");
//如果内部类是static修饰
//格式:
//外部类名.内部类名 变量 = new 外部类名.内部类名();
Outer.Inner3 oi3 = new Outer.Inner3();
oi3.show3_1();
oi3.show3_2();
//Outer.Inner3.show3_1();
Outer.Inner3.show3_2();
System.out.println("-----------------");
System.out.println("第四种方式");
Outer oi4 = new Outer();
oi4.partInner();
System.out.println("-----------------");
oi4.function();//测试function()方法
}
}
复制代码
作者:
夜空中最亮的星
时间:
2015-7-3 22:03
谢谢楼主,这个代码帮我梳理了一下内部类的小疑惑,有没有关于匿名内部类的总结呢?
作者:
dajiaoya
时间:
2015-7-4 11:35
分享快乐 ,赞个
作者:
javaking
时间:
2015-7-4 14:27
总结的不错!学的好仔细!
作者:
小糊涂仙
时间:
2015-7-4 17:22
可以呀,赞一个
作者:
liuhao_hm
时间:
2015-7-4 20:32
赞一个:victory:
作者:
走在这里
时间:
2015-7-4 21:40
这么强啊啊 我对内部类还纠结呢 谢谢啊
作者:
wengjialiang
时间:
2015-7-4 22:06
楼主很强,先标记一下,后面学习
作者:
zhangxin
时间:
2015-7-4 22:13
赞一个!
作者:
帅帅loyal
时间:
2015-7-4 22:19
学而时习之
作者:
qingger
时间:
2015-7-4 22:19
挺好的,很详细
作者:
zhand
时间:
2015-7-4 22:28
没看明白啊
作者:
炎舞霜冬
时间:
2015-7-4 22:40
没看懂啊
作者:
very爱
时间:
2015-7-4 22:59
总结的很好,复习了
作者:
小龙编程世界
时间:
2015-7-4 23:11
继续加油!!!
作者:
18295718171
时间:
2015-7-4 23:13
不错啊!
作者:
wengjialiang
时间:
2015-7-4 23:14
"***final String num1 = "外部类--方法中---
成员变量
";//如果局部内部类,调用本方法中的局部变量,局部变量前必须加final***"楼主你这句应该改为:
final String num1 = "外部类--方法中---
局部变量
";//如果局部内部类,调用本方法中的局部变量,局部变量前必须加final
作者:
徐向贵
时间:
2015-7-4 23:22
很厉害哦
作者:
sophitia
时间:
2015-7-4 23:25
这个真得顶 也帮我复习了一下 感谢楼主!
作者:
如初见
时间:
2015-7-4 23:54
写的真全! 攒一个!
作者:
xiaoxinxin003
时间:
2015-7-5 02:06
温故而知新,不错!
作者:
杨基米德
时间:
2015-7-5 06:41
学习一下~感谢楼主~
作者:
a80194367
时间:
2015-7-5 08:30
夜空中最亮的星 发表于 2015-7-3 22:03
谢谢楼主,这个代码帮我梳理了一下内部类的小疑惑,有没有关于匿名内部类的总结呢? ...
匿名内部类也就是没有名字的内部类
正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写
但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口
作者:
430422
时间:
2015-7-5 09:54
此贴不火,非人道也!
作者:
hp_discuz
时间:
2015-7-5 22:34
感谢楼主,赞一个。
作者:
nanfp
时间:
2015-7-6 07:45
涨知识了
作者:
EnderDBluse
时间:
2015-7-6 09:33
+1
作者:
野驴少东
时间:
2015-7-6 11:29
:victory::victory:
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2