Java学习笔记 面向对象(中)

2023-11-08

第五章 面向对象(中)

1.封装

有public、protect、private 三种控制权限
可以修饰类、属性成员、方法
下表为修饰类和类属性成员与方法时,可以被谁访问

类前修饰符(行)\ 类属性成员与方法(列) public 默 认
public 所有类 package中的类
protect (对象层面)package中的类,(类定义层面) package中的子类 package中的子类
默认 package中的类 package中的类
private 本类 本类
  • 消息

    引用对象调用数据成员和成员方法的形象过程

    ATTENTION:“发消息”的条件

    1. 引用必须真实引用了三个条件
    2. 被访问对象必须定义了相应的属性或方法
    3. 被访问对象的属性或方法具有可访问的权限

2.继承

继承只能单继承,只有一个父类,用extend关键字使两个类发生继承关系
子类可以共用父类的公有属性和公有方法
如果两者都实例化,是两个不同的对象,内存地址不共用

ATTENTION:
继承父类的时候,是在生成子类对象的时候,将父类和子类的非静态的属性复制到子类对象中(不复制方法,继承的部分方法只是可以被访问,private不被继承)
若子类中没有重新定义父类已有的同名属性,则修改公有属性就是修改父类的公有属性,即父类的属性会一起改变

  • Object类
    是java中所有的类的共同先祖,其中定义的部分方法如下
    Object clone()                      //将当前对象克隆
    boolean equals(Object obj)          //判断两个引用是否指向同一个对象,
    									      (参数不可为基本类型) 
    void finalize()                     //对象被释放时调用
    Class getClass()                    //获得当前对象的类对象
    String toString()                   //得到代表这个对象的字符串
    
  • final类
    最终类,不可以拥有子类

3.多态

多态指一个程序中同名但不同方法共存的情况。Java有两种多态机制——重载和负载

  • 重载

    • 返回值类型相同
    • 参数的个数和类型可以不同
    • 成员方法同名
    class Parent{
    	public int getScore(){
    		return 3;
    	}
    	public int getScore(int i){
    		return i ;
    	}
    }
    
  • 覆盖

    • 返回类型相同
    • 参数相同
    • 同名方法

ATTENTION:
1.子类方法覆盖父类方法时,子类的访问修饰符权限应等于或大于父类
2.同名的static方法和非static方法不能互相覆盖
3.方法前有final ,此方法不能在子类中进行覆盖
4.若父类为抽象方法,具体子类必须对抽象方法进行覆盖

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

