面向对象学习笔记

news2024/11/24 6:57:09

常见代码块应用

  • 局部代码块
    在方法中出现,限定变量的生命周期
  • 构造代码块(初始化块)
    在类中方法外出现,多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,在调用构造方法前执行
  • 静态代码块
    在类中方法外出现,加上static修饰,用于给类初始化,在加载的时候就执行,只执行一次

练习代码

public class Demo1_Code {
    public static void main(String[] agrs) {
        {
            int a = 10;
            System.out.println(a);  // 局部代码块:限定变量的生命周期
        }
        Students s1 = new Students();  //调用空参构造
        s1.setName("张三");
        s1.setAge(27);
        System.out.println(s1.getName() + "---" + s1.getAge());
        System.out.println( "--————————————————————————————————————--" );
        Students s2 = new Students("李四",26);
        System.out.println(s2.getName()+"----"+s2.getAge());

    }
    static {   //静态代码块:类中方法外出现,加上static修饰,用于给类进行初始化,在加载的时候就执行,并且执行一次
        System.out.println("我是静态代码块");
    }
}
class Students {
    private String name;
    private int age;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    {   //构造代码块(初始化块):在类中方法外出现,多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,且在构造方法前执行
        System.out.println("我是构造代码块(初始化块)");
    }
    public Students() {          //空参构造
        System.out.println("空参构造");
    }
    public Students(String name, int age) {               //有参构造
        this.name = name;
        this.age = age;
        System.out.println("有参构造");
    }
}

执行结果

面向对象——继承

继承:让类和类之间产生关系,子父类关系

继承的好处:

  1. 提高代码的复用性
  2. 提高代码的维护性
  3. 让类与类之间产生关系,是多态的前提

继承的弊端:类的耦合性增强了

开发的原则:高内聚,低耦合
耦合:类与类的关系
内聚:自己完成某件事的能力

Java中类的继承特点

  1. Java只支持单继承,不支持多继承。一个子类只能有一个父类
  2. Java支持多层继承(如grandpa—father—son)
  3. 如果想用这个体系的所有功能用最底层的类创建对象
  4. 如果想看这个体系的共性功能看最顶层的类

Java共性功能指的是Java语言中所有类都具备的一些基本功能,例如继承、封装、多态等,继承允许类之间的代码共享和重用;封装则使得类的内部实现细节对外部不可见,从而提高了代码的安全性和可维护性;而多态则使得不同的对象可以对同一消息作出不同的响应,从而提高了代码的灵活性和可扩展性。这些共性功能是Java语言的核心特性之一,也是Java语言在软件开发领域广泛应用的重要原因之一。

练习代码

public class extendsTest {
    public static void main(String[]agrs){
        cat c = new cat();
        c.setName("咪咪");
        c.setColor("白色");
        c.eat();
        System.out.println(c.getColor()+"的猫咪叫"+c.getName());
    }
}
class animal{
    private String name;
    private String color;

    public animal() {                                   //空参构造
    }

    public animal(String name, String color) {          //有参构造
        this.name = name;
        this.color = color;
    }

    public String getName() {
        return name;
    }

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

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }}
    class cat extends animal{//继承父类的属性,并添加特有属性
        public void eat(){
            System.out.println("猫吃鱼");
        }
    }
    class dog extends animal{}

执行结果

继承需要注意

  1. 子类只能继承父类所有非私有的成员(成员方法和变量)
  2. 子类不能继承父类的构造方法,但是可以通过super关键字去访问父类构造方法
  3. 不要为了部分功能去继承

什么时候使用继承?
如果有两个类A、B,只有他们符合A是B的一种,或者B是A的一种,就可以考虑使用继承

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

达摩院+华为 | NLP博士的春招历程

作者 | luan2006 整理 | NewBeeNLP 面试锦囊之面经分享系列,持续更新中 赶紧后台回复"面试"加入讨论组交流吧 写在前面 本博均985(不同校)、现北京Top2计算机类博士生、方向为人工智能-自然语言处理。 个人优势:绩点年…

PeekingDuck

