static 和构造方法

static

具体对象的属性,称之为对象属性,成员属性,实例属性。

具体对象的方法,称之为对象方法,成员方法,实例方法。

静态:static

  • 和具体对象无关,只和类相关的属性,称之为静态属性。
  • 和具体对象无关,只和类相关的方法,称之为静态方法。

静态属性和静态方法,不用实例化对象,可直接通过类来使用

先有类,再有对象。对象也可直接访问类的静态属性和静态方法。

  • 成员方法可访问类的静态属性和静态方法,也可访问成员属性和其他的成员方法。
  • 静态方法只能访问类的静态属性和其他静态方法,不能访问成员属性和成员方法。

构造方法

  • 构造方法没有 void 关键字
  • 构造方法的名称和类名完全相同
  • 如果类中没有显式定义构造方法,JVM 会隐式创建一个无参的构造方法。

执行顺序: 静态代码块 -> 成员代码块 -> 构造方法

内存中数据的存储方式

  • 元空间:存储的是类的结构信息、静态属性、静态方法、静态代码块。
  • 栈空间:存储的是变量。
  • 堆空间:存储的是具体对象的信息。

示例

class People {
    String name;
    String nationality = "china";
}

class Bird {
    // 成员属性
    String name;

    // 构造方法
    // 常用于成员属性的初始化操作
    Bird(String a) {
        name = a;
        System.out.println("构造方法 " + name);
    }

    // 成员方法
    void test() {
        System.out.println("成员方法 " + name);
    }

    // 静态属性
    static String type = "bird";

    // 静态方法
    static void fly() {
        System.out.println("bird can fly");
    }

    // 静态代码块:当类的信息加载完成时,会自动优先调用静态代码块。
    // 静态代码块可有多个,依次按顺序执行
    // 静态代码块常用于静态属性的初始化操作
    static {
        System.out.println("静态代码块");
    }

    // 成员代码块:当创建对象(实例化类)时,成员代码块会自动执行。
    // 成员代码块在静态代码块之后,构造方法之前执行。
    {
        System.out.println("成员代码块");
    }
}
People a = new People();
a.name = "jack";
System.out.println("name:" + a.name + " nationality:" + a.nationality);

// System.out.println(Bird.type);
// Bird.fly();
Bird b = new Bird("b1"); 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值