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

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

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

视频: D10 01 内部类 创建内部类及链接到外部类 2025
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中创建内部类 - 假人

编辑的选择

在QuickBooks Online中使用批发帐单 - 虚拟

在QuickBooks Online中使用批发帐单 - 虚拟

QuickBooks Online为会计专业人员提供免费程序。您可以注册批发价格计划,也可以免费使用QBOA。如果你选择这样做(这是一个不错的选择!),你将需要知道如何管理的事情。从您的批发帐单订阅中删除客户有时候,事情并不是这样...

基于零基础的预算与QuickBooks 2012 - 傻瓜

基于零基础的预算与QuickBooks 2012 - 傻瓜

零基预算是一个非常有用和常用的预算策略在使用QuickBooks 2012之前,您应该先了解一下。基于零的预算与顶级预算相反。零基预算从下到上工作。零基预算始于个人收入,费用,资产,负债和所有者权益账户。它检查一个特定的...

在Sage Timeslips中10个有用的键盘快捷键 - 虚拟键盘

在Sage Timeslips中10个有用的键盘快捷键 - 虚拟键盘

键盘快捷键可以是Sage Timeslips 。启动或保存一张单据,将昨天,今天或明天的日期插入日期字段,并用一个或两个按键打开和关闭定时器。以下是十大最爱。按下它做什么Ctrl + N开始一个新的投票,而工作在...

编辑的选择

可以在Photoshop Elements 11中的任意形状图层上绘制多个图形 - 虚拟模型

可以在Photoshop Elements 11中的任意形状图层上绘制多个图形 - 虚拟模型

Photoshop Elements 11中创建的任何形状图层上的图形。您可以按照与选择相同的方式添加,减去,排除重叠和相交形状。请遵循以下步骤:创建第一个形状后,在工具选项:添加到形状区域中选择一个状态按钮:...

使用读卡器将图像下载到Mac上 - 傻瓜

使用读卡器将图像下载到Mac上 - 傻瓜

您的相机可能有一个USB端口,电缆,您可以使用下载您的图像。这种方法使用相机电池电力,也相当缓慢。如果您使用读卡器,则会更快地将图像存入计算机。如果您下载了大量的图像,请考虑购买FireWire读卡器; ...

在Photoshop Elements 10中创建形状图层后,在Photoshop Elements 10中绘制多个图形 - 虚拟形状

在Photoshop Elements 10中创建形状图层后,在Photoshop Elements 10中绘制多个图形 - 虚拟形状

可以在该图层上绘制其他形状。您可以按照与选择相同的方式添加,减去,重叠和相交形状。请记住,当您在元素中创建一个形状时,您正在创建一个基于矢量的元素。向量在数学上描述形状。 ...

编辑的选择

在您的IOS应用程序中添加模态视图 - 在iPhone和iPad上虚拟视图

在您的IOS应用程序中添加模态视图 - 在iPhone和iPad上虚拟视图

对于那些希望用户(或用户想要)在应用程序流之外执行某些操作的情况非常适用。而不是使用带有后退按钮的导航控制器,而是显示一个模式视图,其中的控件允许用户选择一个动作或...

Android应用程序开发:你的Twitter应用程序的文件 - 傻瓜

Android应用程序开发:你的Twitter应用程序的文件 - 傻瓜

,这个Android Studio项目包含大约100个文件和大约170个不同的文件夹。要制作Android Twitter应用程序,您需要专注于该项目的MainActivity。 java文件。但其他一些文件需要注意。 Twitter4J API jar文件Android没有内置的通信支持...