首页 > 编程语言 >深度讲解Java中的面对象,通俗易懂

深度讲解Java中的面对象,通俗易懂

时间:2024-10-19 18:22:47浏览次数:3  
标签:Java int void 多态 通俗易懂 class 讲解 方法 public

目录

1. 封装(Encapsulation)

2. 继承(Inheritance)

3. 多态(Polymorphism)

4. 抽象(Abstraction)

总结

在Java中,“面向对象编程”(Object-Oriented Programming,简称OOP)是核心概念之一。它通过使用类和对象来组织代码,允许程序员创建可以模拟现实世界事物的代码结构。Java中的面向对象编程有四大基本特性:封装(Encapsulation)、继承(Inheritance)、多态(Polymorphism)和抽象(Abstraction)。我将结合每个概念来解释,并提供一些通俗的例子。

1. 封装(Encapsulation)

封装是将对象的状态(属性)和行为(方法)打包在一起,并对外部隐藏细节,只暴露必要的接口。封装有助于保护数据的完整性,并控制对数据的访问。

例子: 假设我们有一个“汽车”类。汽车有“速度”、“燃油量”等属性,我们不希望外部程序直接修改这些属性,而是通过“加速”、“刹车”、“加油”等行为来间接改变它们。


java

复制代码

class Car { private int speed; // 速度 private int fuel; // 燃油量 // 构造器 public Car(int fuel) { this.fuel = fuel; this.speed = 0; } // 加速 public void accelerate() { if (fuel > 0) { speed += 10; fuel -= 5; } else { System.out.println("燃油不足,无法加速!"); } } // 获取当前速度 public int getSpeed() { return speed; } // 加油 public void refuel(int amount) { fuel += amount; } }

解释: 我们将“速度”和“燃油量”设置为private,因此它们只能通过“加速”和“加油”方法来修改,这就是封装的应用。

2. 继承(Inheritance)

继承是Java中允许一个类(子类)从另一个类(父类)继承属性和方法的机制。继承使我们能够创建更具体的类,而不需要重复编写代码。

例子: 想象一个“动物”类,有一些通用的行为,如“移动”和“吃东西”。我们可以创建一个“猫”类继承自“动物”类,而无需重新定义这些通用行为。


java

复制代码

class Animal { public void move() { System.out.println("动物正在移动"); } public void eat() { System.out.println("动物正在吃东西"); } } class Cat extends Animal { public void meow() { System.out.println("猫咪在喵喵叫"); } }

解释: Cat类继承了Animal类,因此可以使用moveeat方法。同时,Cat类还可以添加新的方法,如meow

3. 多态(Polymorphism)

多态允许对象以多种形式表现出来。Java中的多态有两种主要形式:方法重载和方法重写。多态使得我们可以对同一个方法使用不同的实现,而不改变方法的调用方式。

例子1:方法重载(同名方法,但参数不同):


java

复制代码

class Calculator { public int add(int a, int b) { return a + b; } public double add(double a, double b) { return a + b; } }

解释: add方法有两个版本,一个处理整数相加,一个处理浮点数相加,这就是重载的多态性。

例子2:方法重写(子类重新定义父类的方法):


java

复制代码

class Animal { public void makeSound() { System.out.println("动物在发出声音"); } } class Dog extends Animal { @Override public void makeSound() { System.out.println("狗在汪汪叫"); } }

解释: Dog类重写了makeSound方法,当我们调用这个方法时,会输出“狗在汪汪叫”,这就是方法重写的多态性。

4. 抽象(Abstraction)

抽象是指隐藏对象的复杂性,只暴露必要的功能。Java通过使用抽象类和接口实现抽象。抽象类可以包含具体方法和抽象方法,而接口只包含抽象方法。

例子:


java

复制代码

abstract class Vehicle { abstract void drive(); // 抽象方法,不提供实现 } class Bike extends Vehicle { @Override void drive() { System.out.println("骑自行车"); } }

解释: Vehicle类是抽象的,不能被实例化,只有实现了它的具体子类Bike才能创建对象,并提供drive方法的实现。


总结:

