java学习之面向对象

2023-11-08

面向对象(Object Oriented)是软件开发方法,一种编程范式。面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。

1.1对象

任何具有状态和行为的实体都称为对象。例如:椅子,钢笔,桌子,键盘,自行车等。它可以是物理和逻辑的。

1.2类

对象的集合称为类,它是一个逻辑实体。类是java编程中的基本单元;把具有相同行为和属性的事物归为一类;

1.2.1类的定义

通过class关键字定义一个类

语法:

作用域修饰符 修饰类关键字 类名{

//类体

}

建议:类的首字母大写,取名的时候要做到见名知意(可参照阿里巴巴开发文档:阿里巴巴Java开发手册_w3cschool

2.成员变量和局部变量

成员变量:也就是全局变量也可以叫属性;

局部变量:定义在方法体内的变量;

3.作用域修饰符

1 public

当一个类被声明为 public 时,它就具有了被其他包中的类访问的可能性,只要包中的其他类在程序中使用 import 语句引入 public 类,就可以访问和引用这个类。

2 protected

用保护访问控制符 protected 修饰的类成员可以被三种类所访问:该类自身、与它在同一个包中的其他类以及在其他包中的该类的子类。使用 protected 修饰符的主要作用,是允许其他包中它的子类来访问父类的特定属性和方法,否则可以使用默认访问控制符。

3 default(friendly)

如果一个类没有访问控制符,说明它具有默认的访问控制特性。这种默认的访问控制权规定,该类只能被同一个包中的类访问和引用,而不能被其他包中的类使用,即使其他包中有该类的子类。这种访问特性又称为包访问性(package private)。

4 private

用 private 修饰的类成员,只能被该类自身的方法访问和修改,而不能被任何其他类(包括该类的子类)访问和引用。因此,private 修饰符具有最高的保护级别。

特别注意:修饰外部类只能用public和默认(default(friendly))

4.this关键字

this:代表所在类的对象引用;方法被哪个对象调用,this就代表哪个对象

this关键字主要有三个应用:

1.this调用本类中的属性,也就是类中的成员变量;

2.this调用本类中的其他方法;

3.this调用本类中的其他构造方法,调用时要放在构造方法的首行。

1.调用成员变量

 String name;                          
public void setName(String name) {     
    this.name = name;                  
}                                      

 这段代码中,有成员变量name与成员方法SetName(String name),由于成员方法接收的形参名称与成员变量相同,都是name,所以,这里可以使用this关键字来调用本类中的成员变量。

注意:

this关键字访问类的成员变量和成员函数时不受访问权限的控制,可以访问本类中所有的成员变量和方法,包括private的成员变量和方法。也可以通过this访问本类的static成员,不能在类的static成员或static块中使用this。

2.调用成员方法

public class Mxdx {
    String name;

    private void setName(String name) {
        this.name = name;
        System.out.println("setName: " + this.name);
    }

    private void thisTest(String name) {
        this.setName(name);
        System.out.println("thisTest: " + this.name);
    }

    public static void main(String[] args) {
        Mxdx mxdx = new Mxdx();
        mxdx.setName("小明");
        mxdx.thisTest("小红");
    }

    }

这段代码中,之前的没什么区别,只是增加了一个成员方法thisTest(),在这个成员方法中,通过this关键字调用了之前的成员函数setName(),程序运行结果如下所示:

3.调用构造方法

使用this来调用其他构造方法有如下几个约束:

1.只能在构造方法中通过this来调用其他构造方法,普通方法中不能使用。
2.不能通过this递归调用构造方法,即不能在一个构造方法中通过this直接或间接调用该构造方法本身。
3.通过this调用其他构造方法必须放在构造方法的第一行中执行。
4.由于super调用父类的构造函数也必须放在构造方法的第一行中执行,因此,通过this和super调5.用构造方法不能同时出现一个构造方法中。也不能在一个构造方法中多次调用不同的构造方法。

public class Mxdx {
    public Mxdx() {
        this("holle!");
    }
    public Mxdx(String name){
    }
}

拓展:

this关键字除了可以引用变量或者成员方法之外,还有一个重大的作用就是返回类的引用。如在代码中,可以使用return this,来返回某个类的引用。此时这个this关键字就代表类的名称。

5.构造方法

构造方法,是一种特殊的方法,它是一个与类同名的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。

构造方法格式:
public class 类名{
        修饰符 类名(参数){}

}

1.2构造方法的注意事项
1.构造方法的创建:如果没有定义构造方法,系统将给出一个默认的无参数构造方法如果定义了构造方法,系统将不再提供默认的构造方法

2.构造方法的重载:如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法

3.推荐的使用方式:无论是否使用,都手工书写无参数构造方法
 

 


 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java学习之面向对象 的相关文章

  • 天猫数据分析工具推荐(天猫第三方数据平台)

    在电商迅速发展的大背景下 做好天猫数据分析能够在多方面帮助品牌商家更好地运营店铺 塑造品牌 如通过数据分析了解消费者的需求 购买偏好 这有利于品牌商家及时调整商品结构 产品推广 商品宣传等等 灵活制定品牌的销售策略 那么 天猫平台行业 品牌
  • 网络安全从入门到精通(超详细)学习路线

    首先看一下学网络安全有什么好处 1 可以学习计算机方面的知识 在正式学习网络安全之前是一定要学习计算机基础知识的 只要把网络安全认真的学透了 那么计算机基础知识是没有任何问题的 操作系统 网络架构 网站容器 数据库 前端后端等等 可以说不想
  • 通过一个寒假能学会黑客技术吗?看完你就知道了

    一个寒假能成为黑客吗 资深白帽子来告诉你 如果你想的是学完去美国五角大楼内网随意溜达几圈 想顺走一点机密文件的话 劝你还是趁早放弃 但是成为一名初级黑客还是绰绰有余的 你只需要掌握好渗透测试 Web安全 数据库 搞懂web安全防护 SQL注
  • 机器智能与人类智能的合作:认知能力的提升

    1 背景介绍 在过去的几十年里 人工智能 AI 技术的发展取得了显著的进展 从早期的规则引擎和专家系统到现代的深度学习和神经网络 AI已经成功地解决了许多复杂的问题 然而 尽管如此 人工智能仍然远远低于人类智能 人类智能的强大之处在于其认知
  • 心灵与计算机:解密情感处理

    1 背景介绍 情感处理是人工智能领域中一个重要的研究方向 它旨在使计算机能理解 识别和处理人类的情感 情感处理的主要应用包括情感分析 情感识别 情感挖掘等 随着大数据 深度学习和自然语言处理等技术的发展 情感处理技术已经取得了显著的进展 然
  • 流程管理的未来:人工智能如何改变业务运行

    1 背景介绍 流程管理是企业在实现业务目标时所采取的一系列有序 连贯的活动 它涉及到许多领域 如生产 销售 研发 财务等 随着企业规模的扩大和市场竞争的激烈 流程管理的复杂性也不断增加 人工智能 AI 技术的发展为流程管理提供了新的机遇 有
  • 机器智能与人类智能的竞争:技术创新的驱动力

    1 背景介绍 人工智能 Artificial Intelligence AI 和机器学习 Machine Learning ML 是最近几年最热门的技术领域之一 随着数据量的增加和计算能力的提高 机器学习技术的发展得到了极大的推动 机器学习
  • 人工智能与机器学习:未来的编程范式

    1 背景介绍 人工智能 Artificial Intelligence AI 和机器学习 Machine Learning ML 是现代计算机科学的重要领域之一 它们旨在让计算机能够自主地学习 理解和进化 以解决复杂的问题 随着数据量的增加
  • 如何利用CHAT做简单的总结体会?

    问CHAT 在测试过程中使用appium python自动化的优点和体会 CHAT回复 使用 Appium 配合 Python 进行自动化测试主要有以下几点优点 1 跨平台性 Appium 支持 iOS 和 Android 平台的应用自动化
  • 【计算机毕业设计】实验室预约管理

    身处网络时代 随着网络系统体系发展的不断成熟和完善 人们的生活也随之发生了很大的变化 人们在追求较高物质生活的同时 也在想着如何使自身的精神内涵得到提升 而读书就是人们获得精神享受非常重要的途径 为了满足人们随时随地只要有网络就可以看书的要
  • 2024年网络安全十10大发展趋势发布

    2023年网络安全十10大发展趋势发布 近日 中国计算机学会 CCF 计算机安全专委会中 来自国家网络安全主管部门 高校 科研院所 大型央企 民营企业的委员投票评选出2023年网络安全十大发展趋势 福利 趋势一 数据安全治理成为数字经济的基
  • 白帽子如何快速挖到人生的第一个漏洞 | 购物站点挖掘商城漏洞

    本文针对人群 很多朋友们接触安全都是通过书籍 网上流传的PDF 亦或是通过论坛里的文章 但可能经过了这样一段时间的学习 了解了一些常见漏洞的原理之后 对于漏洞挖掘还不是很清楚 甚至不明白如何下手 可能你通过 sql labs 初步掌握了sq
  • 2024年华数杯国际赛B题:光伏发电功率 思路模型代码解析

    2024年华数杯国际赛B题 光伏发电功率 Photovoltaic Power 一 问题描述 中国的电力构成包括传统能源发电 如煤 油和天然气 可再生能源发电 如水电 风能 太阳能和核能 以及其他形式的电力 这些发电模式在满足中国对电力的巨
  • 用CHAT写一份标题为职业教育教师教学能力提升培训总结

    CHAT回复 标题 职业教育教师教学能力提升培训总结 一 活动概述 本次由学校组织的职业教育教师教学能力提升培训于8月15日至8月20日顺利进行 来自全校的60位职业教育教师参与了此次培训 主讲人为享有盛名的教育专家马丁先生 二 培训内容与
  • 电商数据api拼多多接口获取商品实时数据价格比价api代码演示案例

    拼多多商品详情接口 接口接入入口 它的主要功能是允许卖家从自己的系统中快速获取商品详细信息 通过这个接口 卖家可以提取到商品的各类数据 包括但不限于商品标题 价格 优惠价 收藏数 下单人数 月销售量等 此外 还可以获取到商品的SKU图 详情
  • 扬帆证券投资者必知:股票配股与增发的区别你清楚吗?

    配股和增发都是股票再融资的方式 不过二者有一定的区别 1 发行对象不同 配股是向原股东发售一定量股票 一般会以低于市价的价格发售 增发是向全体社会公众发行股票 即新老股东都能获得 2 发行前是否需要公告价格 配股会事先公告配股价 配股的定价
  • 扬帆证券:三只松鼠去年扣非净利预增超1.4倍

    在 高端性价比 战略驱动下 三只松鼠 300783 重拾增势 1月15日晚间 三只松鼠发布成绩预告 预计2023年度净赢利为2亿元至2 2亿元 同比增加54 97 至70 47 扣非后净赢利为1亿元至1 1亿元 同比增速达146 9 至17
  • 使用企业订货软件的担忧与考虑|网上APP订货系统

    使用企业订货软件的担忧与考虑 网上APP订货系统 网上订货系统担心出现的问题 1 如果在订货系统中定错 多 货物了该怎么办 其实这也是很多人在网购或者是现实中经常会犯的一个错误 但是网上订货平台为大家提供了很多的解决方案 其中对于订单的修改
  • 【GRNN-RBFNN-ILC算法】【轨迹跟踪】基于神经网络的迭代学习控制用于未知SISO非线性系统的轨迹跟踪(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 2 1 第1部分 2 2 第2部分
  • 实力认证!鼎捷软件荣膺“领军企业”和“创新产品”两大奖项

    近日 由中国科学院软件研究所 中科软科技股份有限公司联合主办的 2023中国软件技术大会 于北京成功举办 本届大会以 大模型驱动下的软件变革 为主题 数十位来自知名互联网公司和软件巨头企业的技术大咖 不同领域行业专家 畅销书作者等分享嘉宾

随机推荐

  • 如何写一个高效的JSON解析器

    市面上90 的解析器 都是逐个字符解析 然后判断是什么内容 解析成什么类型 这种方式无疑会有一种问题 就是解析器会把你不需要的JSON数据 同样处理一遍 为此 笔者发现了另外一种思路 例如下面一段JSON d type MdoCommonW
  • Linux 统计目录下文件数量的方法

    Linux 统计目录下文件数量的方法 1 统计当前目录下文件的个数 不包括目录 ls l grep wc l 2 统计当前目录下文件的个数 包括子目录 ls lR grep wc l 3 查看某目录下文件夹 目录 的个数 包括子目录 ls
  • 【git】解决遇到的问题

    目录 一 error RPC failed curl 6 OpenSSL SSL read Connection was reset errno 10054 二 error RPC failed curl 6 OpenSSL SSL rea
  • 离散傅里叶变换DFT与FFT,MATLAB的FFT函数使用(原创)——如何使用fft()绘制出真正的频谱图像

    以前一直对MATLAB中fft 函数的使用一直存在疑惑 为什么要加一 些参数 并且如何确定这些参数 也查了许多资料 但很多都感觉只是 表面一说根本没有讲清其本质 但随着学习的推进 慢慢有所领悟 所 以打算把自己的一些所懂分享下 有什么问题也
  • hadoop的hdfs的一些操作

    先说一下 hadoop fs 和hadoop dfs的区别 看两本Hadoop书上各有用到 但效果一样 求证与网络发现下面一解释比较中肯 粗略的讲 fs是个比较抽象的层面 在分布式环境中 fs就是dfs 但在本地环境中 fs是local f
  • 小猴吃苹果-第12届蓝桥杯Scratch选拔赛真题精选

    导读 超平老师计划推出Scratch蓝桥杯真题解析100讲 这是超平老师解读Scratch蓝桥真题系列的第90讲 蓝桥杯选拔赛每一届都要举行4 5次 和省赛 国赛相比 题目要简单不少 再加上篇幅有限 因此我精挑细选了一部分题目进行解读 第1
  • Python-OpenCV实战一(安装)

    OpenCV简介 用深度学习做图像处理的过程中 我们常常需要用到opencv库 OpenCV是计算机视觉领域应用最广泛的开源工具包 基于C C 支持Linux Windows MacOS Android iOS 并提供了Python Mat
  • 云计算与大数据第16章 分布式内存计算平台Spark习题

    第16章 分布式内存计算平台Spark习题 16 1 选择题 1 Spark是Hadoop生态 B 组件的替代方案 A Hadoop B MapReduce C Yarn D HDFS 2 以下 D 不是Spark的主要组件 A Drive
  • 做一个属于自己的坐标系的高德地图(GIS)

    第一步 创建node环境 第二步 创建一个html文件 第三步 引入高德的样式和行为依赖 第四步 创建容器让地图挂载在上边 div div 第五步 先把地图渲染出来 const gaode new ol layer Tile title 高
  • Nginx通俗易懂教程

    不会写配置的小伙伴可以看看反向代理神器 Nginx Proxy Manager这篇博文 Nginx简介 Nginx engine x 是一个高性能的HTTP和反向代理web服务器 同时也提供了IMAP POP3 SMTP服务 Nginx是由
  • redhat安装oracle11g单实例软件建库

    1 打开xmanager passive 2 oracle 用户登录 开始安装 root rhel64 database su oracle oracle rhel64 evn grep oracle bash evn command no
  • 面试官:select......for update会锁表还是锁行?

    您好 我是路人 更多优质文章见个人博客 http itsoku com select查询语句是不会加锁的 但是select for update除了有查询的作用外 还会加锁呢 而且它是悲观锁 那么它加的是行锁还是表锁 这就要看是不是用了索引
  • 全国计算机等级考试题库二级C操作题100套(第83套)

    第83套 给定程序中 函数fun的功能是 找出100至x x 999 之间各位上的数字之和为15的所有整数 然后输出 符合条件的整数个数作为函数值返回 例如 当n值为500时 各位数字之和为15的整数有 159 168 177 186 19
  • Code Llama 是Meta 开源基于 Llama 2 的 AI 代码生成大模型

    Code Llama 可根据代码和自然语言提示生成代码和有关代码的自然语言 支持多种主流编程语言 包括 Python C Java PHP Typescript Javascript C 和 Bash https ai meta com b
  • nmap、X-Scan漏洞扫描和Metasploit中用永恒之蓝漏洞入侵靶机并上传冰河

    一 实验目的 利用nmap X Scan扫描靶机的漏洞 在Metasploit中用扫描出的永恒之蓝漏洞入侵靶机 建立连接后上传冰河控制靶机 最后用冰河陷阱清除靶机的冰河 记一次完整的入侵控制实验 二 实验环境 工具软件 VMware nma
  • 2023年MySQL-8.0.34保姆级安装教程

    重点放前面 演示环境为windows环境 MySQL社区版本安装教程如下 一 MySQL安装包下载 二 安装配置设置 三 配置环境变量 大体分为3个步骤 安装包的下载 安装配置设置 配置环境变量 一 MySQL安装包下载 下载官网地址 ht
  • 什么是SSAS?

    一 Analysis Services Analysis Services是用于决策支持和BI解决方案的数据引擎 它提供报表和客户端中使用的分析数据 它可在多用途数据模型中创建高性能查询结构 业务逻辑和KPI 企业关键绩效指标 该数据模型可
  • 第7章 高性能门户首页构建

    mini商城第7章 高性能门户首页构建 一 课题 高性能门户建设 二 回顾 1 了解文件存储系统的概念 2 了解常用文件服务器的区别 3 掌握Minio的应用 三 目标 1 OpenResty 百万并发站点架构 OpenResty 特性介绍
  • Map接口-HashMap、Hashtable和Properties

    1 Map 接口和常用方法 1 1Map 接口实现类的特点 很实用 注意 这里讲的是JDK8的Map接口特点 1 Map与Collection并列存在 用于保存具有映射关系的数据 Key Value Map 中的key 和 value可以是
  • java学习之面向对象

    面向对象 Object Oriented 是软件开发方法 一种编程范式 面向对象是相对于面向过程来讲的 面向对象方法 把相关的数据和方法组织为一个整体来看待 从更高的层次来进行系统建模 更贴近事物的自然运行模式 1 1对象 任何具有状态和行