静态初始化的问题

来源:8-10 Java 中的 static 使用之静态初始化块

weibo_水瓶逝忆_03909733

2016-09-13 14:43

public class HelloWorld {
    
    String name; // 声明变量name
    String sex; // 声明变量sex
    static int age;// 声明静态变量age
    
    // 构造方法
    public HelloWorld() {
        System.out.println("通过构造方法初始化name");
        name = "tom";
    }
    
    // 初始化块
    {
        System.out.println("通过初始化块初始化sex");
        sex = "男";
    }
    
    // 静态初始化块
     static{
        System.out.println("通过静态初始化块初始化age");
        age = 20;
    }
    
    public void show() {
        System.out.println("姓名:" + name + ",性别:" + sex + ",年龄:" + age);
    }
    
    public static void main(String[] args) {
        
        // 创建对象
        HelloWorld hello = new HelloWorld();
        // 调用对象的show方法
         hello.show();
        
    }
}

为什么构造方法时命名必须要为HelloWorld(见加粗部分)?

写回答 关注

4回答

  • 谁的哀愁
    2016-09-13 15:00:42
    已采纳

    这是构造方法的命名规定,另外构造方法的作用是对本类的属性进行初始化,所以要用类名作为方法名

    weibo_...

    非常感谢!明白了

    2016-09-13 15:10:53

    共 1 条回复 >

  • 面向你
    2016-09-13 15:13:44

    第一你要知道构造函数的写法规范。(1方法名与类名相同2不需要返回值)

    第二你要知道构造函数是用来干什么的,用在哪些地方。(1主要作用是初始化也叫作实例化 2还能传值)

    第三本案例只是让你知道static(静态变量的作用及用法),通过本类名打点(.)调用。

    第四你的问题是构造函数为什么要是helloworld,因为类名是helloworld,并且在实例化helloworld这个类时,构造方法也被调用了,并且进行了传值操作。

    weibo_...

    谢谢!

    2016-09-13 15:45:29

    共 1 条回复 >

  • 慕仔8176320
    2016-09-13 15:05:24

    1.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。
     2.构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用是初始化对象。
     3.不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。

    weibo_...

    谢谢哦,明白了

    2016-09-13 15:12:15

    共 1 条回复 >

  • 此处省略一
    2016-09-13 15:00:13

    和系统默认的构造方法一样,在下面静态调用时就可直接使用,不需要重新初始化!

    weibo_...

    确实是这样的,谢谢

    2016-09-13 15:11:44

    共 1 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530802 学习 · 6091 问题

查看课程

相似问题