java设计模式课后作业(待批改)

2024-03-07 13:52

本文主要是介绍java设计模式课后作业(待批改),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 此文章仅记录学习,欢迎各位大佬探讨

实验(一)     面向对象设计

实验目的

①使用类来封装对象的属性和功能;

②掌握类变量与实例变量,以及类方法与实例方法的区别;

知识回顾

详情见OOP课件

实验内容

1.编程创建一个Point类

  • 实验要求:

在其中定义两个变量表示一个点的坐标值,再定义构造函数初始化为坐标原点,然后定义一个方法实现点的移动,再定义一个方法打印当前点的坐标。并创建一个对象验证。

public class T1 {public static void main(String[] args) {point p = new point();p.OrginPoint(10, 10);p.MovePoint(-5, 6);p.PrintPoint();}
}class point {int x, y;void OrginPoint(int a, int b) {this.x = a;this.y = b;}void MovePoint(int a, int b) {this.x += a;this.y += b;}void PrintPoint() {System.out.print("当前坐标为:" + this.x + "_" + this.y);}
}

2.继承

  • 实验要求:

 super实例编写一个Java应用程序,该程序包括4个类:Teacher类、JavaTeacher 类、DBTeacher 和主类T3。要求

(1) Teacher类中有成员变量name和age,有构造方法:Teacher(String name,int age),并且有个teaching()方法,在teaching()方法中输出“上课......”的信息。

(2)JavaTeacher 类是Teacher 类的子类,有构造方法:JavaTeacher(String name,int age),在JavaTeacher 类中重写方法teaching(),在teaching()中调用父类teaching()方法,输出“打开eclipse,编写Java程序”的信息。

(3)DBTeacher 类是Teacher 类的子类,有个构造方法:DBTeacher(String name,int age),在DBTeacher类中重写方法teaching(),在teaching()中调用父类teaching()方法,输出“打开oracle,编写pl-sql程序”的信息。

(4)在主类T2的main方法中创建JavaTeacher DBTeacher 类的对象类测试这2个类的功能。

public class T2 {public static void main(String[] args) {JavaTeacher jt=new JavaTeacher("张三",20);jt.teaching();DBTeacher dbt=new DBTeacher("李四",19);dbt.teaching();}
}class Teacher {String name;int age;public Teacher(String n, int a){this.name=n;this.age=a;}public void teaching(){System.out.print("上课......");}
}class JavaTeacher extends Teacher{public JavaTeacher(String n, int a) {super(n, a);}public void teaching(){super.teaching();System.out.print("打开eclipse,编写Java程序");}
}
class DBTeacher extends Teacher{public DBTeacher(String n, int a) {super(n, a);}public  void teaching(){super.teaching();System.out.print("打开oracle,编写pl-sql程序");}
}

3.接口

  • 实验要求:

创建一个描述平面图形的接口Figure,添加1个area( ) 方法计算平面图形的面积。再创建2个类Circle(圆类)和Square(正方形类)分别实现接口Figure的area( )方法,并写出测试类计算并输出1个圆和一个正方形的面积。

public class T3 {public static void main(String[] args) {Circle c=new Circle();c.area(3);Square s=new Square();s.area(4);}
}
interface Figure {default void area() {}
}
class Circle implements Figure {public void area(int radius){System.out.println(3.14*radius*radius);}
}
class Square implements Figure {public void area(int length){System.out.println(length*length);}
}

4.多态

不够灵活的影院售票系统

某软件公司为某电影院开发了一套影院售票系统,在该系统中需要为不同类型的用户提供不同的电影票打折方式,具体打折方案如下:

(1) 学生凭学生证可享受票价8折优惠;

(2) 年龄在10周岁及以下的儿童可享受每张票减免10元的优惠(原始票价需大于等于20元);

(3) 影院VIP用户除享受票价半价优惠外还可进行积分,积分累计到一定额度可换取电影院赠送的奖品。

该系统在将来可能还要根据需要引入新的打折方式。

重新设计该软件:

public class T4 {public static void main(String[] args) {StudentTicket st=new StudentTicket();st.count();}
}
interface Preferential{double price=80.00;default void count(){}
}class StudentTicket implements Preferential{public void count() {System.out.println(0.8*this.price);}
}
class ChildTicket implements Preferential{public void count(){System.out.println(this.price-10);}
}
class VipTicket implements Preferential{public  void  count(){System.out.println(0.5*this.price);}
}

这篇关于java设计模式课后作业(待批改)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Spring boot整合dubbo+zookeeper的详细过程

《Springboot整合dubbo+zookeeper的详细过程》本文讲解SpringBoot整合Dubbo与Zookeeper实现API、Provider、Consumer模式,包含依赖配置、... 目录Spring boot整合dubbo+zookeeper1.创建父工程2.父工程引入依赖3.创建ap

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

SpringBoot中如何使用Assert进行断言校验

《SpringBoot中如何使用Assert进行断言校验》Java提供了内置的assert机制,而Spring框架也提供了更强大的Assert工具类来帮助开发者进行参数校验和状态检查,下... 目录前言一、Java 原生assert简介1.1 使用方式1.2 示例代码1.3 优缺点分析二、Spring Fr

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件