2018-05-02学习小结 - 关于类的专题研究6

回顾

14.5 this关键字的使用

14.6 static 关键字的使用

14.6.1 使用static定义属性

学习小结

14.6.2 使用static定义方法

static声明的方法被称作“类方法”。使用static定义的方法可以由类名称直接调用。

范例 14-20 静态方法的声明

package com.Javastudy2;

/**
 * @author Y.W.
 * @date 2018年5月2日 下午10:23:34
 * @Description TODO 静态方法的声明
 */
public class P376_14_20 {

    public static void main(String[] args) {
        Person37 p1 = new Person37("张三", 25);
        Person37 p2 = new Person37("李四", 30);
        Person37 p3 = new Person37("王五", 35);
        System.out.println("修改之前信息:" + p1.talk());
        System.out.println("修改之前信息:" + p2.talk());
        System.out.println("修改之前信息:" + p3.talk());
        System.out.println("********修改之后信息:********");
        // 修改后信息
        Person37.setCity("美国");
        System.out.println("修改之后信息:" + p1.talk());
        System.out.println("修改之后信息:" + p2.talk());
        System.out.println("修改之后信息:" + p3.talk());
    }

}

class Person37 {
    String name; // 定义name属性
    private static String city = "中国"; // 定义静态属性city
    int age; // 定义age属性

    public Person37(String name, int age) { // 声明一个有参构造方法
        this.name = name;
        this.age = age;
    }

    public String talk() { // 声明一个无参方法
        return "我是:" + this.name + ",今年:" + this.age + "岁,来自:" + this.city;
    }

    public static void setCity(String c) { // 声明一个静态方法
        city = c;
    }
}

运行结果:

运行结果

14.6.3 static主方法(main)

解释main()方法的含义:由于Java虚拟机需要调用类的main()方法,所以该方法的访问权限必须是public,又因为java虚拟机在执行main()方法时不必创建对象,所以该方法必须是static的,该方法接收一个String类型的数组参数,该数组中保存执行Java命令时传递给所运行的类的参数。

传递参数命令:
java 类名称 参数1 参数2 参数3

范例14-21 向类中传递参数

package com.Javastudy2;

/**
 * @author Y.W.
 * @date 2018年5月2日 下午10:45:04
 * @Description TODO 向类中传递参数
 */
public class P378_14_21 {

    /*
     * public:表示公共方法 
     * static:表示此方法为一静态方法,可以由类名直接调用 
     * void:表示此方法无返回值main,系统定义的方法名称
     * String[] args:接收运行时的参数
     */
    public static void main(String[] args) {
        // 取得输入参数的长度
        int j = args.length; // 此时j = 0
        for (int i = 0; i < args.length; i++) {
            System.out.println(args[i]);
        }
        if (j != 2) {
            System.out.println("输入参数个数有误!!!");
            // 退出程序
            System.exit(1);
        }
    }

}

运行结果:

运行结果

14.6.4 static应用-static代码块及静态导入

静态代码块经常用来进行类属性的初始化。只被执行一次。

范例 14-22 静态代码块的使用

package com.Javastudy2;

/**
 * @author Y.W.
 * @date 2018年5月2日 下午11:23:18
 * @Description TODO 静态代码块的使用
 */
public class P379_14_22 {
    static {
        System.out.println("3.P379_14_22 类的静态代码块被调用!");
    }

    public static void main(String[] args) {
        System.out.println("4.程序开始执行!");
        // 产生两个实例化对象
        new Person38(); // 载入类时只执行一个静态代码块
        new Person38();
    }
}

class Person38 {
    public Person38() {
        System.out.println("1.public Person38()");
    }

    static {
        System.out.println("2.Person38类的静态代码块被调用!");
    }
}

运行结果:

运行结果

思考

Static关键字的使用,特别是静态代码块,我已经使用上了。


记于2018-5-2 22:12:23
By Yvan

你可能感兴趣的:(2018-05-02学习小结 - 关于类的专题研究6)