最近看了内部类后,总结一下,首先内部类嵌套在其他内部的类,根据出现的位置和关键字,可以分为以下四种类:成员内部类,静态内部类,方法内部类,匿名内部类,接下来就介绍下学高尔夫这四种类,记得耐心看哦
(1)private不可以用在外部类的声明,但可在内部类声明,成员变量可以是private
(2)内部类,外部类可以相互访问彼此的私有域
a:内部类访问外部类的私有域可以直接访问,因为成员内部类含有会计是什么职业隐藏对象
b:外部类访问内部类的私有域通过内部类对象访问
(3)内部类可解决java中单继承问题
(4)内部类可以对外部隐藏
public class outter { // 成员变量 private int age = 12; private string name = "zh"; private static final int a = 20; //成员内部类 class inner{ private string a = "hello"; private int age = 20; pub八年级下册物理期末试卷lic void test(){ system.out.println(a); // 可以访问外部类的私有域age system.out.println(outter.this.age); //访问自己的age system.out.println(this.age); system.out.println(a); } } // 外部类成员方法 public void fun() { int a = 0; // 外部类内部创建内部类对象 inner inner = new inner(); system.out.println(inner.a); }}class test { public static void main(string[] args) { //外部类的外部创建内部类对象 outter.inner inner = new outter().new inner(); }}public class outter { // 成员变量 private int age = 12; private string name = "zh"; private static final int a = 20; //成员内部类 class inner{ private string a = "hello"; private int age = 20; public void test(){ system.out.println(a); // 可以访问外部类的私有域age system.out.println(outter.this.age); //访问自己的age system.out.println(this.age); system.out.println(a); } } // 外部类成员方法 public void fun() { int a = 0; // 外部类内部创建内部类对象 inner inner = new inner(); system.out.println(inner.a); }}class test { public static void main(string[] args) { //外部类的外部创建内部类对象 outter.inner inner = new outter().new inner(); }}
a:科学发展观的科学内涵成员内部类的创建需要依赖于外部类对象
b:内部类和外部类之间相互独立
c:两者的私有属性可以相互访问
d:语法
(1)外部类的内部创建内部类对象
inner inner = new inner();
(2)外秋天的词语部类的外部创建内部类对象
outter.intter intter = new outter().new intter();
e:在内部类的内使用隐藏的this
(1)定义在外部类的内部使用static修饰,静态内部类无需外部类无需外部类产生对象就可以使用
(2)静态内部类的创建语法
staticinnerclass.inner inner = new staticinnerclass.inner();
(1)成员内部类不能拥有静态域,但可以访问外部的静态域
(2)静态内部类可以拥有成员域,但不能访问外部的成员域
public class staticinnerclass { static int age; string name; //静态内部类--类比--静态变量 static class inner{ private int age; public void test(){ system.out.println(age);// system.out.println(name);不能访问外部成员域 } } public void fun() { inner inner = new inner(); }}class test1 { public static void main(string[] args) { staticinnerclass.inner inner = new staticinnerclass.inner(); }}
(1)方法内部类定义在方法内部
(2)对外部完全隐藏,因此不能有任何访问修饰
(3)若要方法的形参只能用,不能改(形参的隐式final声明)
//方法内部类public class funclass { private int age; public void fun(int age) { class inner { void fun() {// system.out.println(age); } } age = 10; }}
(1)匿名内部类定义在方法内部,类没有名字
(2)必须继承一个抽象类或者实现一个接口
(3)没有构造方法
//实现接口interface imessage { void fun();}public class nonnameclass { public static void main(string[] args) { //匿名内部类 thread thread = new thread(new runnable() { @override public void run() { system.out.println("hello a"); } }); thread thread1 = new thread({ system.out.println("hello "); } ); thread.start(); thread1.start(); }}//实现接口interface imessage { void fun();}public class nonnameclass { public static void main(string[] args) { //匿名内部类 thread thread = new thread(new runnable() { @override public void run() { system.out.println("hello a"); } }); thread thread1 = new thread({ system.out.println("hello "); } ); thread.start(); thread1.start(); }}
朋友们,看到最后是不是对内部类有了新的认识?
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注www.887551.com的更多内容!
本文发布于:2023-04-04 11:04:18,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/fdfb23dbb444b6949b631375558c5521.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:Java的内部类总结.doc
本文 PDF 下载地址:Java的内部类总结.pdf
留言与评论(共有 0 条评论) |