java面向对象三大特征及五大原则

java面向对象三大特征及五大原则java面向对象一、java面向对象的三大特征1、封装(Encapsulation)封转是指属性私有化根据需要提供setter和getter方法来访问属性隐藏具体属性和实现细节,仅对外开放接口控制程序中属性的访问级别目的:增强数据安全性,不能让其他用户随意访问和修改数据,简化编程,使用者不必在意具体实现细节,而只是通过外部接口即可访问类的成员2、继承(Extend)继承是指将…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

java面向对象

一、java面向对象的三大特征

1、封装(Encapsulation)

封转是指属性私有化

  • 根据需要提供setter和getter方法来访问属性
  • 隐藏具体属性和实现细节,仅对外开放接口
  • 控制程序中属性的访问级别

目的:增强数据安全性,不能让其他用户随意访问和修改数据,简化编程,使用者不必在意具体实现细节,而只是通过外部接口即可访问类的成员

2、继承(Extend)

继承是指将多个相同的属性和方法提取出来,新建一个父类

  • java中一个类只能继承一个父类,且只能继承访问权限非private属性和方法
  • 子类可以重写父类中的方法,命名与父类中同名的属性

目的:代码复用

3、多态

多态(Polymiorph)可以分为两种:设计时多态、运行时多态

设计(编译)时多态:即重载(Overload),是指java允许方法名相同而参数不同(返回值可以相同也可以不同),同一个类中允许存在一个或多个以上的同名函数,只要参数类型或参数个数不同即可

运行时多态:即重写(Override)必须是在继承体系中,子类重写父类方法,JVM运行时根据调用该方法的类型决定调用那个方法

目的:增加代码的灵活度

总结:

1、java中应尽量减少继承关系,以降低耦合度

2、使用多态时,父类在调用方法时,优先调用子类的方法,如果子类没有重写父类的方法,则再调用父类的方法

3、java访问控制符作用范围表:

本类 本包 子类 外部包
public
protected X
default X X
private X X X

✓:可以访问 X:不可访问

二、java面向对象的五大原则

单一职责原则:一个类,最好只做一件事,只有一个引起它变化。每个类应该实现单一的职责,如果不是,那就把类拆分

开放封闭原则:对扩展开放,对修改封闭

里氏替换原则:子类必须能够替换其基类,里氏替换原则中说,任何基类可以出现的地方,子类一定可以出现

依赖倒置原则:依赖于抽象接口,不要依赖于具体实现,简单来说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户于与实现模块间的耦合

接口隔离原则:使用多个小的专门接口,而不是使用一个大的接口

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159958.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • route -n命令_router.replace

    route -n命令_router.replace<router-linkclass=”icon-go”:to=”{name:’首页’}”v-if=”$route.matched[0].path==’/category'”></router-link><spanclass=”icon-go”@click=”$router.go(-1)”v-e…

    2025年8月6日
    1
  • Oracle数据库学习之数据类型和表的操作「建议收藏」

    Oracle数据库学习之数据类型和表的操作「建议收藏」Oracle的数据类型:字符型数据类型charvarcharvarchar2long这几个字段之间的区别:char的长度是固定的,而varchar2的长度是可以变化的。也就是char(20)和varchar2(20)都存储”abc”,char是占用20个字符的,而varchar2是占用3个字符空间的。但是char的效率要高与varchar。这也就是平时说的以空间换效率。如果有一

    2022年8月30日
    4
  • maven打包时跳过测试「建议收藏」

    maven打包时跳过测试「建议收藏」开发记录有一个maven项目,我clone一下最新的代码。准备打包(mavenpackage),没想到在执行到TEST阶段报错。百思不得其解,决定跳过测试去打包,然后部署。Failedtoexecutegoalorg.apache.maven.plugins:maven-surefire-plugin:2.12.4:test在运行mvninstall或mvnpackag…

    2022年6月9日
    32
  • qt串口通信接收数据不完整_qt串口接收数据

    qt串口通信接收数据不完整_qt串口接收数据高通QM215高速串口调试总结参考文档硬件和复用情况确认修改如下串口调试测试程序代码:将串口设置为高速串口,AP端收到的数据一直为0XFD参考文档1、sp80-pk881-6_a_qm215_linux_android_software_porting_manual.pdf2、80-pk881-21_a_qm215_linux_peripheral_(uart,_spi,_i2c)_ove…

    2022年10月10日
    9
  • 基于arduino的光控窗帘_光控窗帘

    基于arduino的光控窗帘_光控窗帘课程设计报告设计目的:居民对生活采光很重视,但现在的人们越来越“懒”,对智能化的要求越来越高。为了方便居民在白天把窗帘及时拉开,晚上把窗帘及时拉上,我们设计了光控窗帘。本设计硬件主要是光敏传感器,电机以及单片机;软件主要采用C语言进行编程。同时,为了考虑实际我们还额外加了一些手动装置,以防阴天和雨天等特殊天气。硬件介绍:arduinom2560r3单片机,光敏传感器模块(带宽电压LM393比较器…

    2022年6月23日
    35
  • 阈值分割法简述 – ywywcy的专栏 – CSDNBlog

    阈值分割法简述 – ywywcy的专栏 – CSDNBlog阈值分割法阈值分割法分为全局阈值法和局部阈值分割法 所谓局部阈值分割法是将原始图像划分成较小的图像 并对每个子图像选取相应的阈值 在阈值分割后 相邻子图像之间的边界处可能产生灰度级的不连续性 因此需用平滑技术进行排除 局部阈值法常用的方法有灰度差直方图法 微分直方图法 局部阈值分割法虽然能改善分割效果 但存在几个缺点 1 每幅子图像的尺寸不能太小 否则统计出的结果无意义

    2025年8月11日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号