Java面向对象学习笔记-3

这篇具有很好参考价值的文章主要介绍了Java面向对象学习笔记-3。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

本文将介绍Java编程中的一些基本概念和用法,包括类、接口、抽象类、继承、多态和组合等。通过代码示例,我们将深入探讨这些概念,帮助读者更好地理解如何使用Java进行面向对象编程。

Java面向对象学习笔记-1
Java面向对象学习笔记-2

纸张和墨盒类

我们首先来看纸张和墨盒类,它们是打印机的重要组成部分。

A4Paper 和 B5Paper

package cn.dfjy.demo.entity;

// A4纸张
public class A4Paper implements IPaper {
    @Override
    public String size() {
        return "A4纸张";
    }
}

package cn.dfjy.demo.entity;

// B5纸张
public class B5Paper implements IPaper {
    @Override
    public String size() {
        return "B5纸张";
    }
}

BlankInk 和 ColorInk

  • BlankInkColorInk 代表不同类型的墨盒,并都实现了 IInk 接口。
package cn.dfjy.demo.entity;

// 黑白墨盒
public class BlankInk implements IInk {
    @Override
    public String color() {
        return "黑白墨盒";
    }
}

package cn.dfjy.demo.entity;

// 彩色墨盒
public class ColorInk implements IInk {
    @Override
    public String color() {
        return "彩色墨盒";
    }
}

抽象类和继承

接下来,让我们研究抽象类和继承的概念。

Door 抽象类

  • Door 是一个抽象类,定义了门的基本行为,演示了抽象类的概念
package cn.dfjy.demo.entity;

// 门(is a)
public abstract class Door {
    public abstract void open();
    public abstract void close();
}

Mother、Father 和 Son

  • MotherFatherSon 是简单的类,演示了Java中的单继承概念。
package cn.dfjy.demo.entity;

public class Mother {
}

package cn.dfjy.demo.entity;

public class Father {
}

package cn.dfjy.demo.entity;

// 在java的语法体系中,是不支持多继承的
public class Son extends Father {
}

接口

接口是Java中非常重要的概念,用于定义规范和契约。

Iii 接口

  • Iii 是一个接口,包含一个常量和一个抽象方法。
package cn.dfjy.demo.entity;

public interface Iii {
    int A = 413; // 属性其实是常量 public static final

    void f1(); // 方法其实是共有抽象 public abstract

    //public Iii(){} // 没有构造方法
}

IPaper 和 IInk 接口

  • IPaperIInk 分别表示纸张和墨盒的接口,具有特定的方法。
package cn.dfjy.demo.entity;

// 纸张的接口
public interface IPaper {
    String size();
}

package cn.dfjy.demo.entity;

public interface IInk {
    String color();
}

Locker 和 Photograph 接口

  • LockerPhotograph 接口,分别表示锁和能够拍照的设备的行为。
package cn.dfjy.demo.entity;

// 锁(has a)
public interface Locker {
    // 可推导,可省略。没有写public abstract,也有。
    void lock();
    void unlock();
}

package cn.dfjy.demo.entity;

// 拍照(has a)
public interface Photograph {
    void take();
}

实现类

接下来,我们将介绍一个类,它继承自 Door 并实现了 LockerPhotograph 接口,演示了Java中多接口实现的概念。

ThiefProventDoor 类

package cn.dfjy.demo.entity;

// 它本质上,类同于C++的多继承
public class ThiefProventDoor extends Door implements Locker, Photograph {
    @Override
    public void open() {
        System.out.println("开门");
    }

    @Override
    public void close() {
        System.out.println("关门");
    }

    @Override
    public void lock() {
        System.out.println("左转三圈,上锁");
    }

    @Override
    public void unlock() {
        System.out.println("右转三圈,解锁");
    }

    @Override
    public void take() {
        System.out.println("默默地拍照一张");
    }
}

打印机类

最后,让我们介绍一个表示打印机的类,演示组合和多态的概念。

Printer 类

package cn.dfjy.demo.entity;

public class Printer {
    // 属性上多态
    private IInk ink;
    private IPaper paper;

    public Printer() {
    }

    public Printer(IInk ink, IPaper paper) {
        this.ink = ink;
        this.paper = paper;
    }

    public IInk getInk() {
        return ink;
    }

    public void setInk(IInk ink) {
        this.ink = ink;
    }

    public IPaper getPaper() {
        return paper;
    }

    public void setPaper(IPaper paper) {
        this.paper = paper;
    }

