Java面向对象编程基础知识点全面解析

发表时间: 2024-07-31 10:25

一、Java简介

Java是一种广泛使用的编程语言,Java的设计初衷是“一次编写,到处运行”,这得益于其跨平台的特性,即编写的Java程序可以在任何支持Java虚拟机(JVM)的平台上运行,无需修改。

Java的主要特点包括

  1. 面向对象:Java是一种纯面向对象的语言,它支持类、继承、封装和多态等面向对象的基本概念。
  2. 可移植性:Java程序通过JVM在不同的操作系统上运行,这使得Java程序具有高度的可移植性。
  3. 健壮性:Java提供了强类型检查、数组边界检查、异常处理等机制,使得Java程序更加健壮。
  4. 安全性:Java通过沙箱安全模型、类加载器、安全管理器等多种机制来确保程序的安全性。
  5. 分布式:Java支持多种网络协议,可以方便地开发分布式应用,如远程方法调用(RMI)和Web服务等。
  6. 多线程:Java内置对多线程的支持,可以通过线程(Thread)和并发库(如Executors框架)来编写高效的多线程程序。
  7. 丰富的库:Java标准库(Java Standard Edition, JSE)提供了大量的类和方法,用于执行常见的编程任务,如输入/输出、网络通信、数据库连接等。

Java文件运行过程

  • 编写源代码(.Java)
  • 编写Java文件(编译生成.class文件)
  • 在JVM 上运行.class文件

二、Java语言基础语法

八大基础数据类型

1.整型(Integer Types)

  • byte:占用1个字节,取值范围为-128到127。
  • short:占用2个字节,取值范围为-32,768到32,767。
  • int:占用4个字节,是Java中最常用的整数类型,取值范围非常大,通常为-2,147,483,648到2,147,483,647。
  • long:占用8个字节,用于表示非常大的整数,取值范围极大,需要在数值后加L或l来声明。

2.浮点型(Floating-Point Types)

  • float:占用4个字节,用于表示有小数部分的数值,需要在数值后加F或f来声明。
  • double:占用8个字节,是Java中默认的浮点类型,表示范围更广,精度更高。

3.字符型(Character Types)

  • char:占用2个字节,用于表示单个字符,可以存储Unicode字符集中的任何字符。

4.布尔型(Boolean Type)

  • boolean:不是以数值形式存储,而是表示逻辑上的真(true)或假(false)。

三、面向对象三大特性:封装、继承与多态

1.封装:封装是隐藏对象的属性和实现细节,仅对外公开接口(即方法)与对象进行交互。封装是保护对象内部状态、属性和实现细节免受外部代码直接访问的一种机制。它使得代码更加模块化,并且有助于降低对象之间的耦合度。

特点:

  • 隐藏内部实现细节。
  • 只对外公开必要的接口。
  • 提高了数据的安全性。
  • 提高了代码的复用性。

实现方式:

  • 使用访问修饰符(如Java中的private、protected、public等)来控制对类成员的访问。
  • 提供公共的getter和setter方法来访问和修改私有成员。

2.继承:继承是一种代码复用的方式,它允许我们定义一个类(子类或派生类)来继承另一个类(父类或基类)的属性和方法。子类可以拥有父类的所有属性和方法,并且可以添加新的属性和方法或覆盖(重写)父类的方法。

特点:

  • 提高了代码的重用性。
  • 实现了代码的扩展性。
  • 建立了类之间的层次关系。

实现方式:

  • 在定义子类时,使用extends或inherits关键字来指定继承的父类。
  • 子类可以重写父类的方法,以提供特定的实现。

3.多态:多态是指允许不同类的对象对同一消息作出响应。在面向对象编程中,多态性通常通过方法的重写(Override)和重载(Overload)来实现。此外,接口和抽象类也是实现多态性的重要手段。

特点:

  • 提高了程序的扩展性和灵活性。
  • 允许使用父类类型的引用指向子类对象。
  • 可以在运行时决定调用哪个类的方法。

实现方式:

  • 方法重写:子类可以提供一个特定签名的方法实现,该方法在父类中已有定义。运行时,将根据实际对象的类型来调用相应的方法。
  • 方法重载:在同一个类中,可以有多个同名方法,只要它们的参数列表不同即可。调用时将根据传入的参数类型与数量来选择具体的方法。
  • 接口和抽象类:通过定义接口或抽象类,子类可以实现或继承它们,从而提供具体的实现。这允许在不知道具体实现类的情况下,编写使用这些接口或抽象类的代码。


四、引用数据类型

引用数据类型不是直接存储数据值,而是存储对某个对象的引用(即内存地址)。

Java中的引用数据类型包括:

  1. 类(Class Types):用户自定义的类,如String、ArrayList等,都是引用数据类型。
  2. 接口(Interface Types):是一种特殊的引用类型,是方法声明的集合。
  3. 数组(Array Types):数组是固定大小的、同类型元素的集合,可以是基本数据类型的数组,也可以是引用数据类型的数组。

五、为什么Java里有基本数据类型和引用数据类型?

引用类型在堆里,基本类型在栈里。

栈空间小且连续,往往会被放在缓存。引用类型cache miss率高且要多一次解引用。

对象还要再多储存一个对象头,对基本数据类型来说空间浪费率太高。


对文章感兴趣的可以关注公众号“编程百事通”。

本人已上岸,从培训机构花18888元买的资料用不上了,现无偿分享,需要Java基础知识点总结以及Java实战项目的后台私信发送“1”,即可免费领取。记得点赞转发。