JavaSE——面向对象:内部类
2018-01-13 00:00
218 查看
内部类:定义在一个类内部的类,也称嵌套类。
实例内部类:
实例内部类程序示例:
实例内部类程序示例运行结果:
静态内部类
静态内部类程序示例:
静态内部类程序运行示例:
局部内部类(注意区别局部内部类和成员内部类)
局部内部类属于方法中的类。
成员内部类是属于类中的类。
局部内部类程序示例:
局部内部类程序示例运行结果:
匿名内部类
匿名内部类程序示例:
匿名内部类程序运行结果:
实例内部类:
实例内部类程序示例:
import mypro01.Outter.Inner; class Outter{ //外部类 int age=2; String sex="mail"; public void doWorkOut(){ System.out.println("我是外部类方法"); } class Inner{ //内部类 int age=12; String name; public void doWorkIn(){ //内部类方法 doWorkOut(); //内部类可直接访问外部类方法 //内部类访问外部类同名和不同名成员的方法 System.out.println("内部类可直接访问外部类成员"+sex); System.out.println("内部类可访问外部类同名成员age :"+Outter.this.age); System.out.println("内部类的age和name: "+this.age+" "+this.name); } } } public class InnerClass { public static void main(String[] args) { System.out.println("**************外部类对象测试*****************"); Outter out1= new Outter(); System.out.println(out1.age); System.out.println(new Outter().age); System.out.println("**************内部类对象测试*****************"); Inner in1= new Outter().new Inner(); //内部类定义方法 Inner in2=out1.new Inner(); //内部类定义方法 System.out.println(in1.name); System.out.println(in2.name); System.out.println(in2.age); System.out.println("**************内部类方法测试*****************"); in1.doWorkIn(); } }
实例内部类程序示例运行结果:
**************外部类对象测试***************** 2 2 **************内部类对象测试***************** null null 12 **************内部类方法测试***************** 我是外部类方法 内部类可直接访问外部类成员mail 内部类可访问外部类同名成员age :2 内部类的age和name: 12 null
静态内部类
静态内部类程序示例:
import mypro01.Outter.Inner; class Outter{ //外部类 int age=2; static String sex="mail"; public void doWorkOut(){ System.out.println("我是外部类非静态方法"); } static public void doWorkOut2(){ System.out.println("我是外部类静态方法"); } static class Inner{ //内部类 int age=12; String name; public void doWorkIn(){ //内部类方法 //静态内部类可直接访问外部类静态成员(字段和方法),但无法直接访问外部类非静态成员。 System.out.println("静态内部类可直接访问外部类静态成员"+sex); doWorkOut2(); //静态内部类访问外部类非静态成员(字段和方法)时,需通过外部类实例去访问。 System.out.println("静态内部类访问外部类非静态成员age :"+new Outter().age); new Outter().doWorkOut(); System.out.println("内部类的age和name: "+this.age+" "+this.name); } } } public class InnerClass { public static void main(String[] args) { System.out.println("**************外部类对象测试*****************"); Outter out1= new Outter(); System.out.println(out1.age); System.out.println(new Outter().age); System.out.println("**************内部类对象测试*****************"); Inner in1= new Inner(); //静态内部类在创建实例时,不必创建外部类实例 Outter.Inner in2= new Outter.Inner(); System.out.println(in1.name); System.out.println(in2.name); System.out.println(in2.age); System.out.println("**************内部类方法测试*****************"); in1.doWorkIn(); } }
静态内部类程序运行示例:
**************外部类对象测试***************** 2 2 **************内部类对象测试***************** null null 12 **************内部类方法测试***************** 静态内部类可直接访问外部类静态成员mail 我是外部类静态方法 静态内部类访问外部类非静态成员age :2 我是外部类非静态方法 内部类的age和name: 12 null
局部内部类(注意区别局部内部类和成员内部类)
局部内部类属于方法中的类。
成员内部类是属于类中的类。
局部内部类程序示例:
局部内部类程序示例运行结果:
匿名内部类
匿名内部类程序示例:
匿名内部类程序运行结果:
相关文章推荐
- JAVASE 面向对象 多态 单类设计模式 内部类 匿名内部类
- JAVASE_09天_@面向对象_内部类和异常
- JavaSE实战——面向对象(中) 抽象类,接口,多态,内部类,匿名内部类
- 【JavaSE学习笔记】面向对象_接口、形式参数问题、内部类
- JavaSE----面向对象(形式参数和返回值研究、包、修饰符、内部类)
- javaSE-面向对象-内部类
- JavaSe基础XX11——面向对象——[内部类]
- javaSE-面向对象-匿名内部类
- JavaSE实战——面向对象(中) 抽象类,接口,多态,内部类,匿名内部类
- 《java入门第一季》之面向对象匿名内部类面试题
- JavaSE--05--内部类,匿名内部类
- JavaSE--面向对象
- Java基础(面向对象三——多态、内部类)
- 【黑马】程序员————面向对象(一)多态,内部类
- JavaSE学习笔记之-----面向对象
- JavaSE笔记04:面向对象的理解
- javaSE_8系列博客——Java语言的特性(三)--类和对象(16)--嵌套类(内部类的示例)
- Java--面向对象之四:多态、内部类、Object类
- JavaSE学习总结第09天_面向对象4
- JAVASE总结--内部类