什么是面向对象?
面向对象是一种思想,世间万物都可以看做一个对象。面向对象软件开发具有以下优点:
代码开发模块化,更易维护和修改。
代码复用性强。
增强代码的可靠性和灵活性。
增加代码的可读性。
面向对象的特征?
封装、继承、多态、抽象。
封装(Encapsulation):封装是将数据和操作封装在一个单元(即对象)中,通过定义公共接口来控制对数据的访问。对象的内部状态和实现细节被隐藏,只暴露有限的接口供其他对象进行交互。封装提供了数据的安全性和灵活性,同时也实现了代码的模块化和重用。
继承(Inheritance):继承是一种机制,允许一个类(称为子类或派生类)从另一个类(称为父类或基类)继承属性和方法。子类可以继承父类的特征,并且可以在此基础上进行扩展、修改或重写。继承实现了代码的重用和层次结构的组织,提供了面向对象编程中的一种重要关系。
多态(Polymorphism):多态是指同一个方法名可以在不同的对象上执行不同的操作,提供了一种统一的接口来处理不同类型的对象。多态可以通过继承和接口实现,使得代码更加灵活和可扩展。在多态中,对象的具体类型可以在运行时确定,实现了代码的动态性。
抽象(Abstraction):抽象是指将复杂的现实世界问题抽象为类、接口或抽象类等概念,忽略不必要的细节,关注问题的本质和关键特征。抽象提供了一种模型化的方式来描述问题领域,帮助开发人员理解和处理复杂性。抽象也是面向对象编程的核心思想之一。
抽象类和接口有什么区别?
从设计层面来说,抽象是对类的抽象,是一种模板设计,接口是行为的抽象,是一种行为的规范。
相同点:接口与抽象类都不能被实例化,但可以定义引用变量指向实例对象。本类型之间扩展关键字都是extends。
不同点:
java类的定义/组成?
类的定义由访问级别、类型、类名、是否抽象、是否静态、泛型标识、继承或实现关键字、父类或接口名称等组成。
类的访问级别有public和无访问控制符。
类的类型为class、interface、enum。
相关demo:System.out.println();语句不写在方法内会报错。
java public class Test{ public static void main(String[] args){ System.out.println("Hello World"); } System.out.println("Hello World");//此处编译器报错 }
== equals()
==比较
基本类型:比较的就是值是否相同。
引用类型:比较的就是地址值是否相同。
equals:
引用类型:默认情况下,比较的是地址值。
两个对象的hashCode相同,equals方法不一定为true。