首页 > 基础资料 博客日记
Java内部类简介说明
2023-07-28 18:07:05基础资料围观258次
本篇文章分享Java内部类简介说明,对你有帮助的话记得收藏一下,看Java资料网收获更多编程知识
转自:
http://www.java265.com/JavaCourse/202204/3129.html
下文笔者讲述Java内部类的简介说明,如下所示:
内部类的简介
我们将在其他类中的类称之为“内部类” 内部类的定义位置: 定义在类中方法外的类 成员内部类可以使用不同的修饰关键字进行修饰,不同的修饰关键字会生成不同的访问方式
内部类的定义方法
class 外部类 { // 外部类的成员位置 class 内部类{ // 内部类的成员位置 } }
例:内部类定义
class Person { //外部类 String name; class Heart { //内部类 // 成员 } }
创建内部类对象的方法
外部类 外部类对象名 = new 外部类(); 外部类.内部类 内部类对象名 = 外部类对象名.new 内部类(); 简写方式: 外部类名.内部类名 对象名 = new 外部类型().new 内部类型();
例:
//外部类 class Outer { // 外部类成员变量 private String outer_filed = "我是外部类成员变量"; //成员内部类 class Inner { // 内部类成员变量 private String inner_filed = "我是内部类成员变量"; //内部类的成员方法 public void inner_method() { System.out.println("inner_method....run... " + inner_filed ); } } // 外部类成员方法 public void outer_method(){ System.out.println("outer_method....run... " + outer_filed ); } } // 测试类 public class InnerDemo { public static void main(String[] args) { // 创建外部类对象 Outer o = new Outer(); // 创建内部类对象 Outer.Inner i = p.new Inner();//表示通过外部类对象创建内部类对象 // 调用外部类方法 i.outer_method(); // 调用内部类方法 i.inner_method(); } }
注意事项: 内部类是一个独立的类 编译之后的内部类会被编译成独立的.class文件,类的名称会使用“类名和$符号”组成 例:Outer$Inner.class 注意事项: 1.当一个内部类被私有化后,这个内部类就无法在外部进行访问 2.私有成员的内部类也是外部类的成员 3.外部类可以访问私有成员方法,本类之外无法访问 4.私有成员内部类,只能在外部类中其他成员方法中创建成员内部类对象,通过对象的方法访问"私有成员内部类"的成员
例:
//外部类 class Outer { // 外部类成员变量 private String outer_filed = "我是外部类成员变量"; //被私有的成员内部类 private class Inner { // 内部类成员变量 private String inner_filed = "我是内部类成员变量"; //内部类的成员方法 public void inner_method() { System.out.println("inner_method....run... " + inner_filed ); } } // 外部类成员方法 public void outer_method(){ System.out.println("outer_method....run... " + outer_filed ); } /* 被私有的外部类成员方法: 当前外部类的成员方法被私有了,因此此方法外界无法访问。但是本类中是可以正常访问的。 我们可以在本类中定义一个公开的方法来调用私有的方法,然后创建对象调用公开的方法即可访问。 */ // 外部类公开的方法 public void pub_method(){ // 此公开方法可以访问本类私有的成员 Inner inner = new Inner(); inner.inner_method(); // 可以在此方法内访问创建私有内部类的对象,然后调用内部类方法,最后通过外部类对象调用此 // 方法即可完成私有成员内部类方法的间接调用 } } // 测试类 public class InnerDemo { public static void main(String[] args) { // 创建外部类对象 Outer o = new Outer(); // 调用外部类访问私有内部类的公开方法 , 间接调用私有成员内部类 o.pub_method(); } }
被静态的成员内部类
外部类.内部类 变量名 = new 外部类.内部类();
例:
//外部类 class Outer { // 外部类成员变量 private String outer_filed = "我是外部类成员变量"; //被静态的成员内部类 static class Inner { // 内部类成员变量 private String inner_filed = "我是内部类成员变量"; //内部类的成员方法 public void inner_method() { System.out.println("inner_method....run... " + inner_filed ); } } // 外部类成员方法 public void outer_method(){ System.out.println("outer_method....run... " + outer_filed ); } } // 测试类 public class InnerDemo { public static void main(String[] args) { // 创建内部类对象 Outer.Inner oi = new Outer.Inner(); // 调用内部类方法 oi.inner_method(); } }
静态成员内部类的静态方法
//外部类 class Outer { // 外部类成员变量 private String outer_filed = "我是外部类成员变量"; //被静态的成员内部类 static class Inner { // 内部类成员变量 private String inner_filed = "我是内部类成员变量"; //内部类的成员方法 public static void static_inner_method() { System.out.println("静态内部类的静态成员方法static_inner_method....run... " ); } } } // 测试类 public class InnerDemo { public static void main(String[] args) { // 直接使用内部类名访问 Outer.Inner.static_inner_method(); } }
文章来源:https://www.cnblogs.com/java265/p/16474719.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签: