Java学习
4.再识Java

1 面向对象
1.1 Object类
Object是JDK中提供的一个类,位于java.lang包中,该类是所有类的直接父类或者间接父类,无论是JDK的类,还是开发者自定义的类,以及第三方框架工具中的类,都是Object的直接或者间接子类
1.1.1 重写Object类的方法
| 方法 | 描述 |
|---|---|
| public String toString() | 以字符串的形式返回该类的实例化对象信息 |
| public boolean equals(Object object) | 判断两个对象是否相等 |
| public native int hashCode() | 返回对象的散列码 |
native修饰的叫做本地方法,什么是本地方法呢?
Java无法完成的一些操作,由其他语言c++来完成,Java只是定义,C++具体实现。
hashcode方法返回一个对象的散列值,这个值是由对象的内存地址结合对象内部信息得出的
1.2 包装类
8种基本数据类型
引用类型
基本数据类型的数据不是对象,引用类型次啊是对象
某些场景需要通过对象来描述基本数据类型
通过包装类来解决这一问题,包装类是Java提供的一组类,专门用来创建8种基本数据类型对应的对象
| 基本数据类型 | 包装类 |
|---|---|
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
| char | Character |
| boolean | Boolean |
1.2.1 装箱和拆箱
装箱是指将基本数据类型转为对应的包装类对象
拆箱是指将包装类对象转为对应的基本数据类型
2 接口
2.1 什么是接口
面向接口编程:就是将程序的业务逻辑进行分离,以接口的形式去对接不同的业务模块
结果只串联不是先,真正的业务逻辑交给接口的实现类来完成,当用户的需求发生变更的时候,只需要切换不同的实现类,而不需要修改串联模块的接口,减少对系统的影响
实现程序的解耦合
降低程序的耦合度,耦合度是指不同模块连接的紧密程度
2.2 如何使用接口
Java使用class来标识类,使用interface来标识接口
2.3面向接口编程的实际应用
场景:某工厂生产产品A,主要由设备A来完成生产,用程序模拟这个过程
java
public class Factory {
private EquipmentA equipment;
public EquipmentA getEquipment(){
return equipment;
}
public void setEquipment(EquipmentA equipment){
this.equipment = equipment;
}
public void work(){
System.out.println("开始生产.....");
this.equipment.work();
}
}
java
public class EquipmentA {
public void work(){
System.out.println("设备A运行,生产产品A");
}
}
java
public class test {
public static void main(String[] args) {
EquipmentA e = new EquipmentA();
Factory factory = new Factory();
factory.setEquipment(e);
factory.work();
}
}
新订单要求生产产品B,需要使用设备B来生产
使用接口来实现
java
public class Factory {
private Equipment equipment;
public Equipment getEquipment(){
return equipment;
}
public void setEquipment(Equipment equipment){
this.equipment = equipment;
}
public void work(){
System.out.println("开始生产.....");
this.equipment.work();
}
}
java
public interface Equipment {
public void work();
}
java
public class EquipmentA implements Equipment {
public void work(){
System.out.println("设备A运行,生产产品A");
}
}
java
public class EquipmentB implements Equipment {
public void work(){
System.out.println("设备B运行,生产产品B");
}
}
java
public class test {
public static void main(String[] args) {
EquipmentA a = new EquipmentA();
EquipmentB b = new EquipmentB();
Factory factory = new Factory();
factory.setEquipment(b);
factory.work();
}
}
评论