java面向对象2.0(类的相互)

在生活中我们有类似的事情会交互在一起,例如开车要修车
在程序中也有同样的场景出现:在程序中要定义一个车类和一个修理厂类

package com.constructor;
// 做一个汽车类
public class Car {
	// 私有成员属性
	private String name;
	private String color;
	private int wheelCount;
	
	
	// 无参方法
	public Car() {}


	// 有参构造方法
	public Car(String name, String color, int wheelCount) {
		this.name = name;
		this.color = color;
		this.wheelCount = wheelCount;
	}
	
	// 判断车轮子是否有4个,如果没有就去修理厂修
	public void race() {
		if (wheelCount == 4) {
			System.out.println("开着" + color + "的" + name + "以200码飙车");
		} else {
			System.out.println("快去修车...");
		}
	}
	
	// 创建getter和setter方法
	public String getName() {
		return name;
	}


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


	public String getColor() {
		return color;
	}


	public void setColor(String color) {
		this.color = color;
	}
 

	public int getWheelCount() {
		return wheelCount;
	}


	public void setWheelCount(int wheelCount) {
		this.wheelCount = wheelCount;
	}
	
	// 
	
}
  1. 修理厂类
package com.constructor;

public class Factory {
	private String name;
	private String address;
	private String tel;
	
	// 构造无参方法
	public Factory() {}

	public Factory(String name, String address, String tel) {
		this.name = name;
		this.address = address;
		this.tel = tel;
	}
	// 实现修车方法
	public void repair(Car car) {
		if (car.getWheelCount() != 4) {
			System.out.println("爆胎,修车20w");
			car.setWheelCount(4);
		} else {
			System.out.println("秀什么车,砸了!!!");
		}
	}
	
	public String getName() {
		return name;
	}

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

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	public String getTel() {
		return tel;
	}

	public void setTel(String tel) {
		this.tel = tel;
	}
}

3.在程序中交互

package com.constructor;

public class Demo5 {
	public static void main(String[] args) throws InterruptedException {
		Car car = new Car("agar", "红色", 4);
		for(int i = 1; i <= 10; i++) {
			car.race();
			Thread.sleep(500);
		}
		Thread.sleep(1000);
		
		car.setWheelCount(3);
		System.out.println("boom!!! 你轮胎炸了");
		car.race();
		
		Thread.sleep(1000);
		
		Factory factory = new Factory();
		factory.setName("奥迪4s店");
		factory.setAddress("地球村");
		factory.setTel("188后面好几个8");
		
		factory.repair(car);
		
		for(int i = 1; i <= 10; i++) {
			car.race();
			Thread.sleep(500);
		}
	}
}

在这里用到了【private】
private私有化修饰的成员变量,类外不能通过类对象操作,取值,赋值。

JavaBean规范规定了
setter ==> 赋值操作
格式:
public void set成员变量名(对应成员变量数据类型参数) {
赋值操作;
}
getter ==> 取值操作
public 对应成员变量数据类型返回值 get成员变量名字() {
return 成员变量;
}

注意
1. 方法格式固定,setter和getter方法操作过程不能修改
2. 方法需要符合命名规范,小驼峰命名法
3. boolean类型数据较特殊
boolean类型的成员变量getter方法要求是is开头

this关键字表示对象本身
1. 调用当前方法的类对象
2. 通过构造方法创建的类对象

this表示一个对象!!!当前对象!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值