JAVA基础(构造方法 static关键字)

JAVA基础

  1. 构造方法
  2. static关键字

1.构造方法

  1. 构造方法概述:
    构造方法用于创建对象并将其初始化
  2. 构造方法特点
    a:方法名与类名相同
    b:没有返回值类型,连void都没有
    c:一个类中可以有多个构造方法,如果不写这个构造方法,系统默认会给一个空参构造
    d:构造方法可以重载
public class Student {
    private String name;
    private int age;
    
    public Student(){
        System.out.println("空参构造执行了");
    }
    //构造方法的重载
    public Student(String name){
        System.out.println("一个参数的构造执行了"+name);
    }

    public Student(String name,int age) {
        System.out.println("两个个参数的构造执行了" + name+"==="+age);
    }


    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

}
  1. 有参构造和空参构造:
    一个类中默认有空参构造
    一个类中若给了有参构造,则默认没有空参构造
    一个类中若给了空参构造,则默认没有无参构造
public class Test {
    public static void main(String[] args) {
        Student student1 = new Student();  //利用空参构造创建对象
        student1.name="小何";
        student1.age=19;
        System.out.println(student1.age+"---"+student1.name);
        System.out.println("----------");
        Student student2 = new Student(20, "小明");  //利用有参构造创建对象
        System.out.println(student2.age+"---"+student2.name);

    }
}
class Student {
    int age;
    String name;

    public Student() {
    }

    public Student(int age, String name) {
        this.age = age;
        this.name = name;
    }
}

在这里插入图片描述
4. 创建对象的步骤
Student student = new Student();
步骤:
(1):加载Student.class文件进内存
(2):在栈内存为s开辟空间
(3):在堆内存为学生对象开辟空间
(4):对学生对象的成员变量进行默认初始化
(5):对学生对象的成员变量进行显示初始化
(6):通过构造方法对学生对象的成员变量赋值
(7):学生对象初始化完毕,把对象地址赋值给s变量

2.static关键字

  1. static 状态修饰符,静态的 ,可以修饰成员变量,可以修饰成员方法,
  2. static关键字特点:
    1. 被静态所修饰的成员,是随着类的加载(.class 一加载进内存,静态的数据就会加载)而加载
    2. 优先于对象存在
    3. 被类中所有对象共享,存在方法区的静态区
    4. 既可以通过类名调用,也可以通过对象名调用
  3. static使用注意事项:
    1. 在静态方法中是没有this关键字的
      静态是随着类的加载而加载,this是随着对象的创建而存在。
    2. 静态方法只能访问静态的成员变量和静态的成员方法(静态只能访问静态,非静态可以访问静态的也可以访问非静态的)
  4. 静态变量和成员变量的区别:
    1. 所属不同
      静态变量属于类,所以也称为类变量
      成员变量属于对象,所以也称为实例变量(对象变量)
    2. 内存中位置不同
      静态变量存储于方法区的静态区
      成员变量存储于堆内存
    3. 内存出现时间不同
      静态变量随着类的加载而加载,随着类的消失而消失
      成员变量随着对象的创建而存在,随着对象的消失而消失
    4. 调用不同
      静态变量可以通过类名调用,也可以通过对象调用
      成员变量只能通过对象名调用
public class Test {
    public static void main(String[] args) {
        Student student1 = new Student();
        student1.name="小何";
        student1.age=19;
        System.out.println(student1.age+"---"+student1.name);
        System.out.println(student1.banji);
        System.out.println("----------");
        Student student2 = new Student(20, "小明");
        System.out.println(student2.age+"---"+student2.name);
        System.out.println(student2.banji);

    }
}
class Student {
    int age;
    String name;
    static String banji="一年一班";

    public Student() {
    }

    public Student(int age, String name) {
        this.age = age;
        this.name = name;
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值