1、內(nèi)部類是指在一個外部類的內(nèi)部再定義一個類。類名不需要和文件夾相同。
我們提供的服務(wù)有:網(wǎng)站設(shè)計制作、網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、廣昌ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的廣昌網(wǎng)站制作公司
2、內(nèi)部類可以是靜態(tài)static的,也可用public,default,protected和private修飾。(而外部頂級類即類名和文件名相同的只能使用public和default)。
3、內(nèi)部類是一個編譯時的概念,一旦編譯成功,就會成為完全不同的兩類。對于一個名為outer的外部類和其內(nèi)部定義的名為inner的內(nèi)部類。編譯完成后出現(xiàn)outer.class和outer$inner.class兩類。 所以內(nèi)部類的成員變量/方法名可以和外部類的相同。
4、內(nèi)部類具有:成員內(nèi)部類、局部內(nèi)部類、嵌套內(nèi)部類、內(nèi)部類。
以下以成員內(nèi)部類示例:
成員內(nèi)部類,就是作為外部類的成員,可以直接使用外部類的所有成員和方法,即使是private的。同時外部類要訪問內(nèi)部類的所有成員變量/方法,則需要通過內(nèi)部類的對象來獲取。
要注意的是,成員內(nèi)部類不能含有static的變量和方法。 因為成員內(nèi)部類需要先創(chuàng)建了外部類,才能創(chuàng)建它自己的 ,了解這一點(diǎn),就可以明白更多事情,在此省略更多的細(xì)節(jié)了。
在成員內(nèi)部類要引用外部類對象時,使用outer.this來表示外部類對象;
而需要創(chuàng)建內(nèi)部類對象,可以使用outer.inner obj = outerobj.new inner();
示例代碼:
public class Outer {
public static void main(String[] args) {
Outer outer = new Outer();
Outer.Inner inner = outer. new Inner();
inner.print( "Outer.new" );
inner = outer.getInner();
inner.print( "Outer.get" );
}
public Inner getInner() {
return new Inner();
}
public class Inner {
public void print(String str) {
System.out.println(str);
}
}
}
package com.ie;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class Test1 {
public static void main(String args[]){
Test1 t = new Test1();
t.practice();
}
public void practice(){
JFrame jf = new JFrame("監(jiān)聽器");
jf.setLayout(null);//關(guān)閉布局管理器
jf.setBounds(100, 100, 400, 400);//指定程序窗口的初始位置及大小
JTextField jtf = new JTextField("單行文本輸入框");
jf.add(jtf);
jtf.setBounds(10, 10, 100, 20);//指定單行文本輸入框在窗口中位置及大小
jtf.addFocusListener(new FocusListenerImpl());
JButton b = new JButton("確定");
jf.add(b);
b.setBounds(10, 40, 100, 20);
jf.setVisible(true);
}
class FocusListenerImpl implements FocusListener{
@Override
public void focusGained(FocusEvent e) {
System.out.println("獲得焦點(diǎn)");
}
@Override
public void focusLost(FocusEvent e) {
System.out.println("失去焦點(diǎn)");
}
}
}
JTextFiled獲得焦點(diǎn)簡單來說就是選中時有輸入光標(biāo)閃動,失去焦點(diǎn)就是輸入光標(biāo)消失,
失焦獲焦的用輸出語句簡單寫的,看控制臺。
這個 真的沒啥意思 給按鈕添加一個監(jiān)聽 監(jiān)聽調(diào)用 button的另一個調(diào)用圖片的構(gòu)造方法 很方便\
package com.test;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ButtonDemo {
URL url = this.getClass().getResource("poto.jpg");
public ButtonDemo() {
}
public void showMe() {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
final JButton button;
button = new JButton("點(diǎn)擊我!");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
button.setIcon(new ImageIcon(url));
}
});
frame.add(panel);
panel.add(button);
frame.setSize(600, 500);
frame.setVisible(true);
}
public static void main(String[] args) {
new ButtonDemo().showMe();
}
}
這是基本的 你看看吧