java学习时 get set方法问题

#在学习java时,在测试类里面为什么没有写set却能够正确调用get.
#这是代码

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Test1[] arr=new Test1[3];//汽车数组

        //输入信息
        for (int i = 0; i < arr.length; i++) {


            Scanner sc = new Scanner(System.in);
            System.out.println("品牌");
            String brand1 = sc.next();
            System.out.println("价格");
            double price1 = sc.nextDouble();
            System.out.println("颜色");
            String color1 = sc.next();
            Test1 c = new Test1(brand1, price1, color1);
            arr[i]=c;


        }
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i].getBrand()+","+arr[i].getColor()+","+arr[i].getPrice());
        }

    }
}
为什么我没有写 XX.setBrand(brand1).
下面却能够正常调用getBrand.

设值不是通过setBrand方法,是通过new Test1传的三个参数,所以不需要再set

test类都得到新的值了,所以get可以

set方法和get方法是两个独立的方法啊,你在初始化Test1类的时候,通过构造方法传入的参数,里面就有值了,
另外就算没有通过构造方法传入值,也会有默认值的

get方法用于获取类中的属性值,set方法用于设置类中的属性值,构造器用于创建新对象和初始化对象的状态。

因为你的代码中使用的是一个设置变量的构造函数,它自动将参数传入到对象的属性中。