数组、继承

1、数组的复制方法:
System.arraycopy(arr,0,newarr,0,5);
第一个数:要copy的对象;
第二个参数:表示要从原数组的哪个位置开始复制;
第三个参数:表示复制到的新数组,即目标数组;
第四个参数:copy到的数据放到新数组的起始下标位置
第五个参数:复制的数组的长度;


2、继承的概念:
继承表示的是类与类之间的关系;is-a的关系;
在java中只有单继承,一个子类只有一个父类;
通过继承创建一个新类,叫做衍生类(子类、派生类),被继承的类成为基类(父类);
子类继承父类后,则拥有了父类所有的属性和行为;并且子类还可以扩展父类的属性的方法;


3、继承的好处:
子类可以直接拥有父类的属性和行为;
增加了代码的复用性;


4、继承的语法:
extends关键字
public class xxx extends xxx{}


5、组合与继承:
组合是类与类之间相互依赖的关系,可以达到代码的复用;
继承也是类与类之间的关系,是is-a的关系,凡是满足这个关系我们都可以继承,可以达到代码的复用,代码结构也更加清晰;


6、方法的重写:
当一个子类继承了父类如果子类中的方法与父类中的方法名称、参数列表、返回类型都一样时,则说明子类中的方法重写了父类中的方法;
子类重写了父类的方法后,子类调用时优先调用子类的方法;

@override是伪代码,表示当前方法是重写方法;
1、可以将@override看成是注解;
2、@override增强了代码的可阅读性,看到标签就知道这是一个重写方法;


getClass()类对象;
new创建出来的对象是:类的对象;


7、方法重写与重载的区别:
方法的重写:子类中的方法与父类中的方法相同(方法名称、参数列表、返回类型);重写体现的是子类与父类方法之间的关系;
方法的重载:一个类中的方法与另一个类中的方法相同,参数列表不同;重载体现的是一个类的内部方法之间的关系;

8、Object类:
Object类是所有java类的基类、根类;
当写一个类的时候,如果没有显示继承Object类,虚拟机会自动加上extends Object;
在每一个继承了Object的类里面,我们都可以进行重写:hashCode()方法、toString()方法;

equals():是Object类的方法,里面是用来判断两个对象的引用是否相等,如果你在子类里面想要判断两个对象内容是否相等,
则需要在子类里面重写equals()方法,子类在调用时则优先调用重写后的方法;


toString():一个字符串想要和另一个字符串进行拼接,toString()方法可以将其他类型转换为字符串,然后在进行拼接;
如果输入的是对象,默认会调用toString()方法,打印地址+hadhCode码;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个简单的汽车出租系统Java程序的示例,使用了继承数组。 首先,我们定义一个Car类来表示汽车: ```java public class Car { private String make; private String model; private int year; private double price; public Car(String make, String model, int year, double price) { this.make = make; this.model = model; this.year = year; this.price = price; } public String getMake() { return make; } public String getModel() { return model; } public int getYear() { return year; } public double getPrice() { return price; } public String toString() { return year + " " + make + " " + model + ", $" + price; } } ``` 然后,我们定义一个RentalCar类来表示出租汽车,它继承自Car类: ```java public class RentalCar extends Car { private boolean rented; public RentalCar(String make, String model, int year, double price) { super(make, model, year, price); rented = false; } public boolean isRented() { return rented; } public void rent() { rented = true; } public void returnCar() { rented = false; } public String toString() { String status; if (rented) { status = " (rented)"; } else { status = " (available)"; } return super.toString() + status; } } ``` 在RentalCar类中,我们添加了一些特定于租车的方法,如rent()和returnCar(),并添加了一个表示是否已被租赁的变量rented。 现在,我们可以创建一个CarRentalSystem类,用于管理所有的租车: ```java import java.util.Scanner; public class CarRentalSystem { private RentalCar[] cars; public CarRentalSystem(int size) { cars = new RentalCar[size]; } public void addCar(int index, RentalCar car) { cars[index] = car; } public RentalCar getCar(int index) { return cars[index]; } public void rentCar(int index) { cars[index].rent(); } public void returnCar(int index) { cars[index].returnCar(); } public void displayCars() { for (int i = 0; i < cars.length; i++) { System.out.println(i + ": " + cars[i]); } } public static void main(String[] args) { CarRentalSystem system = new CarRentalSystem(3); system.addCar(0, new RentalCar("Toyota", "Camry", 2020, 50.0)); system.addCar(1, new RentalCar("Honda", "Accord", 2021, 60.0)); system.addCar(2, new RentalCar("Nissan", "Altima", 2019, 40.0)); Scanner scanner = new Scanner(System.in); int choice; do { System.out.println("1. Rent a car"); System.out.println("2. Return a car"); System.out.println("3. Display available cars"); System.out.println("4. Exit"); System.out.print("Enter your choice: "); choice = scanner.nextInt(); switch (choice) { case 1: System.out.print("Enter car number to rent: "); int rentIndex = scanner.nextInt(); system.rentCar(rentIndex); break; case 2: System.out.print("Enter car number to return: "); int returnIndex = scanner.nextInt(); system.returnCar(returnIndex); break; case 3: system.displayCars(); break; case 4: System.out.println("Goodbye!"); break; default: System.out.println("Invalid choice, try again."); break; } } while (choice != 4); } } ``` 在CarRentalSystem类中,我们使用了一个RentalCar类型的数组来存储所有的租车,并添加了一些方法来管理这些租车。在main()方法中,我们创建了一些RentalCar对象,并添加到CarRentalSystem类中。然后,我们使用一个简单的菜单来让用户选择租车、还车或显示可用车辆。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值