Java se 复习05

  1. 关键字static:某些特定数据在内存空间内只有一份
      使用static修饰属性和方法:多个对象共享同一个静态变量,当通过某一个对象修改静态变量时,每一个对象的静态属性都会修改。

          ①随着类的加载而加载;
    
          ②静态变量要早于对象的创建;
    
          ③由于类只加载一次,静态变量也只加载一次;
    
          ④静态方法中只能调用静态属性或方法;(和生命周期有关)
    
          ⑤在静态方法中不能使用this和super关键字;
    
  2. 关于main方法的使用。
      ①作为程序的入口;
      ②是一个普通的静态方法;
      ③可利用main()方法中的形参实现和控制台的交互。

怎么利用eclipse实现第三条?

先编译代码,代码如下

public class MainTest {
  public static void main(String[] args) {
	     //输出args中的值
	  for(int i=0;i<args.length;i++){
	     System.out.println("*****"+args[i]);
	  }
}
}

run as Configurations
在这里插入图片描述
找到刚才编译的源文件,选择arguments参数,在program arguments中填入参数
在这里插入图片描述
参数可以加双引号也可以不加,默认都是string类型数据,每个参数之间用空格隔开。
在这里插入图片描述
输出结果:
在这里插入图片描述

怎么使用命令行实现第三条?

运行时直接在后面加上参数
在这里插入图片描述
注:由于默认main()中形参是String类型,如果想要获取int型数据可以通过Integer.paraseInt();构造获得。
3. new一个对象的加载过程。
   ①加载所有类(先父类后子类)的静态代码块;
   ②加载非静态代码块;
   ③加载构造器;
(②③的步骤的加载一个类完成后下一个类才会加载)

     public class Instantiate {
    static{
        System.out.println("Instantiate静态代码块初始");
    }
    {
        System.out.println("Instantiate普通代码块初始");
    }
    public Instantiate(){
        System.out.println("Instantiate无参构造初始");
    }
    public Instantiate(String s){
        System.out.println("Instantiate有参构造初始");
    }
}

class Instantiate_1 extends Instantiate{
    static {
        System.out.println("Instantiate_1静态代码块初始");
    }
    {
        System.out.println("Instantiate_1普通代码块初始");
    }
    public Instantiate_1(){
        //调用父类有参构造
        super("Test");
        System.out.println("Instantiate_1无参构造初始");
    }
}
class InstantiateTest{
    public static void main(String args[]){
        new Instantiate_1();
    }
}

输出结果:
在这里插入图片描述

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页