3月28号总结

java学习

1.this关键字

this关键字可以代表当前对象的引用。它可以在类的方法中使用,用于引用调用该方法的对象。通过this关键字,可以访问类的成员变量和方法,以及调用其他构造函数。

举一个实例来学习一下this关键字的作用。

比如,我们先定义一个简单的学生对象:

public class Student {
    public String name;
    public int chinese_score;
    public void demo(int chinese_socre)
    {

        if(this.chinese_score>chinese_score)
        {
            System.out.println("成绩合格");
        }
        else
        {
            System.out.println("成绩不合格");
        }
    }
}

代码中的demo方法用于判断学生语文成绩是否合格,而图中的this的作用在于引用当前学生对象的变量,如果不加this关键字,就会因为就近原则,方法里面的chinese_score变量都会变成我们传进去的参数值,这样就没有比较的意义。

this关键字在实际中的作用:当对象成员变量与方法内部变量的名称一样时,用于解决访问冲突的问题。

2.面向对象之封装

首先我们按照是什么,为什么,怎么办的步骤来学习一下封装。

是什么:


封装是面向对象编程中的一个核心概念,它指的是将数据和方法捆绑在一起,并限制对数据的直接访问和操作,而通过公共的方法来实现对数据的访问和修改。在Java中,封装通过使用访问修饰符来控制类的成员的访问权限,从而隐藏对象的内部细节,使得对象更加安全和可靠。

为什么:

封装的目的是实现数据的隐藏和保护,以及降低代码的耦合性。通过封装,可以隐藏类的内部细节,使得对象的实现细节对外部用户不可见,从而提高了代码的安全性和可维护性。封装还可以防止直接对类的成员变量进行不合理的修改,使得对象的状态更加可控,减少了代码出错的可能性。

比如,我们知道人的体重不可能为负数,也不可能非常小,那么如果我们没有对对象进行封装,用户就可以通过访问成员变量将它的值修改成一个不合理的值,这会导致我们的程序出错,所以我们要对数据进行封装。

如果我们将对象的成员变量的访问改为private,那么就可以很好的防止用户随意修改对象的成员变量。

怎么办:

1.将类的成员变量声明为私有的(private),这样外部类就无法直接访问这些变量。
2.提供公共的方法(getter和setter方法)来访问和修改私有变量的值。通常,getter方法用于获取变量的值,setter方法用于修改变量的值。
3.在公共方法中,可以添加一些逻辑判断和控制,以确保对数据的访问和修改是合理和安全的。

1.改变成员变量的访问

2.因为将成员变量的访问私有化,所以我们想要改变成员变量只能通过set方法去修改,而我们在调用这个set方法时,set方法会判断你给予的值是否合理来考虑要不要修改。

3.因为我们不能直接访问对象的成员变量,所以我们想要得到他们的值还需要公开一个get方法来返回你要获取的成员变量值。

3.面向对象之继承

是什么:

继承是面向对象编程中的一个重要概念,它允许一个类(称为子类或派生类)基于另一个类(称为父类或基类)来构建自己的特性。子类可以继承父类的属性和方法,同时可以添加自己的新属性和方法,也可以重写父类的方法。在Java中,使用关键字extends来实现类的继承。

为什么:

继承的主要目的是实现代码重用和扩展性。通过继承,子类可以重用父类的代码,不需要重新编写相同的代码。此外,通过继承,可以实现类的层次结构,使得代码更加结构化和易于理解,也使类与类之间建立了练习。

怎么办:

通过以下步骤:

1.使用关键字extends来声明一个类继承另一个类。

2.子类可以继承父类的非私有成员(属性和方法),但不能继承父类的构造方法。

3.子类可以通过调用super关键字来调用父类的构造方法和方法,以便重用父类的功能。

4.子类可以通过重写(覆盖)父类的方法来实现自己的特殊行为。要重写一个方法,子类需要定义一个与父类方法签名相同的方法,并使用@Override注解来标识。

下面是一个完成继承操作的格式 

class A {//A为父类
    ...
}
​
class B extends A{//B类为子类,继承A类
    ...
}

注意:继承只支持单继承,不支持多继承,例如:

但是可以多层继承,例如:

