个人理财 如何在Java中创建内部类 - 假人

如何在Java中创建内部类 - 假人

视频: D10 01 内部类 创建内部类及链接到外部类 2024

视频: D10 01 内部类 创建内部类及链接到外部类 2024
Anonim

这里有个大新闻!在Java中,您可以在另一个类中定义一个类!这里, GameFrame 类包含一个名为 MyActionListener 的类。

import java。 AWT。 FlowLayout中;

import java。 AWT。事件。动作事件;

import java。 AWT。事件。 ActionListener的;

import java。 UTIL。随机;

import javax。摇摆。 JButton的;

<! --1 - >

import javax。摇摆。 JFrame的;

import javax。摇摆。 JLabel的;

import javax。摇摆。 JTextField的;

class GameFrame extends JFrame {

private static final long serialVersionUID = 1L; int randomNumber = new Random()。 nextInt(10)+ 1;

int numGuesses = 0;

JTextField textField = new JTextField(5);

<! - 2 - >

JButton button = new JButton(“Guess”);

JLabel label = new JLabel(numGuesses +“guesses”); public GameFrame(){

setDefaultCloseOperation(JFrame。EXIT_ON_CLOSE); setLayout(new FlowLayout());

加(文本框);

加(按钮);

加(标签);

按钮。 addActionListener(

new MyActionListener()

);

包(); 调用setVisible(真);

class MyActionListener implements ActionListener {

@Override

public void actionPerformed(ActionEvent e){

String textFieldText =

textField

。的getText();

if(Integer。parseInt(textFieldText)== randomNumber){

按钮。的setEnabled(假); 的TextField。 setText(textField。getText()+“Yes!”); 的TextField。的setEnabled(假);

}其他{

textField。的setText( “”);

的TextField。 requestFocus()方法;

}

numGuesses ++;

字符串guessWord =(numGuesses == 1)?“guess”:“猜测”;

标签。 setText(numGuesses + guessWord);

}

}

}

上面的

MyActionListener

类是一个

内部类。内部类与其他类很相似。但是在内部类的代码中,可以引用封闭类的字段。例如,

MyActionListener 中的几个语句使用名称 textField ,并且在封闭的 GameFrame 类中定义 textField 请注意,上面的代码只使用 MyActionListener 类一次。 (唯一的用途是调用 按钮.addActionListener 。)所以,你真的需要一个名字的东西,只有一次使用?不,你不知道。您可以将呼叫中内部类的整个定义替换为

按钮。addActionListener方法 。当你这样做,你有一个 匿名内部类。 这是如何工作的。 import java。 AWT。 FlowLayout中; import java。 AWT。事件。动作事件; import java。 AWT。事件。 ActionListener的; import java。 UTIL。随机; import javax。摇摆。 JButton的;

import javax。摇摆。 JFrame的;

import javax。摇摆。 JLabel的;

import javax。摇摆。 JTextField的;

class GameFrame extends JFrame {

private static final long serialVersionUID = 1L; int randomNumber = new Random()。 nextInt(10)+ 1;

int numGuesses = 0;

JTextField textField = new JTextField(5); JButton button = new JButton(“Guess”);

JLabel label = new JLabel(numGuesses +“guesses”); public GameFrame(){

setDefaultCloseOperation(JFrame。EXIT_ON_CLOSE); setLayout(new FlowLayout());

加(文本框);

加(按钮);

加(标签);

按钮。 if(Integer.parseInt(textFieldText))= new ActionListener(){

@Override

public void actionPerformed(ActionEvent e){

String textFieldText = textField.getText()其他{

textField。setEnabled(false);

textField。setText(textField.getText()+“Yes!”);

textField。setText(“”);

textField。requestFocus();

}

numGuesses ++; String guessWord =(numGuesses == 1)?“guess”:“guesses”; < label.setText(numGuesses + guessWord);

}

}

);

包();

调用setVisible(真);

}

}

内部类对事件处理程序很有用,如

actionPerformed

方法。关于

匿名

内部类的最困难的事情是跟踪括号,花括号和缩进。有些谦卑的建议:先编写没有任何内部类的代码。后来,当你对普通的Java类感到厌烦的时候,通过改变一些普通的类到内部类来进行实验。

如何在Java中创建内部类 - 假人

编辑的选择

特权的基础知识在Oracle 12c - 虚拟机

特权的基础知识在Oracle 12c - 虚拟机

用户可以在Oracle 12c数据库中完成。您可能希望允许用户能够登录,但是您可能需要限制用户是否可以执行以下任一任务:访问某些数据开始...

Oracle 12c恢复管理器(RMAN)目录 - 傻瓜

Oracle 12c恢复管理器(RMAN)目录 - 傻瓜

的基础知识Oracle 12c恢复管理器(RMAN)环境,请考虑恢复目录。恢复目录是所有RMAN配置参数,备份操作和元数据的存储库。该目录可以无限期地存储备份信息。如何在Oracle 12c中选择目录模式RMAN提供了两种用于存储备份数据的选项:NOCATALOG ...

如何验证,查看和关闭Oracle 12c审计 - 傻瓜

如何验证,查看和关闭Oracle 12c审计 - 傻瓜

打开数据库中的审计记录,跟踪您制定的审计,以便您了解所做的事情。幸运的是,Oracle 12c在数据库中提供了一些视图来帮助您跟踪自己的操作:要验证您为审计配置的系统特权,请使用视图AUDIT_UNIFIED_POLICIES。要查看...

编辑的选择

Drupal友好的网页寄存公司 - 傻瓜

Drupal友好的网页寄存公司 - 傻瓜

网页寄存公司为您提供访问Web服务器,您可以在其中安装Drupal并使您的网站在Web上可见。一些公司为您安装Drupal或为您提供一键安装,为您节省了一些工作量。如果您决定自己跳过Drupal的安装,请考虑通过以下方式之一获取帐户...

Drupal花园功能 - 傻瓜

Drupal花园功能 - 傻瓜

让您有机会查看和使用所有Drupal花园功能,可以创建一个新的站点,然后选择自定义选项而不是其中一个已安装的模板:确保已经登录,然后单击我的站点链接。这样做打开了Drupal花园站点经理。点击创建...

Drupal园林主题生成器 - 傻瓜

Drupal园林主题生成器 - 傻瓜

Drupal花园设置完成后,有一些乐趣和玩你的网站上的主题。使用Drupal Gardens Theme Builder控制网站的外观是与安装Drupal自身副本不同的主要方式。但是你不会错过太多...

编辑的选择

更改MYOB中的文本和日期 - 虚拟人物

更改MYOB中的文本和日期 - 虚拟人物

MYOB为您提供了许多快捷方式以帮助简化任务。例如,您可以像在任何文字处理器中那样在MYOB中复制和粘贴文本。以下是快捷方式:按键组合快捷键结果Ctrl-A选择所有高亮显示的文本Ctrl-C复制文本Ctrl-V粘贴文本Ctrl-X删除或剪切文本Ctrl-Z取消最后一位...

在Salesforce中创建视图。当您单击Salesforce中的某个选项卡以访问特定对象(例如“帐户”,“联系人”或“个案”)时,您可以在对象主页上找到自己的服务云 - 虚拟

在Salesforce中创建视图。当您单击Salesforce中的某个选项卡以访问特定对象(例如“帐户”,“联系人”或“个案”)时,您可以在对象主页上找到自己的服务云 - 虚拟

主页,如果你选择案例,如图所示)。案例主页。当您点击Salesforce中的一个选项卡以访问特定的对象(例如,帐户,联系人或个案)时,您可以看到一些较大的,勾勒出的最近案例,报告和矩形的矩形。