介绍 计算机视觉项目可能会非常令人望而生畏,涉及到各种工具和包,如OpenCV、TensorFlow和PyTorch等等。不仅需要熟悉所涉及的工具和API,还需要正确组合各个包,以使整个计算机视觉流水线正常工作。 例如,OpenCV以[H&…

玩转百问网东山Pi壹号-SSD202 Linux开发板(一)

点击上方“嵌入式应用研究院”,选择“置顶/星标公众号” 干货福利,第一时间送达! 来源 | 嵌入式应用研究院 整理&排版 | 嵌入式应用研究院 很早之前就做过SSD20x相关的平台,刚好手里有一块东山Pi壹号-开发板,于是我…

儿童睡眠慢波的起源、同步和传播

摘要 目的:使用EEG delta功率(<4Hz)测量的睡眠慢波活动在整个发育过程中发生显著变化,反映了大脑功能和解剖结构的变化。然而,个体慢波特征随年龄的变化尚未被彻底研究。在这里,本研究旨在表征儿童期到成年期的个体慢…

Redis从入门到精通【高阶篇】之底层数据结构简单动态字符串(SDS)详解

文章目录 1.原理解析1.1.SDS的内部实现原理1.1.1 Redis 6.0版本和Redis5.0对比1.1.2 redis6和redis5对比1.1.3 优势1.1.3.1. 动态扩容1.1.3.2. 常数复杂度获取字符串长度1.1.3.3. 杜绝缓冲区溢出1.1.3.4. 减少修改字符串的内存重新分配次数1.1.3.5. 二进制安全1.1.3.6. 兼容部分…

SpringMVC06:Json交互处理

目录 一、什么是JSON? 二、代码测试 1、新建一个module,SpringMVC-05-json,添加web支持和lib包 2、在index.jsp中编写测试内容 3、配置tomcat,启动项目,在浏览器中打开,查看控制台输出 4、controller返回JSON数据…

AC变DC220V变5V小家电电源芯片-AH8652、AH8669

Q: 什么是AH8652和AH8669电源芯片? A: AH8652和AH8669都是AC变DC的电源芯片,适用于将输入的交流电压(220V)转换为5V直流电压输出,用于小家电的电源模块等应用。 AC变DC220V变5V小家电电源芯片-AH8669 Q: AH8652和AH8669的最大输…

2023智源大会议程公开丨自动驾驶论坛

6月9日,2023北京智源大会,将邀请这一领域的探索者、实践者、以及关心智能科学的每个人,共同拉开未来舞台的帷幕,你准备好了吗?与会知名嘉宾包括,图灵奖得主Yann LeCun、图灵奖得主Geoffrey Hinton、OpenAI创…

Observability:如何有效地将应用日志发送到 Elasticsearch

在今天的文章中,我们将探讨使用 3 种不同的架构发送应用的日子到 Elasticsearch。我们将详述它们的优缺点。更多关于日志架构的介绍,请参考 “Elastic:开发者上手指南” 中的 “Elastic Stack 架构” 部分。 介绍 采用 Elastic Stack&#x…

前端录制回放rrweb

rrweb 是 ‘record and replay the web’ 的简写,旨在利用现代浏览器所提供的强大 API 录制并回放任意 web 界面中的用户操作。 rrweb中文文档 https://github.com/rrweb-io/rrweb/blob/master/guide.zh_CN.md 本文项目地址 https://github.com/qdfudimo/vue-rrweb…

网安学习|Kail安全渗透测试系统之【前期信息收集】工具实践学习

欢迎关注「全栈工程师修炼指南」公众号 点击 👇 下方卡片 即可关注我哟! 设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习! “ 花开堪折直须折,莫待无花空折枝。 ” 作者主页:[ https://www.weiyigeek.top ] 博客&…

达梦数据库与MySQL的区别及语法差异

达梦数据库与MySQL的区别及其SQL语句对比 简介:正文:1. 达梦数据库和MySQL的概述2. 特点对比3. SQL语句对比1. 数据类型:2. 语法:1. DDL(数据定义语言)的差异:2. DML(数据操作语言&a…

面向对象——多态、抽象类、接口

学习资料来自:黑马程序员,内容仅为学习记录,侵删 多态 多态:事务存在的多种形态 多态的前提:1、有继承关系;2、重写父类方法;3、父类引用指向子类对象 面向对象 面向对象多态中成员访问特点…

动态测试数据处理

分类 动态测试数据: 1、确定性数据:能够用明确的数学表达式进行描述的数据称为确定性数据。 Ⅰ、周期数据 Ⅱ、非周期数据 2、随机性数据:无法用明确的数学表达式表述;若在一个…

强大的工具:APISpace IP归属地查询API

引言 IP地址在互联网世界中扮演着重要的角色,对于许多应用程序和服务来说,了解IP地址的归属地信息可以提供有价值的洞察和功能。 在本文中,我们将介绍一种名为IP归属地-IPv4区县级 API 的强大工具,它提供了查询 IP 地址归属地信…

如何解释物联网IOT平台?

物联网开发的本质是将各种物品通过网络连接在一起,并对这些物品进行数字化管理,从而实现智能自动化。在物联网的早期阶段,一些物联网应用程序(例如,智能电表)使用软件将信息传输到后台服务器。但随着时间的…

华为路由器:多区域OSPF协议实验

一、实验拓扑 二、ospf基本概念复习 区域划分:area0为骨干区域,其他area1、area2都为普通区域/常规区域。普通区域必须和骨干区域直接相连。ABR:区域边界路由器。R2、R3位于两个区域的中间,我们称之为区域边界路由器 &#xff1b…

ObjectARX如何监控实体双击事件(利用钩子函数或者反应器)

目录 1 实现方法1——钩子函数1.1 钩子函数的作用1.2 利用钩子函数监控双击事件 2 实现方法2——反应器2.1 反应器的作用2.2 利用编辑器反应器监控双击事件 在ObjectARX开发中,常常要监控鼠标的双击事件,比如,往一个实体中写了扩展数据&#…

基于html+css的图展示115

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

2023年湖北下半年中级职称申报中级职称评审申报条件是什么?

2023年湖北下半年中级职称申报中级职称评审申报条件是什么? 2023年湖北中级职称申报条件:本科毕业5年,专科毕业7年,相关专业 助工满4年这个条件目前不是硬性要求,意思就是有肯定更好,没有也没有太大的影响 …