基本数据类型的变量只能指向常量池
4类8种
byte、short、int、long、float、double、char、Boolean
引用数据类型的变量(指针,引用)只能指向堆
(1、类(对象);2、数组)
int[]、byte[]、Goods、......
即可以指向常量池,又可以指向堆
数据类型(一共是9个)
Byte、Short、Integer、Long、Float、Double、Character、Boolean、String
数据类型 变量名=new 构造方法()---指向堆
数据类型 变量名=直接量---指向常量池
String的底层是什么?
JDK1.8之前是char[]
JDK1.8以后是byte[]
Car数据类
package HomeHork02;
public class Car {
private String brand;
private String model;
private String color;
private String leaser;
private Double rent;
private Integer day;
private Integer state;
public void show(){
System.out.println("******************************");
System.out.print("品牌:"+this.brand);
System.out.print("t型号:"+this.model);
System.out.print("t颜色:"+this.color);
System.out.println("t状态:"+((this.state==0) ? "未出租":"已出租"));
System.out.println("******************************");
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getLeaser() {
return leaser;
}
public void setLeaser(String leaser) {
this.leaser = leaser;
}
public Double getRent() {
return rent;
}
public void setRent(Double rent) {
this.rent = rent;
}
public Integer getDay() {
return day;
}
public void setDay(Integer day) {
this.day = day;
}
public Integer getState() {
return state;
}
public void setState(Integer state) {
this.state = state;
}
}
Demo测试类
package HomeHork02;
import java.util.Scanner;
public class Demo {
static Scanner sc = new Scanner(System.in);
static Car[] arr = new Car[10];
static {
//静态代码块,在类加载的时候运行,我们可以在静态代码块中创建几个car对象放入数组中
Car car1 = new Car();
car1.setBrand("奔驰");
car1.setModel("S300");
car1.setColor("黑色");
car1.setState(0);
arr[0] = car1;
Car car2 = new Car();
car2.setBrand("宝马");
car2.setModel("x5");
car2.setColor("黑色");
car2.setState(0);
arr[1] = car2;
Car car3 = new Car();
car3.setBrand("卡丁车");
car3.setModel("越野蓝");
car3.setColor("蓝色");
car3.setState(0);
arr[2] = car3;
Car car4 = new Car();
car4.setBrand("三轮车");
car4.setModel("飞利浦");
car4.setColor("钻石粉");
car4.setState(0);
arr[3] = car4;
Car car5 = new Car();
car5.setBrand("自行车");
car5.setModel("共享单车");
car5.setColor("蓝色");
car5.setState(0);
arr[4]=car5;
}
public static void main(String[] args) {
int choice = 0;
do {
System.out.println("1、添加汽车");
System.out.println("2、删除汽车");
System.out.println("3、查看汽车");
System.out.println("4、汽车出租");
System.out.println("5、汽车归还");
System.out.println("请输入你的选择:");
choice = sc.nextInt();
switch (choice) {
case 1:
System.out.println("添加汽车");
addcar();
break;
case 2:
System.out.println("删除汽车");
dropcar();
break;
case 3:
System.out.println("查看汽车");
display();
break;
case 4:
System.out.println("汽车出租");
lease();
break;
case 5:
System.out.println("汽车归还");
back();
break;
default:
break;
}
} while (choice != 5);
System.out.println("退出");
}
//添加汽车
private static void addcar() {
System.out.println("**********进入添加汽车系统********");
Car car = new Car();
System.out.println("输入汽车品牌:");
car.setBrand(sc.next());
System.out.println("输入汽车型号:");
car.setModel(sc.next());
System.out.println("输入汽车颜色:");
car.setColor(sc.next());
System.out.println("输入汽车状态:");
car.setState(sc.nextInt());
car.setState(0);
for (int i = 0; i < arr.length; i++) {
arr[i] = car;
}
System.out.println("汽车添加成功");
}
//删除汽车
private static void dropcar() {
System.out.println("**********进入删除汽车系统********");
int carid = sc.nextInt();
for (int i = 0; i < arr.length; i++) {
if (arr[i] == arr[carid]) {
arr[i] = null;
System.out.println("第" + (i + 1) + "汽车删除成功");
break;
}
}
}
//查看汽车
private static void display() {
System.out.println("**********进入查看汽车系统********");
for (int i = 0; i < arr.length; i++) {
System.out.println((i + 1) + "号汽车");
if (arr[i] == null) {
System.out.println("空");
} else if (arr[i].getState()==0){
arr[i].show();
}else {
System.out.println("该车已被租");
}
}
}
//租车
private static void lease() {
System.out.println("**********进入租借汽车系统********");
display();
System.out.println("请输入汽车:");
int brandid = sc.nextInt()-1;
Car car=arr[brandid];
if (car==null) {
System.out.println("该汽车不存在,请重新选择");
} else if (car.getState()!=0){
System.out.println("该车已被出租");
return;
}else{
System.out.println("请输入租车人:");
car.setLeaser(sc.next());
System.out.println("请输入日租金:");
car.setRent(sc.nextDouble());
System.out.println("请输入出租的天数:");
car.setDay(sc.nextInt());
System.out.println(car.getBrand()+car.getModel()+"出租成功!");
car.setState(1);
}
}
//还车
private static void back() {
System.out.println("**********进入归还汽车系统********");
display();
System.out.println("请输入要归还的汽车:");
int backid = sc.nextInt()-1;
Car car=arr[backid];
if (car==null){
System.out.println("该车不存在,请重新输入");
}else if (car.getState()==0){
System.out.println("该车已归还,无需归还");
}else {
double pay=car.getDay()*car.getRent();
System.out.println("您一共需要支付"+pay+"元");
car.setLeaser(null);
car.setRent(null);
car.setDay(null);
car.setState(0);
System.out.println(car.getBrand()+car.getModel()+"归还成功");
}
}
}