    @Override
    public String toString() {
        return "使用" + ink.color() + "在" + paper.size() + "上打印。";
    }
}

示例代码

以下是几个使用上述类和接口的示例代码:

示例 1:使用 ThiefProventDoor

package cn.dfjy.demo.test;

import cn.dfjy.demo.entity.ThiefProventDoor;

public class Demo01 {
    public static void main(String[] args) {
        ThiefProventDoor thiefProventDoor = new ThiefProventDoor();
        System.out.println("上班");
        thiefProventDoor.open();
        thiefProventDoor.close();
        thiefProventDoor.lock();
        System.out.println("下班回家");
        thiefProventDoor.unlock();
        thiefProventDoor.take();
        thiefProventDoor.open();
        thiefProventDoor.close();
    }
}
  • Demo01 示例展示了如何使用 ThiefProventDoor 类,模拟上班、下班回家、开门、关门等操作。

示例 2:访问接口常量

package cn.dfjy.demo.test;

import cn.dfjy.demo.entity.Iii;

public class Demo02 {
    public static void main(String[] args) {
        System.out.println(Iii.A);
    }
}
  • Demo02 示例演示了如何访问接口中的常量 A

示例 3:使用 Printer 类

package cn.dfjy.demo.test;

import cn.dfjy.demo.entity.*;

public class Demo03 {
    public static void main(String[] args) {
        // 买个整机
        Printer printer = new Printer(new ColorInk(), new A4Paper());
        System.out.println(printer);

        // 更换纸张和墨盒
        printer.setInk(new BlankInk());
        printer.setPaper(new B5Paper());
        System.out.println(printer);
    }
}
  • Demo03 示例展示了如何使用 Printer 类,构建具有不同墨盒和纸张组合的打印机,并打印相关信息。

总结

本文中,我们深入研究了Java编程中的关键概念,包括类、接口、抽象类、继承、多态和组合。我们通过代码示例演示了如何创建和使用这些概念,以及它们在面向对象编程中的重要性。理解这些概念是成为Java开发人员的关键一步,它们为构建灵活和可维护的应用程序提供了基础。希望本文能够帮助读者更好地掌握Java编程的基础知识,并在实际项目中应用它们。

当涉及到Java编程中的面向对象概念时,还有许多相关知识可以进一步拓展。下面是一些可能的拓展方向:

  1. 封装(Encapsulation):封装是面向对象编程的基本原则之一,它通过隐藏实现细节并提供公共接口来保护数据和方法。了解如何使用Java中的访问修饰符(public、private、protected等)来实现封装。

  2. 继承(Inheritance):继承允许从一个类派生出一个新类,并继承父类的属性和方法。了解如何使用extends关键字创建子类,并学习如何重写和调用父类的方法。

  3. 多态(Polymorphism):多态是指同一类型的对象在不同情况下表现出不同的行为。了解如何使用方法重载和方法重写来实现多态性,并学习如何使用父类引用指向子类对象。

  4. 接口(Interface):接口定义了一组方法的规范,而不提供其具体实现。了解如何使用接口来实现类之间的协议和多态性,并学习如何在类中实现多个接口。

  5. 抽象类(Abstract Class):抽象类是不能被实例化的类,它提供了一种用于派生其他类的基础。了解如何定义和使用抽象类,以及与接口之间的区别。

  6. 异常处理(Exception Handling):异常处理是用于处理程序运行时出现的错误或异常情况的机制。学习如何使用try-catch块和throw关键字来捕获和处理异常。

  7. 包(Package):包是一种组织和管理类的方式,它将相关的类放在一个命名空间下。了解如何创建和使用包,以及如何进行包之间的访问控制。

  8. 线程(Thread):线程是程序执行的单个顺序流,它可以并发地执行多个任务。了解如何创建和管理线程,以及如何处理线程同步和互斥的问题。

  9. 泛型(Generics):泛型允许在编译时指定类型参数,从而增加代码的类型安全性和复用性。了解如何使用泛型类、泛型方法和通配符来编写更灵活和可重用的代码。

  10. 注解(Annotation):注解提供了一种在代码中添加元数据的方式,它们可以提供编译器和工具使用的信息。了解如何创建和使用注解,并学习一些常见的内置注解。

这些拓展方向将帮助你深入了解Java编程中的面向对象概念,并拓展你的知识和技能。通过深入学习这些概念,你将能够更好地理解和应用Java编程语言。文章来源地址https://www.toymoban.com/news/detail-706150.html