Java学习笔记 面向对象(中) 的相关文章

  • Java Swing BoxLayout 忽略 AlignmentX

    在下面的代码中 通过调用setAlignmentX with Component LEFT ALIGNMENT我希望在居中的滑块上获得左对齐的标签 由于某种原因 标签也居中 似乎与传递给 setAlignmentX 的值无关 我必须向 se
  • Android:java.lang.OutOfMemoryError:

    我在 Android 上开发了一个使用大量图像的应用程序 可绘制文件夹中有很多图像 比如说超过 100 张 我正在开发图像动画应用程序 我使用 imageview 来显示 GIF 图像 我使用了将 gif 图像分割成多个 PNG 格式图像的
  • JAVA 中的 Composer 相当于什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我目前从 PHP 转向 java 有没有类似的工具composer https getcomposer org 在 PHP 中用于 JAV
  • 了解 netty 通道缓冲区和水印

    我正在尝试了解网络缓冲区和水印 作为一个测试用例 我有一个 netty 服务器 它向客户端写入数据 客户端被阻止 基本上每次读取之间有 10 秒的睡眠时间 在正常 I O 下 如果接收方被阻塞 TCP 发送方将受到限制 由于流量控制 发送速
  • Apache Thrift Java-Javascript 通信

    我正在编写一个基于 Apache Thrift 的 Java 服务器 它将从 Javascript 客户端接收数据 我已经完成了 Java 服务器 但问题是我可以获得 Javascript 客户端的工作示例 我无法找到一个好的示例 构建文档
  • Java Junit 测试 HTTP POST 请求

    我需要测试以下方法而不改变方法本身 该方法向服务器发出 POST 方法 但我需要制作一个独立于服务器的测试用例 在将其重定向到本地文件之前 我测试了类似的方法 但为此我将协议指定为文件 主机名指定为 localhost 端口指定为 1 我的
  • 使用 kryo 注册课程的策略

    我最近发现了 kryonet 库 它非常棒并且非常适合我的需求 然而 我遇到的一个问题是制定一种好的策略来注册所有可以转移的类 我知道我可以在每个对象中编写一个静态方法 该方法将返回它使用的所有类的列表 但我真的不想这样做 为了我自己的时间
  • 如何避免Eclipse在将类名放在注释中时导入类,以便checkstyle稍后不会抱怨?

    有时我将类名放在方法或类的注释中只是为了引用 但是 Eclipse 会自动执行导入并在文件中留下导入语句 这会导致稍后出现 未使用的导入 检查样式错误 当我在注释中输入类名时 是否可以更改一些配置以避免 Eclipse 自动导入 人们不同意
  • 对对象集合进行排序[重复]

    这个问题在这里已经有答案了 如果我有一个简单的字符串列表 List
  • 绘制平滑曲线

    我想创建更平滑的曲线 而不仅仅是线角 这是我现在画的图 这是我的代码 case FREEHAND float pts float ptk ptk new float 2 imageMatrix invert inv if mCurrentS
  • 在拇指上方显示修改后的 JSlider 值

    有没有一种简单的方法可以在使用某些 外观和感觉 的同时更改 JSlider 上方标签中显示的值 为了清楚起见 我正在谈论这个值 具体来说 我想显示除以 1000 的值而不是值本身 我知道如果我显示它们 我可以为刻度设置标签 但用户将不得不猜
  • 但是创建静态实用方法不应该被过度使用吗?如何避免呢? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 随着时间的推移 java项目中引入了许多实用方法来完成更复杂和简单的任务 当使用静态方法时 我们在代码中引入了紧密耦合 这使得我们的代
  • Java 中如何验证字符串的格式是否正确

    我目前正在用 Java 编写一个验证方法来检查字符串是否是要更改为日期的几种不同格式之一 我希望它接受的格式如下 MM DD YY M DD YY MM D YY 和 M D YY 我正在测试第一种格式 每次它都告诉我它无效 即使我输入了有
  • ActiveMQ JNDI 查找问题

    尝试使用 JNDI 运行以下 ActiveMQ http activemq apache org jndi support html http ActiveMQ 20JNDI 并且我的 jboss server node lib 文件夹中有
  • jDBI中如何进行内查询?

    我怎样才能在 jDBI 中执行这样的事情 SqlQuery select id from foo where name in
  • 接口是否像对象一样对待?

    为什么下面的代码可以工作 interface I class A implements I public String toString return in a class B extends A public String toStrin
  • 开发者环境-如何调用/消费其他微服务

    背景 我的环境 Java Play2 MySql 我在 Play2 gt S1 S2 S3 上编写了 3 个无状态 Restful 微服务 S1 消耗来自 S2 和 S3 的数据 因此 当用户点击 S1 时 该服务会异步调用 S2 S3 合
  • Spring - 如何在不匹配列名的情况下使用 BeanPropertyRowMapper

    我正在开发一个应用程序 该应用程序已使用行映射器从纯 JDBC 转换为 Spring 模板 我遇到的问题是数据库中的列与属性名称不匹配 这阻止我使用BeanPropertyRowMapper容易地 我看到一些关于在查询中使用别名的帖子 这会
  • 如何使用eclipse调试JSP tomcat服务?

    我想使用 Eclipse IDE 调试器来调试单独运行的 JSP Struts Tomcat Hibernate 应用程序堆栈 如何设置 java JVM 和 eclipse 以便设置断点 监视变量值并查看当前正在执行的代码 我刚刚用谷歌搜
  • Firebase:用户注册后如何进行电话号码验证?

    所以我知道我可以使用电子邮件验证或电话号码验证 但我想做的是在用户注册或登录后进行电话号码验证 如何连接这两种身份验证方法 最后 Firebase中是否有一个函数可以检查用户是否通过电话号码验证 谢谢 即使用户已通过身份验证 您仍然可以使用

