IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> JavaOOP学习(第四天) -> 正文阅读

[C++知识库]JavaOOP学习(第四天)

今天对继承与多态进行了深入学习,上笔记:

继承与多态:
1.不要为了继承而继承,在有关系时再继承
2.重写只能发生再子类,不能发生再父类
3.同一对象,引用不同的实例类,调用相同的方法,得到不同的结果就是多态。
4.多态是继承的一种表现,继承的表现是多态
5.使用多态创建的对象,在引用实例子类时,只能调用继承的方法。
6.super用于调用父类方法,大多时在构造方法中使用super()。
7.Object是所有类的父类
8.final ? ? 修饰类,此类不能被继
?? ?修饰方法,此方法不能被重写;
?? ?修饰变量,此变量变为常量不能被更改;
?? ?修饰对象,此对象不能被其他实例类引用;
9.开发思想:面向过程--->面向对象--->面向接口--->面向切面

今天练习题(经反馈,以后的代码展示会尽可能的加上注释,使得更容易阅读。如果有多个类的话,会展示含有main方法的类,并展示运行结果):

1.编写程序实现披萨的制作。需求说明编写程序,接收输入信息,选择需要制作的披萨。可供选择的披萨有:培根披萨和海鲜披萨。?
实现思路及关键代码?
1)分析培根披萨和海鲜披萨。?
2)定义披萨类(作为父类)。?
属性:?名称、价格、大小;?
方法:展示哦(show);?
3)定义培根披萨和海鲜披萨,分别继承披萨类。?
4)定义披萨工厂类,根据输入信息生产具体的披萨对象。

package java_1210;

import java.util.Scanner;

public class PizzaTest {
    public static void main(String[] args) {
        //初始为p这个对象生成默认的普通披萨
     Pizza p=new Pizza("披萨","5","中等");
        System.out.print("现在我们可以加工一些披萨,你要加工哪种披萨呢?(经典、培根、海鲜):");
        Scanner sc=new Scanner(System.in);
        //让用户进行录入数据根据要求生成披萨
        String type=sc.next();

        if (type.equals("培根")) {
            //使用多态将已经创建的对象再次接收子实例类,并进行判断
            p=new BaconPizza("培根披萨","10","中等");

        }else if (type.equals("海鲜")) {
            p=new seafoodPizza("海鲜披萨","20","小");


        }else{
            //如果用户输入没有则返回默认
            System.out.println("抱歉,你所输入的 "+type+" 类型暂无供应,正在为您制作默认披萨。");
        }
        //给用户信息反馈
        System.out.println("您选择了 "+p.name+" 它的价格为: "+p.price+" 它的大小为: "+p.size);
        //询问数量需求
        System.out.print("您需要多少此类型的披萨?:"); int sum=sc.nextInt();
        for (int i = 1; i <=sum ; i++) {
            System.out.println("正在制作第 "+i+" 份披萨");
        }
        //将对象中价格从字符串转换为整数类型
        Integer money= Integer.parseInt(p.price);
        System.out.println("制作完成,一共支付"+(money*sum)+"$。");

    }
}

?2.按要求编写一个Java应用程序:
(1)定义一个类,描述一个矩形,包含有长、宽两种属性,和计算面积方法。
(2)编写一个类,继承自矩形类,同时该类描述长方体,具有长、宽、高属性,和计算体积的方法。
(3)编写一个测试类,对以上两个类进行测试,创建一个长方体,定义其长、宽、高,输出其底面积和体积。

package java_1210;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入 宽:");
        int wide=sc.nextInt();
        System.out.print("请输入 高:");
        int high=sc.nextInt();
        System.out.print("请输入 长:");
        int length=sc.nextInt();
        //创建子类的对象,输入数据并使用父类的属性以及方法
    Cuboid c=new Cuboid(wide,high,length);
        System.out.println("长方形的底面积为:"+c.area());
        System.out.println("长方形的体积为:"+c.volume());
    }
}

?3.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

4.一个数如果恰好等于它的因子之和,这个数就称为?"完数?"。例如6=1+2+3.编程?找出1000以内的所有完数

5.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在?第10次落地时,共经过多少米?第10次反弹多高?

package java_1210;

import java.util.Scanner;

public class Demo01 {
    public static void main(String[] args) {
    topic3();

    }
    public static void go(){
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入在1~9中随意输入数值:");
        int num=sc.nextInt();

        if (num<=9&&num>=1){
            System.out.print("请输入相加多少次:");
            int time=sc.nextInt();
            System.out.println(topic1(num,time));
        }else {
            System.out.println("输入不规范,程序重启!");
            go();
        }
    }
    public static int topic1(int num,int time){
     int sum=0;
        int number=0;
        for (int i = 0; i < time; i++) {
            //每次都使初始数值*10+他自身,保证每一位都相同
            number=number*10+num;
            //把所有数值都加入总数中
            sum+=number;
        }
        return sum;
    }
    public static void topic2(){
        //从第二位开始,到第1000位结束
        for (int i = 2; i <1000 ; i++) {
            int sum=0;

            for (int j = 1; j < i; j++) {
                int t=i%j;//先循环得出这个数的因子
                if (t==0) sum+=j;//将因子计入总数,总数将在外层循环开始时重置
            }
            //如果因子相加后的总数与这个当前数值相同则判断成立
            if (sum==i) System.out.println(i+"是完数");
        }
    }
    public static void topic3() {
    double num=100;//设置一个初始高度位100的球
        //让其弹跳10次
        for (int i = 0; i < 10; i++) {
            System.out.println("开始自由落下~~~~~~");
            System.out.println("当前高度落下需经过:"+num+"米");

            num/=2;
        }
        System.out.println("最终经过"+num+"米");
        System.out.println("第十次反弹高度为:"+(num/2));
    }
}

今天写的题比往常要少,但要更累一些,还是练的太少了,还要再加把劲。

冲! 冲! 冲!

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-11 15:32:36  更:2021-12-11 15:34:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:43:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码