java中init函数的作用

这是标准代码 编出一个有按键功能的窗口
import java.awt.*;
import java.awt.event.*;
public class test1{
private Frame f=new Frame("测试事件");
private Button ok=new Button("确定");
private TextField tf=new TextField(20);
public void init(){
ok.addActionListener(new OkListener());
f.add(tf);
f.add(ok,BorderLayout.SOUTH);
f.pack();
f.setVisible(true);
}
class OkListener implements ActionListener{
public void actionPerformed(ActionEvent e){
System.out.println("用户单击了ok按钮");
tf.setText("Hello Java");
}
}
public static void main(String args[]){
new test1().init();
}
}
里面的init函数是干什么的?怎么使用?
我把代码改写成
import java.awt.*;
import java.awt.event.*;
public class test{
public static void main(String args[]){
Frame f=new Frame("测试事件");
Button ok=new Button("确定");
TextField tf=new TextField(20);
ok.addActionListener(new okListener());
f.add(tf);
f.add(ok,BorderLayout.SOUTH);
f.pack();
f.setVisible(true);
}
class okListener implements ActionListener{
public void actionPerformed(ActionEvent e){
System.out.println("用户单击了ok按钮");
tf.setText("Hello Java");
}
}
}
就编译不了 里面没有使用init函数,为什么就不行?

init 是 initialization 的缩写使用。
也就是设定初值,初始化的意思。
在方法调用中看到init开头的函数名称,大多也是指明该函数为初始化功能。
同net_wood的回答,需初始化。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-09
原因所在:
在main方法不可以直接进行"new okListener()"
==>查看内部类知识

解决方案:
方案一:将main方法中的移到一个类test中的新的方法
方案二:

init方法作用:
1.
可以直接使用内部类==>new okListener()
2.
public static void main(String args[]){
Frame f=new Frame("测试事件");
Button ok=new Button("确定");
finalTextField tf=new TextField(20);
ok.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("用户单击了ok按钮");
tf.setText("Hello Java");
}
});
f.add(tf);
f.add(ok,BorderLayout.SOUTH);
f.pack();
f.setVisible(true);
}本回答被提问者和网友采纳
第2个回答  2012-09-29
因为涉及到内部类的问题了,你把监听类写成了内部类,你在main函数中实例化了内部类,在外部类还没有实例化的前提下,是无法实例化内部类的,不能像你这样写,所以,要不你将监听类写成外部类,要不你就按照第一种方法,第一种方法先new了一个test对象出来,然后才在里面调用了init函数,new了一个内部类监听对象设置到了按钮上。
第3个回答  2012-09-29
这个init函数只是加入监听器,初始化Frame的一些值.你可以写到class test的构造函数里去.后面你的写法本来就违反Java的规范,所以编译不过
第4个回答  2012-09-29
你的代码没有考虑到作用域的问题,
首先在static的main方法中是无法访问非static的okListener类,
其二,由于tf被声明在main方法中,属于局部变量,在actionPerformed中也无法被访问.
把okListener声明成static class,再将tf改为(static的)类成员变量就解决啦.

java中init是什么意思?
在Java编程语言中,init是一个方法,用于初始化一个对象。当对象被创建时,init方法会被调用,可以在该方法中设置对象的默认值、获取或计算属性等操作,以确保该对象可以正常工作。init方法是一个重要的生命周期方法,它为对象的正常运行打下了基础。在Web开发中,init也经常用于初始化Servlet和Listener等组...

java中的init方法
java中的init方法是一个初始化函数 启动Applet程序之前做一些必要的初始化工作,就是这个init方法。因此程序在执行事会调用init方法,进行相关的初始化工作

java中init函数的作用
init 是 initialization 的缩写使用。也就是设定初值,初始化的意思。在方法调用中看到init开头的函数名称,大多也是指明该函数为初始化功能。同net_wood的回答,需初始化。

java中init是什么意思
init()函数是内核代码的一部分,在内核态运行,是独立的可执行代码的一部分。init方法作用:1.可以直接使用内部类==>new okListener()2.public static void main (String args[]){ Frame f=new Frame("测试事件");Button ok=new Button("确定");finalTextField tf=new TextField(20);ok.addA...

java中init方法是干吗用的啊?
也就是说:new为对象input和 output开辟内存空间,系统TextField类的构造函数分别为两个对象赋初值,input文本框6个字符宽,output文本框20个字符宽;3个对象的操作功能是什么呢?其中 prompt用于输出提示信息, input用于接收用户输入的信息, output用于输出程序处理的结果信息。②在init( )方法体内第14行...

java中init函数的作用
public void init()由浏览器或 applet viewer 调用,通知此 applet 它已经被加载到系统中。它经常在第一次调用 start 方法前被调用。如果 Applet 的子类要执行初始化,则应该重写此方法。例如,使用线程的 applet 将用 init 方法创建线程,用 destroy 方法销毁它们。

java 中init 方法是干嘛用的 啊
init() 方法是初始化方法,用于在启动Applet程序之前做一些必要的初始化工作!运行Applet程序时首先调用该方法,而且只被调用一次.举个例子:import java.awt.*;import java.applet.*;public class nihao extends Applet { public void init(){ setBackground(Color.blue)} } 此例就是用init()方法设置...

java 为什么要调用init方法?能不能将init方法中的内容放到主方法中呢...
语法上当然是可以的,init方法一遍就是初始化一些数据,单独写个方法是方便以后复用,比如你有另一个功能,只需要初始化数据,但是其他的内容需要另外写,如果你把init的内容写到main里面,这部分代码就得再写一遍,而且如果这块代码将来有了改动,你就需要两个地方同事修改,这就非常不放便使用和维护了。

JAVA中start()和init()有什么区别,用起来感觉是一样的
init: 该方法用于初始化Applet,当applet首先被加载时,该方法会自动被调用一次。start: 该方法在Java调用init方法之后被调用,当用户从其他页面返回到包含Applet的页面中时,该方法也会被调用,它与init方法不同。有鉴于此,应该把调用一次的代码放到init方法中,而非start方法中。start方法通常是...

init是什么意思法语?
Init是英文单词Initialize(初始化的缩写)的简称,意思为初始化。在程序运行时,会有一些参数需要预先设置好,这就需要初始化来进行设置。初始化是计算机系统中非常基础的操作,它的作用是为了保证计算机系统的正确性和可靠性。在法语中,init这个单词并没有特别的含义,只是一个英语单词的缩写。如果要对它...

相似回答