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

Java面向对象第7天

精华笔记:

  1. 成员内部类:了解,应用率不高

    • 类中套类,外面的称为外部类,里面的称为内部类

    • 内部类只服务于外部类,对外不具备可见性

    • 内部类对象通常在外部类中创建

    • 内部类中可以直接访问外部类的成员(包括私有的),

      内部类中有一个隐式的引用指向创建它的外部类对象-----外部类名.this---后面API中会用

  2. 匿名内部类:应用率高

    • 何时用:若想创建一个类(派生类)的对象,并且对象只被创建一次,可以设计为匿名内部类,可以大大简化代码操作

    • 在匿名内部类中不能修改外面局部变量的值,因为在此处该变量会被默认为final的---API时用

    • 小面试题:

      • 问:内部类有独立的.class字节码文件吗?

      • 答:有

笔记:

  1. 成员内部类:了解,应用率不高

    • 类中套类,外面的称为外部类,里面的称为内部类

    • 内部类只服务于外部类,对外不具备可见性

    • 内部类对象通常在外部类中创建

    • 内部类中可以直接访问外部类的成员(包括私有的),

      内部类中有一个隐式的引用指向创建它的外部类对象-----外部类名.this

      //成员内部类的演示
      public class InnerClassDemo {public static void main(String[] args) {Mama m = new Mama();//Baby b = new Baby(); //编译错误,内部类对外不具备可见性}
      }
      ​
      class Mama{ //外部类private String name;void create(){Baby b = new Baby(); //正确,内部类对象通常在外部类中创建}class Baby{ //成员内部类void showName(){System.out.println(name); //简写System.out.println(Mama.this.name); //完整写法//System.out.println(this.name); //编译错误,当前Baby类没有name属性}}
      }
  2. 匿名内部类:应用率高

    • 何时用:若想创建一个类(派生类)的对象,并且对象只被创建一次,可以设计为匿名内部类,可以大大简化代码操作

    • 在匿名内部类中不能修改外面局部变量的值,因为在此处该变量会被默认为final的---API时用

    • 小面试题:

      • 问:内部类有独立的.class字节码文件吗?

      • 答:有

    //匿名内部类的演示
    public class NstInnerClassDemo {public static void main(String[] args) {//1)创建了Aoo的一个派生类,但是没有名字//2)为该派生类创建了一个对象,名为o1----向上造型为Aoo类型//  ---new Aoo(){}是在创建Aoo的派生类的对象//3)大括号中的为派生类的类体Aoo o1 = new Aoo(){};
    ​//1)创建了Aoo的一个派生类,但是没有名字//2)为该派生类创建了一个对象,名为o2----向上造型为Aoo类型//  ---new Aoo(){}是在创建Aoo的派生类的对象//3)大括号中的为派生类的类体Aoo o2 = new Aoo(){};
    ​int num = 5;num = 55;//1)创建了Boo的一个派生类,但是没有名字//2)为该派生类创建了一个对象,名为o3----向上造型为Boo类型//3)大括号中的为派生类的类体Boo o3 = new Boo(){void show(){System.out.println("showshow");//num = 55; //在此处会默认外面的局部变量num为final的}};o3.show();}
    }
    ​
    abstract class Boo{abstract void show();
    }
    ​
    abstract class Aoo{
    }

补充:

  1. 隐式引用:

    • this:指代当前对象

    • super:指代当前对象的超类对象

    • 外部类名.this:指代当前对象的外部类对象

  2. 做功能的套路:----------------------最最最最重要的一个内容

    • 先写行为/功能/方法:

      • 若为某个对象所特有的行为/功能,就将方法设计在特定的类中

      • 若为对象所共有的行为/功能,就将方法设计在超类中

    • 窗口调用:

      • 若为定时发生的,就在定时器中调用

      • 若为事件触发的,就在侦听器中调用

  3. 如何调错:

    • 打桩:System.out.println(数据);

相关文章:

Java面向对象第7天

精华笔记: 成员内部类:了解,应用率不高 类中套类,外面的称为外部类,里面的称为内部类 内部类只服务于外部类,对外不具备可见性 内部类对象通常在外部类中创建 内部类中可以直接访问外部类的成员(包括私有…...

网络安全如何自学?

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高; 二、则是发展相对成熟…...

Flink-时间窗口

在流数据处理应用中,一个很重要、也很常见的操作就是窗口计算。所谓的“窗口”,一 般就是划定的一段时间范围,也就是“时间窗”;对在这范围内的数据进行处理,就是所谓的 窗口计算。所以窗口和时间往往是分不开的。 时…...

软件设计模式原则(三)单一职责原则

单一职责原则(SRP)又称单一功能原则。它规定一个类应该只有一个发生变化的原因。所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原…...

使用Postman创建Mock Server

这篇文章将教会大家如何利用 Postman,通过 Mock 的方式测试我们的 API。 什么是 Mock Mock 是一项特殊的测试技巧,可以在没有依赖项的情况下进行单元测试。通常情况下,Mock 与其他方法的主要区别就是,用于取代代码依赖项的模拟对…...

【古月居《ros入门21讲》学习笔记】15_ROS中的坐标系管理系统

目录 说明: 1. 机器人中的坐标变换 tf功能包能干什么? tf坐标变换如何实现 2. 小海龟跟随实验 安装 ros-melodic-turtle-tf 实验命令 运行效果 说明: 1. 本系列学习笔记基于B站:古月居《ROS入门21讲》课程,且使…...

初始linux:文件操作

目录 提示&#xff1a;以下指令均在Xshell 7 中进行 linux的理念 一、echo echo "字符串" 二、输出重定向 > > [文件] echo "字符串" > [文件] echo "字符串" > > [文件] 制作大文件 三、< 输入重定向与ca…...

iOS上传ipa使用可视化工具Transporter

文章目录 前言一、Transporter二、Appuploader三、iTMSTransporter总结 前言 最近为了让非开发人员上传IPA文件&#xff0c;特意找了一些方法&#xff0c;至于以前的ApplicationUploader已经不能用了&#xff0c;下面介绍两个工具可以上传IPA包。 一、Transporter 1、操作简单…...

解读《陆奇最新演讲实录—我的大模型世界观》

腾讯科技频道记者张小珺一篇《陆奇最新演讲实录—我的大模型世界观》刷爆朋友圈。文章知识点丰富、字里行间处处流淌着创业方法论和AI应用商机&#xff0c;含金量极高&#xff01; PS&#xff1a;一家之言、不求苟同。如有不爽之处&#xff0c;欢迎来 找我。 腾讯新闻原文&am…...

ChatGPT到底是如何运作?

自从2022年11月30日发布以来&#xff0c;ChatGPT一直占据着科技届的头条位置&#xff0c;随着苹果的创新能力下降&#xff0c;ChatGPT不断给大家带来震撼&#xff0c;2023年11月7日&#xff0c;首届OpenAI开发者大会在洛杉矶举行&#xff0c;业界普遍认为&#xff0c;OpenAI的开…...

学习Java第57天,Servlet的基本使用步骤

步骤1 开发一个web类型的module 步骤2 开发一个UserServlet public class UserServlet extends HttpServlet {Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 获取请求中的参数String usern…...

解决:ValueError: must have exactly one of create/read/write/append mode

解决&#xff1a;ValueError: must have exactly one of create/read/write/append mode 文章目录 解决&#xff1a;ValueError: must have exactly one of create/read/write/append mode背景报错问题报错翻译报错位置代码报错原因解决方法今天的分享就到此结束了 背景 在使用…...

大数据-之LibrA数据库系统告警处理(ALM-37014 Gaussdb进程锁文件已经存在)

告警解释 当集群中的CN实例或者DN实例锁文件创建失败时&#xff0c;产生该告警。 告警属性 告警ID 告警级别 可自动清除 37014 严重 是 告警参数 参数名称 参数含义 ServiceName 产生告警的服务名称 RoleName 产生告警的角色名称 HostName 产生告警的主机名 I…...

STM32 基础知识

1. STM32微控制器的核心特性是什么&#xff1f; STM32微控制器是基于ARM Cortex-M 处理器 &#xff0c; 它具有高性能处理能力和低功耗的特性 &#xff0c; 适合用于嵌入式系统STM32系列具有多种多样的内存大小和丰富的内置外设选项&#xff0c;包括 多通道ADC &#xff0c; 定…...

JVM——产生内存溢出原因

目录 1.产生内存溢出原因一 &#xff1a;代码中的内存泄漏1.案例1&#xff1a;equals()和hashCode()导致的内存泄漏问题&#xff1a;**正常情况**&#xff1a;**异常情况&#xff1a;**解决方案&#xff1a; 2.案例2&#xff1a;内部类引用外部类问题&#xff1a;解决方案&…...

关于X86机器上运行GnuCobol的研究

1.安装GnuCobol 当前的稳定版本是 3.1.2,已经在各种平台上进行了广泛测试,并已投入商用。 下载地址为: https://phoenixnap.dl.sourceforge.net/project/gnucobol/gnucobol/3.1/gnucobol- 3.1.2.tar.bz2 1)上传压缩包至x86服务器; 2)通过tar -xvf gnucobol-3.1.2.tar.bz2…...

open与openat的区别

Linux 中的 open 和 openat 系统调用都用于打开文件&#xff0c;但它们有一些区别。 一、函数原型 open 系统调用的原型 #include <fcntl.h>int open(const char *pathname, int flags, mode_t mode);pathname 是要打开的文件路径flags 是打开文件的标志mode 是文件的…...

人工智能与供应链行业融合:预测算法的通用化与实战化

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 让我们一起深入探索人工智能与供应链的融合&#xff0c;以及预测算法在实际应用中的价值&#xff01;&#x1f50d;&#x1f680; 文章目录 前言供应链预测算法的基本流程统计学习模型与机…...

Cytoscape学习教程

写在前面 今天分享的内容是自己遇到问题后,咨询社群里面的同学,帮忙解决的总结。 关于Cytoscape,对于做组学或生物信息学的同学基本是陌生的,可能有的同学用这个软件作图是非常溜的,做出来的网络图也是十分的好看,“可玩性”很高,就像前面分享的aPEAR包一样aPEAR包绘制…...

computed和watch相关

Computed本质是一个具备缓存的watcher&#xff0c;依赖的属性发生变化就会更新视图。 适用于计算比较消耗性能的计算场景。当表达式过于复杂时&#xff0c;在模板中放入过多逻辑会让模板难以维护&#xff0c;可以将复杂的逻辑放入计算属性中处理 computed擅长处理&#xff1a;一…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...