java学习日记09——面向对象02
来源:互联网 发布:网络监控软件排行 编辑:程序博客网 时间:2024/06/07 18:59
在java中,允许在一个类的内部定义类,这样的类称为内部类,这个类所在的类称为外部类。根据内部类的位置,修饰符和定义的方式分为成员内部类、静态内部类、方法内部类。
成员内部类:
package classfoundation;class Outer {private int num = 4;public void test() {Inner inner = new Inner();inner.show();}class Inner {void show() {System.out.println("num = " + num);}//内部类可以被外部类中被使用,并能访问外部类的成员}}public class InnerClass {public static void main(String[] args) {// TODO Auto-generated method stubOuter outer = new Outer();outer.test();/*若想通过外部类去访问内部类,则需要通过外部类对象去创建内部类对象,创建内部类对象的具体语法格式外部类名.内部类名 变量名 = new 外部类名().new 内部类名();*/Outer.Inner inner = new Outer().new Inner();inner.show();}}
静态内部类:
package classfoundation;class Outer1 {private static int num = 6;// 使用static修饰,定义一个静态内部类static class Inner {void show() {System.out.print("num= " + num);}}}public class StaticInnerClass {public static void main(String[] args) {// TODO Auto-generated method stubOuter1.Inner inner = new Outer1.Inner();inner.show();}}1:在静态内部类中只能访问外部类的静态成员。
2:在静态内部类中可以定义静态的成员,而在非静态的内部类中不允许定义静态的成员。
方法内部类:在成员方法中定义的类,只能在当前方法中被使用。
package classfoundation;class Outer2 {private int num = 412;public void test() {class Inner {void show() {System.out.print("num= " + num);}}Inner in = new Inner();in.show();}}public class MethodInnerClass {public static void main(String[] args) {// TODO Auto-generated method stubOuter2 outer = new Outer2();outer.test();}}
0 0
- java学习日记09——面向对象02
- java学习日记08——面向对象01
- 黑马程序员————学习日记【5】 【Java面向对象1】
- 黑马程序员————学习日记【6】 【Java面向对象2】
- 黑马程序员————学习日记【7】 【Java面向对象3】
- 黑马程序员java学习日记——面向对象(二)
- 黑马程序员java学习日记——面向对象(三)
- 黑马程序员——学习日记5 java面向对象基础
- 黑马程序员——学习日记6 java面向对象之继承
- 黑马程序员——学习日记7 java面向对象之封装
- 黑马程序员——学习日记9 java面向对象之多态
- 黑马程序员--【学习日记三】——java面向对象(一)
- 黑马程序员--【学习日记四】——java面向对象(二)
- 黑马程序员[andriod]java基础学习日记四——面向对象的总结
- 黑马程序员—Java入门学习日记基础篇-面向对象总结1
- 黑马程序员—Java入门学习日记基础篇-面向对象总结2
- 黑马程序员—Java入门学习日记基础篇-面向对象总结3
- 黑马程序员—Java入门学习日记基础篇-面向对象总结4
- iOS利用CoreLocation获取地理位置以及如何在模拟器进行调试
- 【j2ee】数据库中取出数据到list中,结果list中数据一样
- linux中class_create和class_register分析
- 最后的 PDP
- 测试图片
- java学习日记09——面向对象02
- Dijkstra(迪杰斯特拉)算法
- SVN的分支、主干合并的使用说明
- cocos2dx笔记
- c/c++基础(十一) 预处理
- Android开发实践:使用Service还是Thread
- vim的查找与替换
- ImageLoader和GridView小总结
- Xcode基本操作