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

JAVA练习8

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、题目1-

1.题目描述

2.思路与代码

2.1 思路

2.2 代码

二、题目2-

1.题目描述

2.思路与代码

2.1 思路

2.2 代码

总结


前言

提示:这里可以添加本文要记录的大概内容:

1月2日练习内容


提示:以下是本篇文章正文内容,下面案例可供参考

一、题目1-重写计算逻辑

1.题目描述

描述

在父类Base中定义了计算方法calculate(),该方法用于计算两个数的乘积(X*Y)。请在子类Sub中重写该方法,将计算逻辑由乘法改为除法(X/Y)。注意,当分母为0时输出“Error”。

输入描述:

两个整数

输出描述:

两个整数的商(int类型,不考虑小数情况)

2.思路与代码

2.1 思路

1.本题主要考察子类重写父类方法

2.将子类继承父类,在子类的构造方法中调用父类的构造方法,接着重写父类的calculate方法,将父类的乘积(X*Y)重写为子类的除法(X/Y)

3.在main方法中,输入x,y,创建对象和调用子类方法

2.2 代码

代码如下(示例):

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        //输入
        int x = in.nextInt();
        int y = in.nextInt();

        //创建对象
        Sub su = new Sub(x,y);
        //调用方法
        su.calculate();
    }
}
//父类
class Base {

    private int x;
    private int y;

    public Base(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public int getX() {
        return x;
    }

    public int getY() {
        return y;
    }

    public void calculate() {
        System.out.println(getX() * getY());
    }
}
//子类
class Sub extends Base {
    public Sub(int x, int y) {
        super(x, y);
    }
    //子类重写父类方法
    public void calculate() {
        if (getY() == 0) {
            System.out.print("Error");
        } else {
            System.out.println(getX() / getY());
        }

    }

}

二、题目2-

1.题目描述

已知有三个类:First、Second、Third。要求定义一个打印方法,支持传入任意引用类型的参数(包括上述三个类),并在方法内部打印出对象的字符串形式。

输入描述:

类名

输出描述:

由该类实例化出来的对象的字符串表示

2.思路与代码

2.1 思路

1.因为定义的桑类的返回的类型本身就是字符串类型,与系统定义类型的参数相同,这里可以直接调用方法:getClass().getName(),

2.输出

2.2 代码

代码如下(示例):

import java.util.Scanner;

public class Main {

    public static void main(String[] args) throws Exception {
        Scanner input = new Scanner(System.in);
        while (input.hasNext()) {
            String name = input.next();
            // print就是需要你定义的方法
            print(Class.forName(name).newInstance());
        }
    }
    //print方法
    public static void print(Object obj) {
        //调用getName函数直接输出
        System.out.println(obj.getClass().getName());
    }

}

class First {
    public String toString() {
        return "First";
    }
}

class Second {
    public String toString() {
        return "Second";
    }
}

class Third {
    public String toString() {
        return "Third";
    }
}


总结

提示:这里对文章进行总结:
 

相关文章:

  • 聊聊最适合程序员的画图工具
  • JAVA数据结构篇--12理解LinkedHashSetTreeSet
  • DR_CAN基尔霍夫电路题解法【自留用】
  • 21级数据结构考前模拟题
  • 剑指offer----C语言版----第六天
  • Qt音视频开发08-ffmpeg内核优化(极速打开/超时回调/实时响应)
  • 网络安全一哥的奇安信发布了全球高级可持续威胁年度报告 值得学习
  • 13---SpringBoot整合JWT,实现登录和拦截
  • 4366. 上课睡觉
  • vue后台系统管理项目-echarts柱状图实现订单统计
  • 2022年博客之星排行榜 日榜 2023-01-01 博客之星总榜
  • 一名普通Java程序员的2022的总结和2023的展望
  • 【寒假每日一题】洛谷 P1079 [NOIP2012 提高组] Vigenère 密码
  • 【概率论】期末复习笔记:参数估计
  • k-means算法进行数据分析应用
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • C++类中的特殊成员函数
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • mysql_config not found
  • mysql常用命令汇总
  • session共享问题解决方案
  • Tornado学习笔记(1)
  • ubuntu 下nginx安装 并支持https协议
  • 关于List、List?、ListObject的区别
  • 前端工程化(Gulp、Webpack)-webpack
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 转载:[译] 内容加速黑科技趣谈
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #DBA杂记1
  • #微信小程序(布局、渲染层基础知识)
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • #在 README.md 中生成项目目录结构
  • (39)STM32——FLASH闪存
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (LeetCode C++)盛最多水的容器
  • (Note)C++中的继承方式
  • (python)数据结构---字典
  • (zhuan) 一些RL的文献(及笔记)
  • (二)c52学习之旅-简单了解单片机
  • (二)斐波那契Fabonacci函数
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (生成器)yield与(迭代器)generator
  • (十一)c52学习之旅-动态数码管
  • (算法)求1到1亿间的质数或素数
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (译) 函数式 JS #1:简介
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .net framework profiles /.net framework 配置
  • .NET处理HTTP请求
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境