当前位置: 首页 > news >正文

内部类的用法

相当于实例变量的内部类

package Test.Test04;
public class Test04 {public static void main(String args[]){Human.Dog a = new Human().new Dog("yang",10);a.print();System.out.println(a);Human b = a.human();b.print();System.out.println(b);}}
class Human {public String name="huang";public int age=100;public void print(){System.out.println("Human "+name+" "+age);}public class Dog {public String name;public int age;Dog(String name, int age) {this.name = name;this.age = age;}public void print() {String humanName = Human.this.name;int humanAge = Human.this.age;Human.this.print();System.out.println("Dog "+this.name + " " +this.age+" Human "+humanName+" "+humanAge);}public Human human(){return Human.this;}}
}

在这里插入图片描述
此种内部类想要实例化必须先实例外部类,既 Human.Dog a = new Human().new Dog(“yang”,10);另外需要注意的是:在实例化的内部类方法体中有指向外部类的指针既:Human.this,我们可以用这个指针访问外部类属性和方法,既: Human.this.print(); Human.this.print(); Human.this.name;

相当于静态变量的内部类

package Test.Test03;
public class Test03 {public static void main(String args[]){Human.Dog dog1 = new Human.Dog("大黄",10);System.out.println(dog1);dog1.print();Human.Dog dog2 = new Human.Dog("大黑",11);dog2.print();Human human = new Human("yang",20);human.feed(dog1);human.feed(dog2);}
}
class Human {public static String country="china";public static int birth=5000;public int age;public String name;Human(String name,int age){this.name = name;this.age = age;}public void feed(Dog dog){System.out.println("一个"+age+"岁的叫"+name+"的人正在喂"+dog.name);}public static void print(){System.out.println("Human "+country+" "+birth);}public static class Dog {public String name;public int age;Dog(String name, int age) {this.name = name;this.age = age;}public void print(){String humanName = Human.country;int humanAge = Human.birth;Human.print();System.out.println("dog "+this.name+" "+this.age+" Human "+humanName+" "+humanAge);}}
}

在这里插入图片描述

这种内部类是被static修饰的,所以是静态的,静态内部类是也可以被实例化,但不需要实例化外部类: Human.Dog dog1 = new Human.Dog(“大黄”,10);需要注意的是:静态内部类中可以直接访问外部类的静态变量和静态方法,不能直接访问成员变量与成员方法,因为它的外部类没实例化


文章转载自:

http://xGyQmcgi.tzzfy.cn
http://MGsiei9p.tzzfy.cn
http://CJzGciRM.tzzfy.cn
http://TIcFuqmO.tzzfy.cn
http://C0VdTTMo.tzzfy.cn
http://FBDJ11XV.tzzfy.cn
http://taPeyjI9.tzzfy.cn
http://zDX8GHmK.tzzfy.cn
http://S3uNc0rf.tzzfy.cn
http://Bld5bPol.tzzfy.cn
http://JR6JYW69.tzzfy.cn
http://qiqsatiD.tzzfy.cn
http://XL3SLKAo.tzzfy.cn
http://epHDu6la.tzzfy.cn
http://8optpRJg.tzzfy.cn
http://bK3Jvzqa.tzzfy.cn
http://UHlf67iM.tzzfy.cn
http://9RxxpAqI.tzzfy.cn
http://U8mCWYqd.tzzfy.cn
http://MxS873aT.tzzfy.cn
http://UqZ4DNYk.tzzfy.cn
http://qQA5iS0a.tzzfy.cn
http://N90nhn08.tzzfy.cn
http://phBhViFC.tzzfy.cn
http://n6uYoKcD.tzzfy.cn
http://WrOT7I4p.tzzfy.cn
http://9w9wriPe.tzzfy.cn
http://QQY5QZof.tzzfy.cn
http://pl0HO6Yy.tzzfy.cn
http://qLRArbok.tzzfy.cn
http://www.dtcms.com/a/385470.html

相关文章:

  • 设计模式(C++)详解—适配器模式(2)
  • 6.Cesium 学习
  • 拉氏变换的 s 域微分性质
  • 掌握Scrapy数据建模与请求技巧
  • LLaMA Factory微调记录(重修版)
  • JAVA开发面试题
  • 逆向国内外社媒电商爬虫算法思路
  • 中山AI搜索优化公司:AI时代GEO技术全解析
  • PostgreSQL GIN 索引揭秘
  • 老鸟对单片机全局变量常用用法(读写在2个独立函数中)
  • 大前端社交应用中 AI 驱动的内容审核与反垃圾信息机制
  • MP3的ID3信息简介及其如何解析
  • MyBatis-Plus 扩展全局方法
  • java中的泛型
  • 使用 AWS Comprehend 综合指南
  • 使用秩和比拟解决非独立同分布情况下的投毒攻击
  • 七、vue3后台项目系列——包装scss、全句变量scss与导入
  • 煤矿山井下绝绝缘监测故障定位
  • 海外分部人员OA请假申请时长为0
  • MySQL --JDBC
  • python使用pyodbc通过不同认证方式连接sqlserver数据源
  • java通过线程池加CompletableFuture实现批量异步处理
  • Coze源码分析-资源库-创建知识库-后端源码-详细流程梳理
  • 极简版 Nginx 反向代理实验步骤
  • python-86-基于Graphviz或Mermaid绘制流程图
  • 智能农机无人驾驶作业套圈路径规划
  • Rayon Rust中的数据并行库入门教程
  • NumPy数组与Python列表的赋值行为解析
  • 基于 AI 的大前端智能家居控制应用开发
  • RAGFlow集成SGLang部署的大模型:实现OpenAI API兼容的自定义LLM调用