到了这里,关于Java面向对象学习笔记-3的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java面向对象学习笔记-3

    本文将介绍Java编程中的一些基本概念和用法,包括类、接口、抽象类、继承、多态和组合等。通过代码示例,我们将深入探讨这些概念,帮助读者更好地理解如何使用Java进行面向对象编程。 Java面向对象学习笔记-1 Java面向对象学习笔记-2 我们首先来看纸张和墨盒类,它们是

    2024年02月09日
    浏览(37)
  • 【狂神说Java】Java零基础学习笔记-面向对象

    面向过程思想 步骤清晰简单,第一步做什么,第二步做什么.... 面对过程适合处理一些较为简单的问题 面向对象思想 物以类聚, 分类 的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。

    2024年02月12日
    浏览(37)
  • 8.面向对象编程(中级部分)|Java学习笔记

    删除当前行, 默认是 ctrl + Y 自己配置 ctrl + d 复制当前行, 自己配置 ctrl + alt + 向下光标 补全代码 alt + / 添加注释和取消注释 ctrl + / 【第一次是添加注释,第二次是取消注释】 导入该行需要的类 先配置 auto import , 然后使用 alt+enter 即可 快速格式化代码 ctrl + alt + L 快速运行程序

    2024年02月08日
    浏览(45)
  • 7.面向对象编程(基础部分)|Java学习笔记

    java 设计者 引入 类与对象(OOP) ,根本原因就是现有的技术,不能完美的解决新的新的需求. 类是抽象的,概念的,代表一类事物,比如人类,猫类…, 即它是数据类型. 对象是具体的,实际的,代表一个具体事物, 即 是实例. 类是对象的模板,对象是类的一个个体,对应一个实例

    2024年02月08日
    浏览(47)
  • 【Java】小白友好的面向对象编程学习笔记

    目录 OOP介绍 类和对象 方法参数 静态 包和import 构造方法 多态 访问权限 内部类 抽象 接口 枚举 匿名类 bean类 作用域 Java 是一种面向对象的编程语言,面向对象编程(Object-Oriented Programming,简称 OOP)是一种程序设计思想,它将现实世界中的事物抽象为对象,通过封装、继承

    2024年01月20日
    浏览(43)
  • 《Java面向对象程序设计》学习笔记——CSV文件的读写与处理

    ​笔记汇总: 《Java面向对象程序设计》学习笔记 笔记记录的不是非常详实,如果有补充的建议或纠错,请踊跃评论留言!!! CSV 是英文 comma-separated values 的缩写,翻译为 “逗号分隔值“。 CSV 文件可以理解为以带逗号分隔(也可以是其他简单字符分割)的纯文本形式存储

    2024年02月10日
    浏览(48)
  • 《Java面向对象程序设计》学习笔记——第 12 章 输入流与输出流

    ​笔记汇总: 《Java面向对象程序设计》学习笔记 File 对象主要用来获取文件本身的一些信息,例如文件所在的目录、文件的长度和文件的读/写权限等,不涉及对文件的读/写操作。 创建 File 对象的构造方法有以下 3 个: 其中, filename 是文件名字 ,directoryPath 是文件的路径,

    2024年02月11日
    浏览(37)
  • 【从零开始学习JAVA | 第十五篇】 多态

    本篇我们来解释一下什么是多态关系,多态关系属于面向对象三大特征的最后一个,可以说面向对象的重点就在多态,因此我们要学好面向对象编程思想,就要学好多态。         Java中的多态是指 同一类对象在不同情况下可能表现出不同的形态和行为。 它包括了 方法重

    2024年02月10日
    浏览(61)
  • 【从零开始学习JAVA | 第八篇】String类

    目录 前言: String类: 常见的认识误区: 创建String类:  注意点: 总结:         String类是Java中最常见的一个类,本篇将对Stirng类的各种功能进行详细的介绍,各位小伙伴如果感兴趣可以点击进来观看。 Java中的String类是一个非常常用的类, 它表示一串字符序列 。Java的字

    2024年02月10日
    浏览(50)
  • 【从零开始学习JAVA | 第十八篇】接口介绍

    目录 前言: 接口: 如何定义一个接口: 如何使用一个接口: 接口中成员的特点: 接口与类的区别:   接口的应用: 总结:         接口其实是为了弥补继承的缺点: 我们无法让父类完美的适应每一个子类的要求 。 例如我们有一个动物类的父类,有一个蝌蚪类,鱼

    2024年02月10日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包