  • 封装:通过私有属性和公开方法来保护数据。
  • 继承:通过继承父类属性和方法来避免代码重复。
  • 多态:通过方法重载或重写,使同一个方法在不同场景下表现出不同的行为。
  • 抽象:通过抽象类和接口隐藏复杂实现,只暴露必要功能。

这些概念协同工作,使Java程序更加模块化、可维护且易于扩展。通过面向对象的设计,程序可以更好地模拟现实世界中的事物,从而实现灵活、可重用的代码结构。


标签:Java,int,void,多态,通俗易懂,class,讲解,方法,public
From: https://blog.csdn.net/error_log7/article/details/143082052

相关文章

  • 基于Java数据库管理系统的毕业设计论文
    摘要数据库管理系统是一个快速分析数据、方便管理者管理所有数据的后台操作系统,所以将传统的图书管理方式彻底的解脱出来,可以提高管理员的工作效率,减轻管理员以往繁忙的工作,减小出错的概率。从而使人们有更多时间来获取信息、了解信息、掌握信息。数据库的开发主要包括后台......
  • 【最新Java必过毕设选题】基于SSM的医院门诊互联电子病历管理信息系统(源码+万字LW+答
    作品简介 Hi,各位同学好呀!今天向大家分享一个最新完成的高质量毕业设计项目作品基于SSM的XXX管理系统项目评分(最低0分,满分5分)难度系数:3分工作量:5分创新点:3分界面美化:5分使用技术前端:html/js/css/vue后端:ssm数据库:MySql服务器:apache-tomcat编译器:Int......
  • 【最新Java必过毕设选题】基于微信小程序的智能停车场管理小程序(源码+万字LW+答辩PPT)
    作品简介 Hi,各位同学好呀!今天向大家分享一个最新完成的高质量毕业设计项目作品基于ssm+uniapp的XXX微信小程序项目评分(最低0分,满分5分)难度系数:3分工作量:5分创新点:3分界面美化:5分使用技术小程序框架:uniapp小程序开发软件:HBuilderX小程序运行软件:微信开发者......
  • java计算机毕业设计病历管理系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着信息技术的飞速发展,计算机技术已经深入到各个领域并发挥着重要作用。在医疗行业中,传统的病历管理方式以纸质病历为主,这种方式存在诸多弊端。......
  • java计算机毕业设计湖都银行职员信息管理(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景在当今的金融领域,银行作为关键的金融机构,承担着诸多重要职能,如资金存储、转移与信贷等。湖都银行作为其中一员,面临着激烈的市场竞争与严峻的风险......
  • java计算机毕业设计宠物店销售管理系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着社会的发展和人们生活水平的提高,宠物在人们生活中的地位日益重要,宠物店行业得到了迅猛发展。传统的宠物店管理方式主要依赖人工操作,面临着诸......
  • java堆排序的示例代码
    publicclassHeapSort{publicstaticvoidmain(String[]args){int[]arr={12,11,13,5,6,7};System.out.println("Originalarray:");for(intvalue:arr){System.out.print(value+"");......
  • Java概述
    第一章——JAVA概述1、计算机基础知识与java概述下载安装计算机硬件(ComputerHardware)是指计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称。这些物理装置按系统结构的要求构成一个有机整体为计算机软件运行提供物质基础。计算机通常由CPU、主板、内存、电源、主......
  • Java基础(一)
    Java基础(一)1、变量与数据类型1、数据类型/*java是一门强类型语言。变量:指的是在java程序运行过程中,其值可以发生改变的量定义一个变量的语句定义格式:数据类型变量名=初始化值;数据类型:基本数据类型:整数类型:所......
  • Java基础(二)
    第三章Java基础(二)1、while循环双重for循环1、while循环:for循环语句和while循环语句可以等价转换,但还是有些小区别的使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原......