当前位置: 首页 > news >正文

JAVA中的OPP概念

Java的最大优势之一是面向对象编程(OOP)。这就是为什么这种语言变得如此流行,并且非常适合任何规模的项目。什么是面向对象编程?这不是魔法,但如果你真的进入其中,它看起来会很神奇。OOP是关于如何构建你的软件。这是一个概念,或者更确切地说,是Java中的一堆oop概念,允许您在Java对象之间创建一些特定的交互和关系,以便有效地开发和使用软件。

Java中的OOP概念 - 1

经典OOP包括3 + 1主要概念。让我们从经典开始。

对象

Java物件以及現實世界物件有兩個特徵:狀態和行為。

例如,人类对象有状态(姓名、性别、睡眠与否......)和行为(研究Java、步行、谈话......)。任何Java对象都将其状态存储在字段中,并通过方法公开其行为。

封装

数据封装是将内部数据隐藏到外部世界,并且只能通过公开的方法访问它。那是什么意思?什么数据?躲着谁?隐藏意味着限制对类的数据成员(字段)的直接访问。

它在Java中是如何工作的:

  1. 领域是私人的
  2. 类中的每个字段都有两种特殊方法:一个getter和一个setter。Getter方法返回字段的值。设置器方法允许您以间接但允许的方式更改字段的值。
Java代码中的封装示例:
public class Student {
private int age;
private String name;public int getAge() {
return age;
}public void setAge(int age) {
this.age = age;
}public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}public class Test{
public static void main(String[] args) {
Student firstStudent = new Student();
firstStudent.setName("John");
// The name field is private, so you can no longer do this:  firstStudent.name = "John";
}
}

为什么要使用封装?

主要原因是让更改代码变得更容易。想象一下,你有一所曲棍球学校的申请,有一个曲棍球学生班,有两个字段,可以存储学生入学时的姓名和年龄。像这样的东西:

public class HockeyStudent {
public String name;
public  int ageOfEnrollment;
}

ageOfEnrollment字段是公开的,没有获取器或设置器......该类被许多其他类使用,一切都很好,直到一些开发人员决定单个int字段是不够的。一个队列中的一些曲棍球运动员比他们的同龄人大将近一岁,因此根据他们出生的月份将他们分成两组会更方便。因此,ageOfEnrollment字段应更改为int数组(int[][]):第一个数字是满年,第二个数字是月。现在您需要重构所有使用学生类的代码!但是,如果您的ageOfEnrollment字段是私人的,并且您有获取者和设置者,那么一切都会更容易。如果设置学生年龄的要求发生变化,只需更新setAgeOfEnrollment()设置方法中的逻辑,您的班级就可以继续使用Student,没有任何问题!这个例子有点人为,但我希望它能解释为什么使用封装是一个好主意。

继承

即使没有任何实践经验,这个原则也更容易理解。不要重复自己(DRY)可能是继承概念的座右铭。继承允许您创建一个子类,该子类继承父类的字段和方法,而无需重新定义它们。当然,您可以在子类中覆盖父类的字段和方法,但这不是必须的。此外,您可以在子类中添加新的状态和行为。父类有时被称为超类或基类,子类被称为子类。Java的扩展关键字用于在代码中实现继承原则。

Java网络研讨会

它在Java中是如何工作的:

http://www.dtcms.com/a/458031.html

相关文章:

  • 电商网站技术方案做app模板网站有哪些内容
  • 从零起步学习Redis || 第十章:主从复制的实现流程与常见问题处理方案深层解析
  • 西安网站定制开发做网站建设公司怎么样
  • 【解决办法】GitBash不能在任意文件夹打开
  • 网站开发过程及要点p2p网站怎么做
  • 高端网站建设找哪个公司工商营业执照网上申报
  • 【C++】AVL树的模拟实现
  • 顺的品牌网站设计信息网站设计用什么做
  • 深圳建设网站服务响应网站建设
  • 织梦网站怎么关闭网站建设及规划方案
  • 了游*赜侠斗僮诘谮*游戏程序系统方案
  • 网站程序如何制作网页游戏吧
  • fork():进程界的“分身魔法”
  • cesium126,230301,只需要部分倾斜摄影(整个地图太大了):
  • 网站上传文件存储方式爱站网
  • 门户网站架构做一个网站要多久
  • 管理软件网站模板广州专业建设网站
  • redis队列操作
  • 个人怎样申请网站玻璃钢产品哪个网站做推广好
  • ISO 27001 foundation/lead auditor认证比较
  • 【开题答辩全过程】以 爱车小档案应用系统开发与实现为例,包含答辩的问题和答案
  • Java学习之旅第二季-11:继承
  • LangGraph学习笔记 (一)
  • 微网站建设的第一步是进行首页的设置昆明会员网站建设
  • 【自适应滤波】基于新息协方差匹配的自适应EKF (CM-AEKF) vs 经典EKF对比,附MATLAB代码
  • AIGC侵权谁来担责?
  • 职业教育网站建设方案网站美工做专题尺寸多少
  • MySQL包安装 -- SUSE系列(离线RPM包安装MySQL)
  • 老卡文迪许的“四论”密码
  • 个人可以建购物网站吗建站哪个网站好