根据程序运行结果,静态初始化块运行了,结果初始化块没运行,是不是可以说明初始化块在类加载时不执行呢?
package com.imooc; //import com.imooc.Telephone; public class InitialTelephone { int num1;// 声明变量num1 int num2;// 声明变量num2 static int num3;// 生命静态变量num3 public InitialTelephone(){// 构造方法 num1 = 91; System.out.println("通过构造方法为变量num1赋值"); } {// 初始化块 num2 = 74; System.out.println("通过初始化块为变量num2赋值"); } static {// 静态初始化块 num3 = 84; System.out.println("通过静态初始化块为静态变量num3赋值"); } public static void main(String[] args) { // TODO Auto-generated method stub } } 程序运行结果: 通过静态初始化块为静态变量num3赋值
你的想法是对的.
静态初始化块static{}在类加载就会被执行
非静态初始化块{} 得定义对象后才会执行 Telphone p = new Telphone();
那如何在一个java文件中,使用两个同名的类呢? 如果要使用这两个不同包的类,首先要导入包,比如导入import com.Demo;和import com.imooc.Demo;会在第二个包的位置提示错误,这该怎么解决呢?
谢谢啊!