public class A extends B{
    
}


    
public class C extends A{
}
方法重写:

如何重写?

子类写了一个方法名称、形参列表与某个父类相同的方法,可以将父类的方法覆盖掉,会优先执行子类重写的方法。

示例如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/496730.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【unity】如何汉化unity Hub

相信大家下载安装unity后看着满操作栏的英文,英文不好的小伙伴们会一头雾水。但是没关系你要记住你要怎么高速运转的机器进入中国,请记住我给出的原理,不懂不代表不会用啊。现在我们就来把编译器给进行汉化。 第一步:我们打开Uni…

QT控件之显示控件

Qt Designer显示窗口部件提供的面板中,提供了10种显示小部件 (1) Label标签 (2) Text Browser文本浏览器 (3) Graphics View图形视图 (4) Calendar Widget日历 &…

IU5507低功耗DC-DC降压稳压器

IU5507T是一款由基准电压源、振荡电路、比较器、PWM/PFM 控制电路等构成的 CMOS 降压DC/DC调整器。利用 PWM/PFM 自动切换控制电路达到可调占空比,具有全输入电压范围(3-18V)内的低纹波、高效率和大输出电流等特点。 IU5507T内置功率MOSFET,使用过压、过…

libVLC 捕获鼠标、键盘事件

在实现播放器的时候,我们需要捕获键盘、鼠标事件进行视频快进、快退,或者双击全屏/退出全屏窗口、鼠标右键弹出菜单栏。默认情况下,在使用libVLC库的时候,我们无法捕获这些事件,因为我们将Qt的视频窗口传递给了libVLC。…

损坏的RAID5csp

1.解题思路 这道题太抽象了&#xff0c;一开始都没太搞懂在讲啥。。。解决该题需要了解条带、磁盘号的定义。 下图以样例2&#xff0c;输入编号为5的块为例&#xff1a; 请务必加上ios::sync_with_stdio(false),否则会超时只有30分 2.满分代码 #include<iostream> us…

Hbase 王者荣耀数据表 HBase常用Shell命令

大数据课本&#xff1a; HBase常用Shell命令 在使用具体的Shell命令操作HBase数据之前&#xff0c;需要首先启动Hadoop&#xff0c;然后再启动HBase&#xff0c;并且启动HBase Shell&#xff0c;进入Shell命令提示符状态&#xff0c;具体命令如下&#xff1a; $ cd /usr/local…

Hello算法2:复杂度分析

Hello算法2&#xff1a;复杂度分析 本文是基于k神的Hello 算法的读书笔记&#xff0c;请支持实体书。 https://www.hello-algo.com/chapter_paperbook/ 算法效率 算法效率评估 设计算法时&#xff0c;我们追求以下两个目标&#xff1a; 找出解法找出最优解 最优解通常包含…

Douyin视频详情数据API接口(视频详情,评论)

抖音官方并没有直接提供公开的视频详情数据采集API接口给普通用户或第三方开发者。抖音的数据采集通常受到严格的限制&#xff0c;以保护用户隐私和平台安全。 请求示例&#xff0c;API接口接入Anzexi58 如果您需要获取抖音视频详情数据&#xff0c;包括评论、点赞等&#xff…

VMware虚拟机更换引导顺序

前言 我用wmware装了黑群晖测试&#xff0c;将img转成vmdisk的格式之后发现系统引导盘之后1G&#xff0c;有点太小了 我准备把wmware的黑群晖系统迁移到新添加的虚拟磁盘里 1.登录黑群晖的SSH 请先在黑群晖的控制面板中的终端机和SNMP里面启用SSH功能&#xff0c;才能使用ss…

创新指南|如何将人工智能应用于未来的创新管理——并不断付诸实践

ChatGPT 的推出加剧了围绕人工智能的炒作&#xff0c;现在我们看到了前所未有的巨大进展。对于我们这些热衷于创新的人来说&#xff0c;这是一个激动人心的时刻。他们正在共同采取措施&#xff0c;充分利用人工智能进行创新管理。本文将阐述人工智能能为创新管理做什么&#xf…

《米小圈动画汉字》—“动起来”汉字就能轻松记住啦!

