为啥main里的init函数没有执行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥main里的init函数没有执行相关的知识,希望对你有一定的参考价值。

import java.applet.Applet;
import java.awt.Button;
import java.awt.List;
import java.awt.TextField;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class abc extends Applet implements ItemListener
//String item[]="aa","bb","cc";

List lc;
String item[]="aa","bb","cc";
int listen;
Button but1,but2;
TextField text1;
static abc ABC = null;

public static void main(String[] args) throws IOException

ABC=new abc();
ABC.init();
char gg='0';
System.out.print(gg);


public void init()

lc=new List(6,false);
lc.addItemListener(this);

char[] a = new char[1024];

try

File f = new File("d:/test.txt");
FileReader file=new FileReader(f);

//a[0]=' ';
char[] e = new char[1024];

file.read(e);
for(int j=0;j<=1023;j++)
a[j]=e[j];

//for(int j=0;j<=(e.length-1);j++)
// System.out.print(e[j]);

for(int j=0;j<=8;j++)
//for(int k=0;(char)c==('/');k++)
StringBuffer buf3=new StringBuffer("");
buf3.append(e,(20*(j)),20);
String fff;
//item2[j]="1";
fff=buf3.toString();
// System.out.print(buf3); //new
lc.add(fff);




catch(Exception ee)




//for(int i=0;i<item2.length;i++)lc.add(item2[i]);
add(lc);
but1=new Button("待定");
but2=new Button("待定");
add(but1);
add(but2);
text1=new TextField(20);
add(text1);



@Override
public void itemStateChanged(ItemEvent e)
// TODO Auto-generated method stub
listen=lc.getSelectedIndex();
text1.setText("你得到的进程序号为"+listen);




不对,简单举个例子,下面这段代码就没有用到main函数。
import java.awt.*;
import java.applet.*;

public class Button1 extends Applet
Button
b1 = new Button("Button 1"),
b2 = new Button("Button 2");
public void init()
add(b1);
add(b2);


你可以执行下看看
参考技术A 你这不是小程序吗 小程序不用主函数 也不执行 主函数

所以 自然不会执行里面的 函数了追问

你是对的

参考技术B 可能和static有关吧
init不是静态函数,要先实例化?
参考技术C 黑客不是你想学 想学就能学

Golang的init函数

Golang的init函数

1.定义

每一个源文件都可以包含一个init函数,该函数会在main函数执行前,被Go运行框架调用,也就是说init会 在main函数前被调用。

2.基本使用

//init函数
package main
 
import (
	"fmt" 
)
//定义一个init函数
func init()
   fmt.Println("init执行")

 
func main() 
  fmt.Println("main执行")

结果

3.先后顺序

如果一个文件同时包含全局变量定义,init函数和main函数,则执行的流程是全局变量定义>init函数>main函数。

1 init函数是用于程序执行前做包的初始化的函数,比如初始化包里的变量等

2 每个包可以拥有多个init函数

3 包的每个源文件也可以拥有多个init函数

4 同一个包中多个init函数的执行顺序go语言没有明确的定义(说明)

5 不同包的init函数按照包导入的依赖关系决定该初始化函数的执行顺序

6 init函数不能被其他函数调用,而是在main函数执行之前,自动被调用

同时外部的包的init 优先于 main 的init。

//init函数
package main
 
import (
	"fmt" 
)
//定义一个全局变量
var a1 = test()
func test() int
  fmt.Println("test执行")
  return 10

//定义一个init函数
func init()
   fmt.Println("init执行")

 
func main() 
  fmt.Println("main执行")
  fmt.Println(a1)

4.作用

init函数最主要的作用,就是完成一些初始化的工作

utils.go

package utils
 
var Age int 
var Name string
//使用init函数进行初始化
func init() 
	Age = 10
	Name = "小明"

main.go

//init函数
package main
 
import (
	"fmt"
  "go_code/project01/main/demo08/utils" 
)
 
func main() 
 fmt.Println(utils.Age,utils.Name)

参考文章

传送门1

传送门2

传送门3

以上是关于为啥main里的init函数没有执行的主要内容,如果未能解决你的问题,请参考以下文章

init函数与main函数

单片机里的程序是从main函数开始执行的吗?请高手进。

golang中的init函数以及main函数

Java工程打包jar,里面有一个main函数,怎么用Tomcat执行main函数呢?这个main函数的类继承Runnable

为啥我在一个VC++程序中找不到主函数main啊?

3.3 Go语言中的main函数和init函数