java中this和super的用法
RT 本人比较笨 看了几本关于类的书 本来有点理解的 但又给this和super这两个关键字搞晕了 请高手帮我讲解一下this和super的用法 最好附送一些网络教程和资料啦 谢了
更新时间:2023-06-04 16:06
最满意答案
其他回答
匿名类是不能有名称的类,所以没办法引用它们。必须在创建时,作为new语句的一部分来声明它们。 这就要采用另一种形式的new语句,如下所示: new <类或接口> <类的主体> 这种形式的new语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一个给定的接口。它还创建那个类的一个新实例,并把它作为语句的结果而返回。要扩展的类和要实现的接口是new语句的操作数,后跟匿名类的主体。 假如匿名类对另一个类进行扩展,它的主体可以访问类的成员、覆盖它的方法等等,这和其他任何标准的类都是一样的。假如匿名类实现了一个接口,它的主体必须实现接口的方法。 注重匿名类的声明是在编译时进行的,实例化在运行时进行。这意味着for循环中的一个new语句会创建相同匿名类的几个实例,而不是创建几个不同匿名类的一个实例。 从技术上说,匿名类可被视为非静态的内部类,所以它们具有和方法内部声明的非静态内部类一样的权限和限制。 假如要执行的任务需要一个对象,但却不值得创建全新的对象(原因可能是所需的类过于简单,或者是由于它只在一个方法内部使用),匿名类就显得非常有用。匿名类尤其适合在Swing应用程序中快速创建事件处理程序。
桌面开发 ME等用得较多 写几个例子 就明白了 解释没啥用
JAVA的匿名类在JAVA 基础相关视频和书籍上都有很详细的介绍
匿名类是不能有名称的类,所以没办法引用它们。必须在创建时,作为new语句的一部分来声明它们。这就要采用另一种形式的new语句,如下所示: new <类或接口> <类的主体> 这种形式的new语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一个给定的接口。它还创建那个类的一个新实例,并把它作为语句的结果而返回。要扩展的类和要实现的接口是new语句的操作数,后跟匿名类的主体。如果匿名类对另一个类进行扩展,它的主体可以访问类的成员、覆盖它的方法等等,这和其他任何标准的类都是一样的。如果匿名类实现了一个接口,它的主体必须实现接口的方法。 java 代码 interface pr { void print1(); } public class noNameClass { public pr dest() { return new pr(){ public void print1() { System.out.println("Hello world!!"); } }; } public static void main(String args[]) { noNameClass c=new noNameClass(); pr hw=c.dest(); hw.print1(); } }
相关问答
更多-
JAVA语言介绍[2022-06-20]
1995年,美国Sun Microsystems公司正式向IT业界推出了java语言,该语言具有安全、跨平台、面向对象、简单、适用于网络等显著特点,当时以web为主要形式的互联网正在迅猛发展,java语言的出现迅速引起所有程序员和软件公司的极大关注,程序员们纷纷尝试用java语言编写网络应用程序,并利用网络把程序发布到世界各地进行运行。包括IBM、Oracle、微软、Netscape、Apple、SGI等大公司纷纷与Sun Microsystems公司签订合同,授权使用java平台技术。微软公司总裁比尔盖茨 ... -
java里面,匿名类怎么写?[2021-08-12]
new Thread(){ public void run(){ } }.run(); 这就是一个匿名类。 -
Java匿名类的方法[2022-08-30]
匿名类有类体,类里面一样可以声明方法。但只有覆盖父类的方法才能用,新写的方法用不了。 多态性。也是父类引用指向子类对象这个原因。 -
Java中匿名类的判断方法[2021-08-21]
匿名类和非匿名类很不一样啊,直接new一个类,而不用对象句柄去接受,只像调用处返回一个匿名对象的内存访问入口。 一般的类则要设置一个句柄,保证这个类或对象的有效访问。 例子可以参考knightzhuwei给处的例子。 -
利用java匿名类编写[2024-03-23]
public class TestMain { public void toShow(MyInterface in){ in.show(); } public static void main(String[] args){ TestMain test = new TestMain(); test.toShow(new MyInterface() { @Override public void show() { System.out.println("OK"); } }); } } public inter ... -
JAVA的匿名类详细介绍[2023-06-20]
匿名类顾名思义就是没有名字的类。 interface hello{ String start(); } public class ok{ public String hello(){ return new hello(){ //这个个地方就是匿名类 String start(){ return "hello world"; } } } } -
JAVA中内部匿名类以及接口的使用和作用?[2019-02-25]
1)接口不是类,而是一组对类的需求描述,这些类要遵从接口描述的同意格式进行定义。JAVA里是不支持多继承的,但可以实现多个接口。 2)如果再深入局部内部类,可以设想一下,只创建这个类的一个对象,就不用再给它明明了,这个类就是匿名内部类。由于构造器的名字必须与类名相同,而匿名类又没有类名,所以匿名类不能有构造器,而将构造器参数传递给超类的构造器。尤其是在内部类实现接口的时候,不能有任何构造参数。 -
通过“匿名类”,我认为你是匿名内部类 。 当使用某些“附加”(例如重载方法)创建一个对象的实例时,匿名内部类可能会变得有用,而无需实际子类化。 我倾向于将其用作附加事件侦听器的快捷方式: button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // do something } }); 使用这种方法使编码更快一点,因为 ...
-
匿名类java问题(Anonymous class java question)[2023-11-26]
如果您查看java api的源文件,您可以在File.java中找到以下内容: public String[] list(FilenameFilter filter) { String names[] = list(); if ((names == null) || (filter == null)) { return names; } Listv = new A ... -
匿名内部类的目的是扩展和实例化现有类,或者一步实现单个接口。 它的局限性可以从上面得出: 只有一个非final类可以扩展或实现一个接口。 只能访问封闭方法的最终局部变量。 (这是由于当内部类的任何方法被调用时,正常的局部变量将超出范围。) 你不能定义一个构造函数。 (班级没有名字。) 如果你需要多个接口,你可以使用一个本地内部类,它就像一个普通的内部类,它有自己的名字,但是在方法中定义。 我不得不承认,我从来没有见过它在实践中使用过,我认为没有人愿意这样做,希望有人会拿出一个例子。 The purpose ...