개인 재정 Java에서 내부 클래스를 만드는 법 - 더미

Java에서 내부 클래스를 만드는 법 - 더미

비디오: 자바 11강. 내부 클래스와 익명 클래스 (1/2) 2024

비디오: 자바 11강. 내부 클래스와 익명 클래스 (1/2) 2024
Anonim

여기에 큰 소식이 있습니다! 자바에서는 다른 클래스 안에 클래스를 정의 할 수 있습니다! 여기서 GameFrame 클래스는 MyActionListener 라는 클래스를 포함합니다.

import java. awt. FlowLayout;

import java. awt. 행사. ActionEvent;

import java. awt. 행사. ActionListener;

import java. util. 무작위;

import javax. 그네. JButton;

import javax. 그네. JFrame;

import javax. 그네. JLabel;

import javax. 그네. JTextField;

클래스 GameFrame이 JFrame을 확장합니다. { private static final long serialVersionUID = 1L;

int randomNumber = 새 임의 (). nextInt (10) + 1;

int numGuesses = 0;

JTextField textField = new JTextField (5);

JButton 버튼 = 새로운 JButton ("추측");

JLabel 레이블 = 새 JLabel (numGuesses + "추측");

public GameFrame () { setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE);

setLayout (새 FlowLayout ());

add (텍스트 필드);

add (버튼);

add (레이블);

버튼을 누릅니다. addActionListener (

new MyActionListener ()

);

팩 ();

setVisible (true);

class MyActionListener는 ActionListener를 구현합니다. { @Override

public void actionPerformed (ActionEvent e) {

문자열 textFieldText =

textField

. getText ();

if (정수. parseInt (textFieldText) == randomNumber) {

버튼. setEnabled (false); 텍스트 필드. setText (textField. getText () + "예!")); 텍스트 필드. setEnabled (false);

} else {

textField. setText ("");

텍스트 필드. requestFocus ();

}

numGuesses ++;

String guessWord = (numGuesses == 1)? "guess": "guesses";

라벨. setText (numGuesses + guessWord);

}

}

}

위의

MyActionListener

클래스는

내부 클래스입니다.

내부 클래스는 다른 클래스와 매우 비슷합니다. 그러나 내부 클래스의 코드 내에서 둘러싸는 클래스의 필드를 참조 할 수 있습니다. 예를 들어, MyActionListener 내의 여러 문장은 textField 이름을 사용하고 textField GameFrame 클래스에서 정의됩니다. 위의 코드는 MyActionListener 클래스를 한 번만 사용한다는 점에 유의하십시오. (유일한 사용은 button. addActionListener

버튼을 호출하는 것입니다.) 그래서, 한 번만 사용되는 무언가에 정말로 이름이 필요합니까? 아니, 그렇지 않아. 버튼을 호출 할 때 내부 클래스의 전체 정의를 대체 할 수 있습니다.addActionListener . 이렇게하면 익명 내부 클래스가 생깁니다. 이것이 작동하는 방식입니다. import java. awt. FlowLayout; import java. awt. 행사. ActionEvent; import java. awt. 행사. ActionListener; import java. util. 무작위;

import javax. 그네. JButton;

import javax. 그네. JFrame;

import javax. 그네. JLabel;

import javax. 그네. JTextField;

클래스 GameFrame이 JFrame을 확장합니다. { private static final long serialVersionUID = 1L;

int randomNumber = 새 임의 (). nextInt (10) + 1;

int numGuesses = 0;

JTextField textField = new JTextField (5);

JButton 버튼 = 새로운 JButton ("추측");

JLabel 레이블 = 새 JLabel (numGuesses + "추측");

public GameFrame () { setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE);

setLayout (새 FlowLayout ());

add (텍스트 필드);

add (버튼);

add (레이블);

버튼을 누릅니다. addActionListener () 새로운 ActionListener () { @Override

public void actionPerformed (ActionEvent e) { 문자열 textFieldText = 텍스트 필드 getText ();

if (Integer.parseInt (textFieldText) = = randomNumber) { button setEnabled (false);

textField.setText (textField.getText () + "Yes!"); String guessWord = (numGuesses == 1)? "guesses": "추측하다"; 레이블 setText (numGuesses + guessWord);

}

}

); pack ();

setVisible (true);

}

}

내부 클래스는

actionPerformed

메소드와 같은 이벤트 핸들러와 같은 것들에 유용합니다.

익명의

내부 클래스에 대해 가장 어려운 점은 괄호, 중괄호 및 들여 쓰기를 추적하는 것입니다. 일부 겸손한 조언: 내부 클래스없이 코드를 작성하는 것으로 시작하십시오. 나중에 일반 자바 클래스에 지루해지면 평범한 클래스 중 일부를 내부 클래스로 변경하여 실험 해보십시오.

