一个java编程问题

问题描述

public class Twisted {private final String name;Twisted(String name) {this.name = name;}private String name() {return name;}private void reproduce() {new Twisted("reproduce") {public void printName() {System.out.println(name());}}.printName();}public static void main(String[] args) {new Twisted("main").reproduce();}} 已知输出时main但我不知道他的原理,求大牛解惑

解决方案

1、此处是内部类访问外围类的问题new Twisted("reproduce") { public void printName() { System.out.println(name()); } }.printName(); 因为name() 是私有的 所以不会继承,此处又因为匿名内部类是方法级别的,所以可见外围类的私有的东西;即name()是外围类的 所以是main相当于Twisted.this.name()
解决方案二:
new Twisted("reproduce") { public void printName() { System.out.println(name()); } }相当于创建一个对象后,继承class Twisted类,然后在新的对象里添加了一个printName()方法。在这个方法里调用name()方法。由于name()方法是私有的。所以不会被继承。因为new 的这个对象在class Twisted 类中所以可以直接 class Twisted 类中的name()方法。且值为new Twisted("main")时的值。

时间: 2024-09-11 17:19:04

一个java编程问题的相关文章

急求一个java编程!!!

问题描述 急求一个java编程!!! java编程 电话号码查询: 有电话录入.修改.增加.删除,按姓名查询,按电话号码查询,按部门查询,显示所有电话号码信息,打印等功能. 解决方案 http://www.docin.com/p-651608701.html 解决方案二: http://wenku.baidu.com/link?url=ZAaQ8BPeDjmuoS0Z2Mpsr9L1c4RxVLIn3SjARxUliyrtosrbNa_SDgct_SLE6mH5OtznL2y1tYllNruZa

求助!一个java编程

问题描述 写一个程序,它接受10名学生记录(登记号和成绩),并打印分数递减的顺序.如果有就同一学生多条记录,该程序应选择一个记录包含了最高分.该方案应接受一个多行输入的能力.以后每输入行将包含一个学生记录,即一个登记号和一个分数(用连字符分隔).输出应包括的登记号和相应的评分相结合的分数顺序递减.这个怎么做啊?? 解决方案 解决方案二:1.打開JAVAIDE工具.2.開始coding3.編譯3-a有錯誤,修正後回到33-b沒錯誤,測試結果,如果正確擇結束,否則回到2修正.解决方案三:程序还得自己

一个java编程题目,类的设计问题

问题描述 今天去面试,得到的题目是:1.从一个文档中读取内容(文档内容为1-10十个数字,一个数字一行),输出到另外一个文档,输出格式为(1,2,3,...,10)2.数据库中存储了10条记录,一列,也是1-10,一个数字一条记录,读出,也输出到一个文档,格式同第一题.题目的要求是:怎么样设计类,使在开发过程中第一题变到第二题的修改部分较少,代码复用率低.附加:如果是输出到文档,改为输出到数据库的话,怎么设计. 学得不精,只想到了用继承来解决这个问题.还有什么别的设计思路呢? 解决方案 publ

编译-一个java新手在编程路上遇到的问题

问题描述 一个java新手在编程路上遇到的问题 路过的大牛瞄一眼,谢谢...大一学生一枚,java学到网络编译了,最近在实现ftp服务器,目前还没写出来,心情十分郁闷,我觉得自己要成为编程员的随机应变能力还不够,编程路上的困惑,曾经也遇过类似状况求个回复. 解决方案 没什么,大一的时候让我自己去实现一个ftp服务器,我也觉得挺困难的.所以你要上大学啊. 解决方案二: 困惑:坚持.不会:学习.前排 解决方案三: 任何知识都有一个主干,首先要了解基本的原理,然后再学习细节.如果你是自学,一定要注意这

java编程,在屏幕上显示一个带标题的窗口,并添加一个按钮

问题描述 java编程,在屏幕上显示一个带标题的窗口,并添加一个按钮 编写程序,在屏幕上显示一个带标题的窗口,并添加一个按钮,当用户单击按钮时,弹出对话框,显示用户单击了按钮. 解决方案 找点Java 的 Swing学习资料,这种界面估计用netbean或idea都可以自动生成. 解决方案二: import java.awt.Frame; import java.awt.Graphics; import java.awt.GridLayout; import java.awt.event.Act

网络编程-想做一个java b站的第三方登录,请问有什么比较方便的jar包可以引用?

问题描述 想做一个java b站的第三方登录,请问有什么比较方便的jar包可以引用? 如题,还是说只能用httpurlconnection?然后我用wireshark试图抓account.bilibili.com/login的数据包,结果死活抓不到post的包...感觉如果没有post包的话没办法进行数据分析...就没办法继续写下去了...由于是第一次设计,所以可能思路会有点问题,如果有做过类似程序的前辈感谢给出一点点建议....谢谢! import java.net.URL; import j

Java 编程技术中汉字问题的分析及解决(转)

编程|汉字|解决|问题 Java 编程技术中汉字问题的分析及解决 段明辉自由撰稿人2000 年 11月 8日内容: 汉字编码的常识 Java 中文问题的初步认识 Java 中文问题的表层分析及处理 Java 中文问题的根源分析及解决 Java Servlet 中文问题的根源 修改 Servlet.jar 中文乱码的处理函数 参考资料 作者简介在基于 Java 语言的编程中,我们经常碰到汉字的处理及显示的问题.一大堆看不懂的乱码肯定不是我们愿意看到的显示效果,怎样才能够让那些汉字正确显示呢?Jav

仔细触摸Java编程中的“文档”和“包”

编程 什么是包 Java中的包(Package)其实指的就是目录,它是为了更好地管理Java类(Class)和接口(Interface).Java语言的包可以被另一个Java开发包所使用.如果我们要引用某个包中的类,用import关键字来标明即可.比如: import java.util. date=new Date  提示:import java.util.表示java.util中的所有公有类和接口被引入到当前包.这里的匹配符可以调入多个类名. 常用的Java标准包 JDK为我

Java 编程技术中汉字问题的分析及解决,文件操作

编程|汉字|解决|问题 在基于 Java 语言的编程中,我们经常碰到汉字的处理及显示的问题.一大堆看不懂的 乱码肯定不是我们愿意看到的显示效果,怎样才能够让那些汉字正确显示呢?Java 语言 默认的编码方式是UNICODE ,而我们中国人通常使用的文件和数据库都是基于 GB2312 或者 BIG5 等方式编码的,怎样才能够恰当地选择汉字编码方式并正确地处理汉字的编 码呢?本文将从汉字编码的常识入手,结合 Java 编程实例,分析以上两个问题并提出 解决它们的方案. 现在 Java 编程语言已经广