java匿名类和匿名对象及this的其他用法

/*
匿名内部类:就是内部类的简写格式。
必须前提:内部类必须继承或者实现一个类或者接口。
匿名内部类其实就是一个匿名 子类对象。
格式:new 父类对象 or 接口(){子类内容;(覆盖父类的, 而且可以增加自己的方法)
}//相当于将 继承父类 和 new 的过程 写到了一起有某有!很方便有某有!
*/
class Outer{int num;public Outer(){num = 5;	}class Inner{int num;public Inner(){num = 10;}public void show(){//也就是调用该方法会有两个this指针入栈,why?很简单,因为内部类要访问外部类的数据啊!int num = 11;System.out.println("Inner part num " + num);//打印内部类中方法中的局部num变量System.out.println("Inner  num " + this.num);//打印内部类中num成员变量//System.out.println("Inner  num " + Inner.this.num);//打印内部类中num成员变量System.out.println("Outer  num " + Outer.this.num);//打印外部类中num成员变量}}public  void methods(){final int num = 55;//这个变量为什么一定要用final修饰呢?//因为如果不用final修饰,num就是一个局部变量,当这个函数结束之后就会消失!//而我们是在局部内部类的中访问这个num,这个类产生的对象是在堆上的,函数结束//对象也不会消失,那么这个对象在以后可能会多次访问这个num变量,这样就出错了!//如果是final, num 就是 55这一个值,不会变!class InnerTwo{void show(){System.out.println("part Inner final num = " + num);}}InnerTwo in = new  InnerTwo();in.show();}public void way(){System.out.println("******************************************");//普通内部类:new Inner().show();//匿名对象new Inner(){ // 匿名内部类public void show(){System.out.println("内部类的匿名类!");}}.show();//静态内部类:new InnerOne().way();new InnerOne(){public void way(){System.out.println("静态内部类的匿名类!");}}.way();//外部类:new Outer().show();new Outer(){public void show(){System.out.println("外部类的匿名类!");}}.show();}static class InnerOne{public static int num = 100;public void way(){System.out.println("静态内部类中的方法!");}public static void show(){System.out.println("static InnerOne num " + num);}  } public void show(){System.out.println("Outer num " + num);}
}public class PC{public static void main(String[] args){Outer out = new  Outer();out.show();Outer.Inner in = out.new Inner();in.show();	// out.InnerOne.show();//类的所属是类, 类是加载到方法区的,当然对象实例中不存在类;Outer.InnerOne.show();	//匿名类和匿名对象的测试:out.way();		 }
}

  

转载于:https://www.cnblogs.com/hujunzheng/p/3871928.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531917.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux下drcom无法上网,drcom为什么还是不能上网啊!

drcom为什么还是不能上网啊!发布时间:2010-04-28 20:56:56来源:红联作者:hualong[is] 本帖最后由 hualong 于 2010-4-30 16:45 编辑 [/i]主要是因为我搞很久的drcom,还是不能上网啊!!截一个图让前辈们帮忙分析一下。安装了bulid-e…

python集合的加减_python 中对list做减法操作

问题描述:假设我有这样两个list,一个是list1,list1 [1, 2, 3, 4, 5]一个是list2,list2 [1, 4, 5]我们如何得到一个新的list,list3,list3中包括所有不在list2中出现的list1中的元素。即:list3 …

java中Comparable实现对象的比较

/* class A implements Comaprable<A>{ } 那么 A x new A(); 类关系图 Object o A; Object Comparable c A; | Comparable A 实现了 Comparable 接口嘛 …

linux db2 归档,DB2的归档模式设置方法

当做在线备份&#xff0c;即加上online参数后&#xff0c;可以看到如下告警&#xff1a;[db2inst1localhost backup]$ db2 backup db sample online to /dev/nullSQL2413N Online backup is not allowed because the database is not recoverableor a backup pending condition…

css提取页面元素唯一性_下面这个函数,能够获取一个元素的任意 CSS 属性值。...

在对网页进行调试的过程中&#xff0c;经常会用到js来获取元素的CSS样式&#xff0c;方法有很多很多&#xff0c;现在仅把我经常用的方法总结如下&#xff1a;1. obj.style&#xff1a;这个方法只能JS只能获取写在html标签中的写在style属性中的值(style”…”)&#xff0c;而无…

Linux检查依赖库,linux 查看依赖库

readelf -d libsurfaceflinger.so打印出来的数据如下&#xff1a;Dynamic section at offset 0xb4 contains 37 entries:Tag Type Name/Value0x00000001 (NEEDED) Shared library: [liblog.so]0x00000001 (NEEDED) …

java中final注意的问题

public class Test{public static void main(String[] args){Person p new Person();} } /* 4.修饰的变量是一个常量(所有字符都大些 XXX 或者 XXX_XXX)&#xff0c;只能赋值一次!final 固化的都是显示初始化的值(定义并初始化)&#xff08;或者构造函数中的特定初始化的值&am…

android判断点击次数_Android应用统计-使用时长及次数统计(一)

关键字&#xff1a; 应用统计 Android源码 应用使用时长 应用使用次数最近在做有关于应用统计有关的工作&#xff0c;主要是统计系统中客户端应用(非系统自带的那些基础应用&#xff0c;比如DownLoadManager)&#xff0c;在每一天的使用情况&#xff0c;统计内容包括&#xff1…

linux+cp+-rdf,简单构建基于RDF和SPARQL的KBQA(知识图谱问答系统)

本文主要通过python实例讲解基于RDF和SPARQL的KBQA系统的构建。该项目可在python2和python3上运行通过。注&#xff1a;KBQA即是我们通常所说的基于知识图谱的问答系统。这里简单构建的EasyKBQA&#xff0c;数据来源于网络&#xff0c;源码地址看下面补充说明。目录&#xff1a…

java中Object.equals()简单用法

/* equals&#xff08;&#xff09;方法默认的比较两个对象的引用&#xff01; */ class Child {int num;public Child(int x){num x;}//人文的抛出运行时异常的好处是&#xff1a;可以自定义错误信息&#xff01;/*public boolean equals(Object o) throws ClassCastExceptio…

cmd imp导入dmp文件_oracle导入dmp文件的2种方法

使用imp、impdp方式导入数据1.使用imp导入数据打开cmd窗口&#xff0c;然后直接敲入一下命令即可&#xff0c;需要注意的是&#xff0c;要事先把dmp文件放到正确的路径中去imp yx_base/yx_192. file E:\yxb\yx_base.dmp log E:\yxb\yx_base.log full y2.使用impdp导入数据(1…

from server sql 拼接统计两个子查询_[SQL SERVER系列]之嵌套子查询和相关子查询

子查询有两种类型&#xff0c;一种是只返回一个单值的子查询&#xff0c;这时它可以用在一个单值可以使用的地方&#xff0c;这时子查询可以看作是一个拥有返回值的函数&#xff1b;另外一种是返回一列值的子查询&#xff0c;这时子查询可以看作是一个在内存中临时存在的数据表…

java中包容易出现的错误及权限问题

/* 3&#xff0c;权限在不同地方的体现&#xff1a; public protected default private 同一类中&#xff1a; ok ok ok ok 同一包中&#xff1a; ok ok ok 子类中&#xff1a; ok ok …

c语言程序算一元二次方程,如何用C语言来计算一元二次方程

C语言实现一元二次方程的解 源程序#include#includefloat x1,x2,p,q,d;float great_than_zero(float,float);float equql_to_zero(float,float);float smaller_than_zero(float,float);main(){float a,b,c;printf(“Enter a,b,c:”);scanf(“%f%f%f”,&a,&b,&c);db…

cosin等于多少_cos45度等于多少

cos45度√2/2。角A的邻边比斜边叫做角A的余弦&#xff0c;记作cosA(由余弦英文cosine简写得来)&#xff0c;即cosA等于角A的邻边/斜边(直角三角形)。二倍角公式sin2α2sinαcosαtan2α2tanα/(1-tan^2(α))cos2αcos^2(α)-sin^2(α)2cos^2(α)-11-2sin^2(α)积化和差公式sinα…

c语言宏定义比较三个数大小,C语言中两个宏进行大小对比,其中一个没有定义,这种行为如何定义。...

1.C语言中两个宏进行大小对比&#xff0c;其中一个没有定义&#xff0c;这种行为如何定义呢&#xff1f;在学习U-boot的过程中遇到这么一个定义&#xff1a;# if (CONFIG_ENV_ADDR > CONFIG_SYS_MONITOR_BASE) && \(CONFIG_ENV_ADDR CONFIG_ENV_SIZE) < \(CONFI…

java中变量运算细节 (2)

/* 目的&#xff1a;测试变量的运算方式 结果&#xff1a;byte a, b, c;a bc;或者 a b10形如这种形式的算式&#xff0c; 等式的右边的运算结果默认的都是int型的&#xff01;因为等式右边有变量&#xff0c; 编译器无法确定变量的内容&#xff0c;因为它是变量&#xff01;所…

c语言设计二级考试程序修改题,全国计算机二级考试C语言复习题与答案解析

全国计算机二级考试C语言复习题与答案解析三、程序修改题下列给定程序中函数fun的功能是&#xff1a;将长整型数中各位上为奇数的数依次取出&#xff0c;构成一个新数放在t中。高位仍在高位&#xff0c;低位仍在低位。例如&#xff0c;当s中的数为87653142时&#xff0c;t中的数…

ccs变量观察窗口在哪_CCS3.3查看变量图形

CCS3.3查看变量图形首先声明&#xff0c;觉得ccs3.3中Graph并不是什么量都可以观察的&#xff0c;原因是跟断点有关&#xff0c;反正对于我的仿真器XDS510的是如此。即程序运行到断点处会有延时&#xff0c;对于普通信号可能没什么影响&#xff0c;但对于高频信号来说&#xff…

poj 2777(线段树的节点更新策略)

1 /*2 之前的思想是用回溯的方式进行颜色的更新的&#xff01;如果用回溯的方法的话&#xff0c;就是将每一个节点的颜色都要更新3 通过子节点的颜色情况来判断父节点的颜色情况 &#xff01;这就是TLE的原因&#xff01;4 5 后来想一想没有必要 &#xff01;加入[a, b] 区间有…