为了迎合孩子们的兴趣&#xff0c;市面上推出了许多类型的动画片&#xff0c;所谓“动画”是让角色动起来&#xff0c;感染孩子&#xff0c;给孩子带来欢乐。但是&#xff0c;并不是所有动画片都对孩子有益&#xff0c;市面上的大多良莠不齐&#xff0c;孩子分辨不了还可能影响…

2020年天津市二级分类土地利用数据(矢量)

天津市&#xff0c;位于华北平原海河五大支流汇流处&#xff0c;东临渤海&#xff0c;北依燕山。地势以平原和洼地为主&#xff0c;北部有低山丘陵&#xff0c;海拔由北向南逐渐下降&#xff0c;地貌总轮廓为西北高而东南低。天津有山地、丘陵和平原三种地形&#xff0c;平原约…

代码随想录算法训练营三刷day37 | 贪心 之 738.单调递增的数字 968.监控二叉树

三刷day37 738.单调递增的数字968.监控二叉树确定遍历顺序如何隔两个节点放一个摄像头情况1&#xff1a;左右节点都有覆盖情况2&#xff1a;左右节点至少有一个无覆盖的情况情况3&#xff1a;左右节点至少有一个有摄像头情况4&#xff1a;头结点没有覆盖 738.单调递增的数字 题…

中国国际通信大会2024|中国通信展览会|通信展览会

中国国际通信大会2024|中国通信展览会|通信展览会 中国国际信息通信展览会&#xff08;ICT展&#xff09;是亚太地区最具影响力的信息通信技术盛会之一。每年一度的ICT展汇聚了来自全球各行各业的专业人士&#xff0c;为各领域的科技公司、创新企业以及技术爱好者们提供一个难得…

VS2022 使用ClaudiaIDE设置自定义图片背景

ClaudiaIDE的下载 第一步&#xff0c;如下图所示&#xff0c;点击&#xff1a;扩展——管理扩展。 第二步&#xff0c;如下图所示&#xff0c;点击&#xff1a;联机——右上角输入ClaudiaIDE搜索——点击下载。 下载后关闭所有VS窗口&#xff0c;然后等待弹出一个安装窗口&…

RAFT:让大型语言模型更擅长特定领域的 RAG 任务

RAFT&#xff08;检索增强的微调&#xff09;代表了一种全新的训练大语言模型&#xff08;LLMs&#xff09;以提升其在检索增强生成&#xff08;RAG&#xff09;任务上表现的方法。“检索增强的微调”技术融合了检索增强生成和微调的优点&#xff0c;目标是更好地适应各个特定领…

机器学习——元学习

元学习&#xff08;Meta Learning&#xff09;是一种机器学习方法&#xff0c;旨在使模型能够学习如何学习。它涉及到在学习过程中自动化地学习和优化学习算法或模型的能力。元学习的目标是使模型能够从有限的训练样本中快速适应新任务或新环境。 在传统的机器学习中&#xff…

2024社工考试报名详细流程来啦✅

2024社工考试报名详细流程来啦✅ ⏰社工报名时间&#xff1a;4月1日-4月18日 &#x1f447;&#x1f3fb;2024年社工报名流程 1、打开人事考试网&#xff0c;点击左侧【网上报名】 2、没有用户名的点击新用户注册&#xff0c;有用户名的直接输入用户名密码登录即可。 3、注册好…

RK3568-开启ptp服务

硬件支持 mac或者phy需要支持ptp驱动支持 CONFIG_PTP_1588_CLOCK=y虚拟机端:虚拟机只支持软件时间戳。 安装ptp服务:sudo apt-get install linuxptpbuildroot系统-开发板端:开发板支持硬件时间戳和软件时间戳。 BR2_PACKAGE_LINUXPTP=y 编译相关ptp4l程序ubuntu系统-开发…

【Web前端】CSS基本语法规范和引入方式常见选择器用法常见元素属性

一、基本语法规范 选择器 {一条/N条声明} 选择器决定针对谁修改 (找谁) 声明决定修改什么.。(干什么) 声明的属性是键值对.。使用 &#xff1a; 区分键值对&#xff0c; 使用 &#xff1a; 区分键和值。 <!DOCTYPE html> <html lang"en"> <head>&…