Java构造方法&静态

本文详细介绍了Java中构造方法的作用、格式特点、重载注意事项,以及成员变量的赋值方式。同时,深入讲解了创建对象的步骤,阐述了`static`关键字的意义,包括静态变量和成员变量的区别,强调了静态成员的共享特性及其使用注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.构造方法的作用

给对象的数据(属性)进行初始化

2.构造方法的格式特点

(1)与类的方法名相同
(2)没有返回值类型
(3)没有具体的返回值(return)

3.构造方法重载的注意事项

(1)如果我们没有给出构造方法系统将默认提供一个无参的构造方法
(2)如果我们给出了构造方法系统将不再默认给出无参构造,此时需要自己创建
(建议永远自己创建无参构造)

4.成员变量两种赋值方式的区别

(1)使用有参构造进行赋值,当修改属性值时(无其他方法可使用)只能重新创建对象,修改属性值,实际上并没有修改原对象中的内容,只是新创建了一个对象,但在运行时与预期结果相同,但此时原对象将成为垃圾
(2)使用setXxx()方法进行赋值,可以在原对象的基础上对属性值进行修改,此方法更灵活,不易产生垃圾
在使用时建议使用有参构造进行属性的初始化,在需要修改属性值时使用setXxx()方法

5.创建一个对象的步骤

(1)类加载进内存
(2)声明一个对象
(3)在堆内存中创建对象并给对象中的属性值进行默认初始
(4)对属性进行显性初始化
(5)构造方法进栈,对对象中的属性赋值,构造方法弹栈

6.static关键字

如果某个成员变量被所有对象共享,可以使用static修饰,可以节约内存,用static修饰的一般称为类成员,与类相关的
(1)内存图
(以同班学生为例)

public class Main {

    public static void main(String[] args) {
        Student.num = 1;//对象全部为1班学生
        Student s = new Student();
        s.setName("张三");
        System.out.println(Student.num + ":" + s.getName());
    }
}
class Student {
    static int num;//班级号(有初始值)
    private String name;

    public void setName(String name) {
        this.name = name;
    }

    public static void setNum(int num) {
        Student.num = num;
    }

    public static int getNum() {
        return num;
    }

    public String getName() {
        return name;
    }
}

在这里插入图片描述
(2)特点

  • 随着类的加载而存在
  • 优先于对象而存在
  • 被所有对象所共享
  • 一般通过类名.调用(可以通过对象调用)

(3)注意事项(静态只能访问静态

  • 在静态方法中是没有this 关键字的,this是随着对象的创建而存在的,被static修饰的成员优先于对象而存在
  • 静态方法中只能访问静态的成员变量和静态的方法
7.静态变量和成员变量的区别

(1)出现时间:静态变量随着类的加载而存在,成员变量随着对象的创建而存在
(2)位置不同:静态变量位于方法区的静态区中,成员变量位于堆中
(3)所属不同:静态变量属于类,成员变量属于对象
(4)调用方式不同:静态变量可以通过类名或者对象名调用,成员变量只能通过对象名调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值