面向对象基础
目录
面向对象和面向过程区别
创建一个对象用什么运算符?对象实体与对象引用有何不同
对象相等和引用相等区别
如果一个类没有声明构造方法,该程序能正确执行吗?
构造方法有哪些特点?是否可被 override?
面向对象和面向过程区别
两者的主要区别在于解决问题的方式不同:
面向过程编程:面向过程把解决问题的过程拆成一个个方法,通过一个个方法的执行解决问题。
面向对象编程:面向对象编程的设计思想是以对象为中心,通过对象之间的交互来完成程序的功能,具有灵活性和可扩展性。
创建一个对象用什么运算符?对象实体与对象引用有何不同
1. 创建一个对象用什么运算符?
new 运算符
2.对象实体与对象引用有何不同?
对象引用存放对象实体的地址,对象实体存储对象具体的数据
一个对象引用可以指向 0 个或 1 个对象;
一个对象可以有 n 个引用指向它
对象相等和引用相等区别
对象的相等一般比较的是内存中存放的内容是否相等。
引用相等一般比较的是他们指向的内存地址是否相等。
实例:字符串变量比较 ==比较的是内存地址; equals比较的是字符串内容
如果一个类没有声明构造方法,该程序能正确执行吗?
可以正确执行。
在 Java 里,当你没有为类定义任何构造方法时,Java 编译器会自动为该类提供一个默认的无参构造方法。但一旦你为类定义了至少一个有参构造方法,编译器就不会再自动提供无参构造方法了。如果此时你还需要使用无参构造方法来创建对象,就必须手动编写它。
构造方法有哪些特点?是否可被 override?
构造方法具有以下特点:
名称与类名相同:构造方法的名称必须与类名完全一致。
没有返回值:构造方法没有返回类型,且不能使用 void 声明。
自动执行:在生成类的对象时,构造方法会自动执行,无需显式调用。
构造方法不能被重写(override),但可以被重载(overload)
class Animal {
protected String name;
// 有参构造方法
public Animal(String name) {
this.name = name;
System.out.println("父类 Animal 的构造方法被调用,创建了一个名为 " + name + " 的动物。");
}
}