【JavaSE】类和构造方法

版权声明:如需转载,请注明出处 https://blog.csdn.net/baidu_41813368/article/details/84197368

基本概念

类就是指共性的概念,而对象指的是一个具体的、可以使用的事物。

首先产生类(类是生产对象的蓝图),而后才可以产生对象。对象的所有行为,一定在类中进行了完整的定义。

类中所包含的东西

属性,构造方法,普通方法,getter方法,setter方法

定义一个汽车类

public class Car{
	//属性
	private String brand;
	String color;
	private String num;
	//构造方法(创建对象)
	public Car(String brand,String color,String num){
		this.color = color;
		this.num = num;
		this.num = num;
	}
	//方法
	String carInfo(){
		System.out.println(this);//打印当前对象的标识符
		return " 品牌: "+brand+" 颜色: "+color+" 车牌号: "+num+" 车型:";
	}
	void run(){
		System.out.println("一辆车牌号为"+num+"的车在高速路上行驶");
	}
	
	String getBrand(){
		return brand;
	}
	String getNum(){
		return num;
	}
	public void setBrand(String b){
		brand=b;
	}
	public void setNum(String n){
		num=n;
	}
}

产生一个对象
语法:类名称 变量名称 = new 类名称()

public class Test1{
	public static void main(String[] args){
		Car car1 = new Car("宝马","黑色","1235");
		Car car2 = new Car("奔驰","黑色","1111");
		System.out.println(car1.carInfo());
		System.out.println(car2.carInfo());	
	}
}

类的设计原则

  • 编写类时,类中的所有属性必须使用private封装。
  • 属性若要被外部访问,必须定义setter、getter方法。

构造方法

如何创建对象(对象实例化)

①类名称 ②对象名称 = ③new ④类名称()
①任何对象都应该有其对应的类,类是对象的蓝图
②是一个唯一的标记,引用一块堆内存
③ 表示开辟新的堆内存空间
④ 构造方法(类名称一定要和构造方法的名称相同)

过以上分析可以得知,所谓的构造方法就是使用关键字new实例化新对象时来进行调用的操作方法

创建一个车的对象

Car car1 = new Car("白色","1111");

构造方法

	//构造方法(创建对象)
	public Car(String color,String num){
		this.color = color;
		this.num = num;
	}

注意:
1.构造方法中是不需要返回值类型的
2.每个类中至少要有一个构造方法,当类中没有构造方法时,类里面有默认的构造方法(是一个无参的构造方法)
3.创建对象时的参数,要和构造方法里的参数类型、数量相同

构造方法没有返回值,为什么不用void声明?

编译器是根据程序结构来区分普通方法与构造方法的,如果加一个void就是一个普通的方法,不能区分出来构造方法,所以在构造方法中没有返回值

给属性赋值的途径:

1.在对对象创建的时候赋值
2.创建好对象之后通过方法来赋值

		Car car1 = new Car("宝马","黑色","1235");
		car1.setBrand("奔驰");

构造方法重载

	//构造方法(创建对象)
	public Car(String color,String num){
		this.color = color;
		this.num = num;
	}
	public Car(String brand,String color,String num){
		this.brand = brand;
		this.color = color;
		this.num = num;
	}

注意:从少到多写

构造方法重载优点:
提供多种途径,创建不同的对象时给属性赋值

匿名对象

匿名对象创建: new 类名称

	new Car("白色","1111")

由于匿名对象创建一个对象,没有把他赋给任何变量
匿名对象没有任何栈空间所指向,所以使用一次后就会成为垃圾空间

猜你喜欢

转载自blog.csdn.net/baidu_41813368/article/details/84197368