📃个人主页:个人主页
🔥系列专栏:JAVASE基础
目录
构造器的定义格式
- 修饰符 类名(形参列表){
- ...
- }
- public class Car {
- ...
- // 无参数构造器
- public Car(){
- ...
- }
- // 有参数构造器
- public Car(String n, String b){
- ...
- }
构造器的分类类型 变量名称 = new 构造器;
- 无参数构造器(默认存在的):初始化的对象时,成员变量的数据均采用默认值。
- 有参数构造器:在初始化对象的时候,同时可以为对象进行赋值
注意事项
- 任何类定义出来,默认就自带了无参数构造器,写不写都有。
- 一旦定义了有参数构造器,无参数构造器就没有了,此时就需要自己写一个无参数构造器了。
this出现在有参数构造器中的用法:
测试类:
- public class base {
- public static void main(String[] args) {
- Car car = new Car("张三",98.0);
- System.out.println(car.name);
- System.out.println(car.price);
- }
-
-
-
- }
未引入this:
- public class Car {
- String name;
- double price;
- public Car(String n , double b){
- name = n;
- price = b;
- }
- }

引入this:
- public class Car {
- String name;
- double price;
- public Car(String name , double price){
- this.name = name;
- this.price = price; }
- }

测试this的地址:
- public class base {
- public static void main(String[] args) {
- Car car = new Car();
- car.run();
- System.out.println(car);
- }
-
-
-
- }
- public class Car {
-
-
- public Car() {
- System.out.println("无参构造中的this:"+this);
-
- }
-
- public void run(){
- System.out.println("方法中的this:"+this);
- }
-
-
- }

故此 this 代表当前对象的地址
为什么要用封装?

封装的实现步骤
未对成员变量使用private(私有)关键字修饰进行隐藏:
- public class Student {
- int age;
- }
任何类中都能随意赋值
对成员变量使用private(私有)关键字修饰进行隐藏:
- public class Student {
- private int age;
- }
不能在其他类中赋值

| 区别 | 成员变量 | 局部变量 |
| 类中位置不同 | 类中,方法外 | 常见于方法中 |
| 初始化值不同 | 有默认初始化值 | 没有,使用之前需要完成赋值 |
| 内存位置不同 | 堆内存 | 栈内存 |
| 生命周期不同 |
随着对象的创建而存在,随着对象的消失而消失
| 随着方法的调用而存在,随着方法的运行结束而消失 |
| 作用域 | 在所归属的大括号中 |