随机推荐

  • 心态:晋升的为什么不是你--架构师之道

    2011年底的时候 在网上看了一篇文章 能让你少奋斗10年的工作经验 其中大部分条目与工作态度相关 有实例 可操作 故有此感慨 职场纵横 如果下面8条 你也符合部分状态 或许 这就是 晋升的为什么不是你 的答案了 一 心灵停留在舒适区是不可
  • 第二章——递归

    递归的定义 递归算法 递归模型 递归栈 递归树 在数学和计算机科学中 递归是指在在一个过程或函数的定义时出现调用本过程或本函数的成分 若在函数中调用函数自身或者在过程的子部分中调用子部分自身的内容 称之为直接递归 又称自递归 若不同的函数和
  • mock静态方法指引

    mock静态方法指引 mockito 在3 4 0版本开始支持mock static method 文档 https wttech blog blog 2020 mocking static methods made possible in
  • 爬取实时航班信息 - 从航班信息网站获取实时航班信息

    目录 1 选择目标航班信息网站 2 分析网站结构 3 准备工具和库 4 编写爬虫程序
  • 软件测试功能到自动化学习路线图,2022年最新版技术栈

    2022年全新版软件测试技术栈 零基础入行必备 高质量免费在线课程 笔记 讲义分享 适合零基础 功能测试 即将面试回顾知识点的各位伙伴 文章目录 前言 第一阶段 功能测试 1 软件测试入门到精通 2 Linux系统2天快速入门 3 软件测试
  • L2-001紧急救援_最短路径

    PTA 程序设计类实验辅助教学平台千名教师建设 万道高质量题目 百万用户拼题的程序设计实验辅助教学平台https pintia cn problem sets 994805046380707840 problems 994805073643
  • spyder使用过程记录

    Ctrl F5 以Debug模式运行文件 在debug之前记得用 reset 指令清空一下ipython工作空间中的变量 以免影响debug中变量值的查看 无论你是否打断点 都会在第一行语句执行之前中断一次 python语句 可以在pdb提
  • Blender学习笔记(建模#2:线操作)

    建模 2 线操作 x ray模式 边操作 1 边的细分 基本同面一样 2 边的滑移 3 溶解 dissolve 4 倒角 5 环切 6 循环边 7 并排边 8 循环面 9 切变 10 法相切割 11 偏移边线并滑移 12 桥接循环边 13
  • 2020年高教社杯全国大学生数学建模竞赛 C题思路

    2020年高教社杯全国大学生数学建模竞赛 C题 中小微企业的信贷决策 本文旨在为广大热爱建模的朋友们提供2020年数学建模C题的思路和解法 问题回顾 在实际中 由于中小微企业规模相对较小 也缺少抵押资产 因此银行通常是依据信贷政策 企业的交
  • C运行时库(C Run-time Library)详解

    http blog csdn net wqvbjhc article details 6612099
  • 网络安全应急响应是什么?需要做什么?

    在网络安全体系中 我们除了要了解渗透测试 代码审计 风险评估 等级保护外 应急响应也是非常重要的部分 那么什么是应急响应 网络安全应急响应需要做什么 以下是具体的内容介绍 什么是应急响应 应急响应是指组织为了应对突发事件或重大信息安全事件的
  • 【LeetCode刷题】145 二叉树的后序遍历 java

    题目 给你一棵二叉树的根节点 root 返回其节点值的 后序遍历 示例 方法一 递归 class Solution public List
  • Vite 基本配置及原理

    Vite 基本配置及原理 介绍 vite config js optimizeDeps exclude 不同环境的 vite 配置 css配置 Vite 对 css 的处理 Vite 对 cssmodule 的处理和配置 Vite 对预处理
  • 深入学习jquery源码之查询选择插件的实现

    深入学习jquery源码之上传查询选择插件的实现 function var defaults url fieldCode multi false area 40 80 code code name 注意顺序 先是code 再是name fu
  • linux vscode 下开发

    linux vscode 下开发 java jdk 插件 查看调用层次 java jdk 各种JAVA JDK的镜像分发 编程宝库 技术改变世界 jdk 镜像 ubuntu22 04 安装 Linux x64 64位 jdk 8u351 l
  • 用递归实现输入一系列整数后逆序输出

    对于输入 一系列整数的逆序输出 最容易想到是用堆栈来实现 但是如果是自己去定义堆栈抽象结构 实现堆栈的初始化 Push Pop 以及堆栈的释放等操作 给人以 杀机用牛刀 的感觉 但是 堆栈的想法还是给我们以启迪 要知道 我们可以用堆栈来实现
  • 8位, 16位,24位,32位图片显示原理及对比

    我们都知道一张图片可以保存为很多种不同的格式 比如bmp png jpeg gif等等 这个是从文件格式的角度看 我们抛开文件格式 看图片本身 我们可以分为8位 16位 24位 32位等 单击右键 属性 gt 详细信息即可查看图片位深度 8
  • Multimap运用

    Multimap概念 Multimap的特点其实就是可以包含有几个重复key的value值 你可以put进多个不同的value 但是key相同 但是又不是让后面的覆盖前面的内容 业务场景 当你需要构造像Map
  • 判断无向图G是否连通。若连通返回1,否则返回0

    判断无向图G是否连通 若连通返回1 否则返回0 CODE 判断无向图G是否连通 若连通返回1 否则返回0 define N 1 gt gt 8 代替无穷大 默认 邻接矩阵 define size 6 include
  • Java学习笔记 面向对象(中)

    第五章 面向对象 中 1 封装 2 继承 3 多态 1 封装 有public protect private 三种控制权限 可以修饰类 属性成员 方法 下表为修饰类和类属性成员与方法时 可以被谁访问 类前修饰符 行 类属性成员与方法 列 p