Java에서 내부 클래스를 만드는 법 - 더미

편집자의 선택

플립 비디오 인형 치트 시트 - 인형

플립 비디오 인형 치트 시트 - 인형

플립 비디오 캠코더는 가장 사용하기 쉬운 캠코더입니다. 세계. 플립 비디오를 사용하면 비디오를 가리키고 촬영 한 다음 컴퓨터로 비디오를 복사 할 수 있습니다. 몇 번의 클릭 후, 당신은 Facebook, MySpace 및 YouTube에서 귀하의 작품을 과시하고 있습니다. Flip의 버튼을 해독함으로써 비디오를 고통없이 촬영하는 방법을 찾으십시오. 알아보기 ...

귀하의 디지털 필름에 대한 개인 상영 - 인형

귀하의 디지털 필름에 대한 개인 상영 - 인형

오늘, DSLR 필름 심사. HD가 장착 된 정교한 대형 스크린 TV는 여러 스피커의 서라운드 사운드 스테레오와 함께 아주 좋은 간식을 제공합니다. 따라서 영화 밤을 장소에서 쉽게 주최 할 수 있으며 영화관에 갈 수도 있습니다. ...

디지털 영화에 정적 제목을 추가하는 방법 - 인형

디지털 영화에 정적 제목을 추가하는 방법 - 인형

초연 요소는 다양한 선택을 제공합니다 DSLR 영화의 타이틀 선택 항목, 하위 3 분의 1 로케이터 정보. 로케이터 정보는 뉴스 세그먼트 및 다큐멘터리에서 장면의 사람이나 장소를 설명하는 데 사용되는 ID와 같습니다. 사람의 경우 이름과 설명이라는 두 줄로 구성됩니다. 예를 들어, Charles Dickens / Writer, ...

편집자의 선택

관계 속의 분노를 다루는 - 인형

관계 속의 분노를 다루는 - 인형

우리 모두는 때때로 파트너들과 화를 낸다. 분노가 당신과 당신의 관계에 미치는 파괴적인 영향을 최소화하는 데 도움이되는 다음 요령을 시도하십시오. 당신이 분노의 징후를 처음 알기 시작할 때, 당신의 파트너에게 무슨 일이 일어나는지 물어보십시오. 화가 난 사람을 상처 입히려 고합니다.

자폐증 진단의 영향 - 인형

자폐증 진단의 영향 - 인형

자폐아를 찾는 것이 매우 어렵습니다. 앞으로의 길은 쉬울 것이라고 아무도 말할 수 없습니다. 자녀의 생년월일과 본인의 생년월일에 관한 스크립트를 다시 작성해야 할 수도 있습니다. 당신은 지금 다루어야 할 새로운 쟁점, 압박 및 결정들을 가지고 있습니다. 그리고 주변 사람들은 ...

당신이 종속인지 결정하기 - 인형

당신이 종속인지 결정하기 - 인형

다음 증상 목록에서 확인하십시오. 당신은 모두가 공손 할 필요는 없으며, 코펜던트의 심각성 정도가 있습니다. 치료를하지 않으면 시간이 지남에 따라 코드 종속성이 악화되지만 도움을 받아 복구 할 수 있고 작업에서 훨씬 더 효과적 일 수 있습니다 ...

편집자의 선택

짧은 명상 묵상 시도 - 인형

짧은 명상 묵상 시도 - 인형

당신의 마음을 집중할 수있는 능력은 마음 챙김 명상을 통해 가장 강력하게 개발됩니다. Mindfulness 명상 중 하나는 호흡의 mindfulness입니다. 이것은 숨을 의식적으로 인식하는 것입니다. 명상을 스스로 시도하려면 다음 단계를 따르십시오. 자신의 호흡 감을 알아야합니다. 변경할 필요가 없습니다 ...

마음가짐의 세 측면 - 인형

마음가짐의 세 측면 - 인형

마음가짐은 세 가지 측면으로 주의 깊은 인식. 이 목록을 인쇄하여 핀이 무엇인지 생각 나게하십시오. 의도 - 당신의 의도는 당신이 마음가짐을 연습함으로써 얻고 자하는 것입니다. 스트레스를 줄이고 감정적 인 균형을 유지하거나 발견 할 수 있습니다.

다른 명상을 시도하십시오 - 인형

다른 명상을 시도하십시오 - 인형

명상 확장이라는 인식은 명상 확장의 중심에 있습니다. Mindfulness 명상 연습. 앉는 자리는 수천 년 동안 명상을 위해 그리고 정당한 이유로 사용되었습니다. 어떻게 평소에 앉아 있니? 당신이 대부분의 사람들과 비슷하다면, 아마 의자 나 소파 뒤에 기대어집니다. 네가 괜찮다면 ...