寒假集训第五日课程思考

  • 前言
    • 作业内容:
  • 问题思考
  • 以下是作业源码
    • 代码1
    • 代码2
    • 代码3
  • 作业效果展示
    • 先创建一个dog1(如图)
      • 开始的时候自带一只猫小白,作为测试,会打印出他的信息
      • 创建完以后,在键入1,会显示已有
    • 再创建dog2(如图)
      • 创建完以后,在键入2,会显示已有
    • 再创建cat2(如图)
      • 创建完以后,在键入3,会显示已有
    • 最后根据内置原则,判断是否可以养这些宠物(如图)
      • 根据测试信息会发现可以养
    • 键入5,退出系统(如图)
  • 总结

前言

学习Java的第五天
今天学习了类和对象,以下将会讲一下自己对面向对象的理解。
之后是第五次集训作业的源码

作业内容:

设计两个类,每个类中需要有三个以上属性,get,set方法,构造器,以及额外定义三个以上的方法,思考这两个类之间如何交互,最好能体现在代码里面。

问题思考

1、什么是面向对象?

运用分类的思维模式,思考问题首先会解决问题需要分哪几类,对这些类进行单独思考。面向对象是模型化的,你只需抽象出一个类,这是一个封闭的盒子,在这里你拥有数据也拥有解决问题的方法。需要什么功能直接使用就可以了,不必去一步一步的实现。

2、什么是对象?

一系列行为与属性的一个集合

3、面向对象的程序设计与面向过程的程序设计有什么区别?

面向过程是具体化的,流程化的,解决一个问题,你需要一步一步的分析,一步一步的实现。

面向对象是模型化的,你只需抽象出一个类,这是一个封闭的盒子,在这里你拥有数据也拥有解决问题的方法。需要什么功能直接使用就可以了,不必去一步一步的实现。

面向对象的底层其实还是面向过程,把面向过程抽象成类,然后封装,方便我们使用的就是面向对象了。

4、当我们谈及面向对象时,我们所关心的是什么?

关心的是解决问题的通解,或者说是思维模式,并不关心某一问题具体怎么解决。我们关心的是建模,而不是解决某一具体问题本身


以下是作业源码

代码1

/*** 一个宠物窝系统* 可以养狗和猫* 原先有一只猫,系统会将数据读出* 上限是三只宠物,一只狗和两只猫* 当三只宠物养满后,可查看是否可养* 是否可养原则:* 1.白猫怕黑狗,不能一起养* 2.黄狗和黄猫会打架,不能一起养* <p>* 总结:上课讲到猫,突然脑洞大开......*/import com.sun.deploy.net.MessageHeader;import java.util.Scanner;public class TEXT {public static void main(String[] args) {System.out.println("下面进行一下测试,你会看到宠物窝里的小猫的数据");CAT cat1 = new CAT("小白", 1, "睡觉", "白色");System.out.println(cat1.toString());int Cnum = 1;//记录猫总数int Dnum = 0;//记录狗总数int i;boolean C1 = true;boolean D1 = false;boolean D2 = false;boolean C2 = false;boolean J = false;do {System.out.println("下面请选择功能");System.out.println("1.养狗1");System.out.println("2.养狗2");System.out.println("3.养猫2");System.out.println("4.测试是否可以养");System.out.println("5.退出系统");Scanner sc = new Scanner(System.in);DOG dog2 = new DOG();DOG dog1 = new DOG();CAT cat2 = new CAT();i = sc.nextInt();if (i == 1) {if (D1 == false) {System.out.println("输入名字");String nameD1;int ageD1;String likeD1;String colorD1;Scanner sc1 = new Scanner(System.in);nameD1 = sc1.nextLine();System.out.println("输入年龄");Scanner sc2 = new Scanner(System.in);ageD1 = sc2.nextInt();System.out.println("输入爱好");Scanner sc3 = new Scanner(System.in);likeD1 = sc3.nextLine();System.out.println("输入颜色");Scanner sc4 = new Scanner(System.in);colorD1 = sc4.nextLine();dog1.setAge(ageD1);dog1.setColor(colorD1);dog1.setName(nameD1);dog1.setLike(likeD1);Dnum++;D1 = true;} else {System.out.println("已有");}}if (i == 2) {if (D2 != true) {System.out.println("输入名字");String nameD1;int ageD1;String likeD1;String colorD1;Scanner sc1 = new Scanner(System.in);nameD1 = sc1.nextLine();System.out.println("输入年龄");Scanner sc2 = new Scanner(System.in);ageD1 = sc2.nextInt();System.out.println("输入爱好");Scanner sc3 = new Scanner(System.in);likeD1 = sc3.nextLine();System.out.println("输入颜色");Scanner sc4 = new Scanner(System.in);colorD1 = sc4.nextLine();dog2.setAge(ageD1);dog2.setColor(colorD1);dog2.setName(nameD1);dog2.setLike(likeD1);Dnum++;D2 = true;} else {System.out.println("已有");}}if (i == 3) {if (C2 != true) {System.out.println("输入名字");String nameD1;int ageD1;String likeD1;String colorD1;Scanner sc1 = new Scanner(System.in);nameD1 = sc1.nextLine();System.out.println("输入年龄");Scanner sc2 = new Scanner(System.in);ageD1 = sc2.nextInt();System.out.println("输入爱好");Scanner sc3 = new Scanner(System.in);likeD1 = sc3.nextLine();System.out.println("输入颜色");Scanner sc4 = new Scanner(System.in);colorD1 = sc4.nextLine();cat2.setAge(ageD1);cat2.setColor(colorD1);cat2.setName(nameD1);cat2.setLike(likeD1);Dnum++;C2 = true;} else {System.out.println("已有");}}if (i == 4) {int a = 0;System.out.println("判断的基准是1.白猫怕黑狗,不能一起养,黄狗和黄猫会打架,不能一起养");System.out.println("因此判断的结果是:");if (cat1.getColor() == "白色" && dog1.getColor() == "黑色") {System.out.println("不行!");a = 1;}if (cat2.getColor() == "白色" && dog1.getColor() == "黑色") {System.out.println("不行!");a = 1;}if (cat1.getColor() == "白色" && dog2.getColor() == "黑色") {System.out.println("不行!");a = 1;}if (cat2.getColor() == "白色" && dog2.getColor() == "黑色") {System.out.println("不行!");a = 1;}if (cat1.getColor() == "黄色" && dog1.getColor() == "黄色") {System.out.println("不行!");a = 1;}if (cat2.getColor() == "黄色" && dog1.getColor() == "黄色") {System.out.println("不行!");a = 1;}if (cat1.getColor() == "黄色" && dog2.getColor() == "黄色") {System.out.println("不行!");a = 1;}if (cat2.getColor() == "黄色" && dog2.getColor() == "黄色") {System.out.println("不行!");a = 1;}if (a == 0) {System.out.println("可以养!");}}if (i == 5) {J = true;}} while (J == false);}
}

代码2

public class CAT {private int age;private String like;private String color;private String name;CAT(String name, int age, String like, String color) {this.age = age;this.like = like;this.color = color;this.name = name;}CAT() {}@Overridepublic String toString() {return "CAT{" +"age=" + age +", like='" + like + '\'' +", color='" + color + '\'' +'}';}public int getAge() {return age;}public String getLike() {return like;}public String getColor() {return color;}public String getName() {return name;}public void setAge(int age) {this.age = age;}public void setLike(String like) {this.like = like;}public void setColor(String color) {this.color = color;}public void setName(String name) {this.name = name;}
}

代码3

import java.util.Scanner;public class DOG {private int age;private String like;private String color;private String name;DOG(String name, int age, String like, String color) {this.age = age;this.like = like;this.color = color;this.name = name;}DOG() {}@Overridepublic String toString() {return "DOG{" +"age=" + age +", like='" + like + '\'' +", color='" + color + '\'' +'}';}public String getName() {return name;}public int getAge() {return age;}public String getLike() {return like;}public String getColor() {return color;}public void setAge(int age) {this.age = age;}public void setLike(String like) {this.like = like;}public void setColor(String color) {this.color = color;}public void setName(String name) {this.name = name;}
}

作业效果展示

与其设计

  • 一个宠物窝系统
  • 有初始菜单,可交互
  • 用以养狗和猫,并判断是否可以养
  • 原先有一只猫,系统会将数据读出
  • 上限是四只宠物,两只狗和两只猫
  • 当四只宠物养满后,可查看是否可养
  • 是否可养原则:
  • 1.白猫怕黑狗,不能一起养
  • 2.黄狗和黄猫会打架,不能一起养
  • 总结:上课讲到猫,突然脑洞大开…

先创建一个dog1(如图)

开始的时候自带一只猫小白,作为测试,会打印出他的信息

创建完以后,在键入1,会显示已有

再创建dog2(如图)

创建完以后,在键入2,会显示已有

再创建cat2(如图)

创建完以后,在键入3,会显示已有

最后根据内置原则,判断是否可以养这些宠物(如图)

根据测试信息会发现可以养

键入5,退出系统(如图)


总结

都是一些粗浅而且可能是错的看法,欢迎指正。

寒假集训第五日课程思考相关推荐

  1. 【软件创新实验室2021年寒假集训】Java后端开发漫谈及感悟分享

    系列文章目录 [软件创新实验室2021年寒假集训]汇总篇 20级Java培训 第一天:[软件创新实验室2021年寒假集训]Java技术培训--Java前置知识学习 第二天:Java基础(一) 第三天: ...

  2. 寒假集训三(暴力枚举)2020.01.02(11题)

    寒假集训三(暴力枚举)id :521 Problem:A 二倍的问题 Description 给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足:数对中一个数是另一个数的两倍.比如给 ...

  3. 2019/1/30 寒假集训总结

    从一月16号到一月29号为期两周的寒假集训已经结束了,说实话,从一开始认真对待,到最后几天出现了松懈,但仍然坚持下来.总是感觉这次集训自己做了很大的努力,直到昨天看见老费发的一篇关于去参加CCPC   ...

  4. 【软件创新实验室2021年寒假集训】Java技术培训——Java前置知识学习

    系列文章目录 [软件创新实验室2021年寒假集训]汇总篇 20级Java培训 第一天:[软件创新实验室2021年寒假集训]Java技术培训--Java前置知识学习 第二天:Java基础(一) 第三天: ...

  5. DP\记忆化搜索-牛客寒假集训营3-牛牛的DRB迷宫I

    DP-牛客寒假集训营3-牛牛的DRB迷宫I 题目: 题意: 求迷宫问题的方案数量.与--求迷宫问题的方案数量.与--求迷宫问题的方案数量.与--DP题型总结中的<摘花生>类似.中的< ...

  6. 构造-牛客寒假集训营3-牛牛的DRB迷宫II

    构造-牛客寒假集训营3-牛牛的DRB迷宫II 题目: 题意: 输入一个数字,表示从起点(1,1)到终点(n,m)的方案数量,输出满足条件的迷宫.输入一个数字,表示从起点(1,1)到终点(n,m)的方案 ...

  7. 关于构造和二进制,题目:牛牛的DRB迷宫Ⅱ(源自牛客竞赛2020年寒假集训)

    关于构造和二进制,题目:牛牛的DRB迷宫Ⅱ(源自牛客竞赛2020年寒假集训) 题目: 链接:https://ac.nowcoder.com/acm/contest/3004/B 来源:牛客网 题目描述 ...

  8. 2019NEFU寒假集训新生考试 2020.1.6

    2019NEFU寒假集训新生考试 2020.1.6 为期一周的的培训终于面临尾声,就以一场考试告终吧. A 28的因子 Description 我们都知道28的因子中含有4和7,而某些人偏爱数字4和7 ...

  9. 大一寒假集训(11)(12)---map,set

    大一寒假集训(11)-map 1.查字典 nefu 1678 #include <bits/stdc++.h> using namespace std; map<string,int ...

最新文章

  1. Java中import及package的用法
  2. 网络编程常见问题总结
  3. 乐观锁和悲观锁的区别(最全面的分析)
  4. NIST发布网络安全劳动力框架
  5. STM32F103 PA8不能输出PWM波问题
  6. VS2010下如何改变Button颜色、背景、边框
  7. 今日头条iOS客户端启动速度优化
  8. Elasticsearch基础(一)mapping
  9. IOS-Run loop学习总结
  10. 35+大龄程序员被清退?
  11. Codeforces Round #435 (Div. 2) E. Mahmoud and Ehab and the function[二分]
  12. 再谈mysql之执行计划explain
  13. 苹果计算机音乐谱大全,macOS乐谱制作软件大全推荐~
  14. 【基础篇】Navicat让MySQL数据库可视化
  15. 中台架构的未来在哪—开放式架构
  16. 有限元分析试题:ANSYS有限元分析中级培训考题及其答案解析(填空+选择+判断+解答)
  17. Python爬虫实战之爬取饿了么信息
  18. 如何提高有效工作效率
  19. java 拖拉机_拖拉机(升级)必胜之秘诀 - 淡泊明志,宁静致远 - JavaEye技术网站...
  20. 腾讯云服务器如何挂载云硬盘(Linux版本)?

热门文章

  1. Ksh if判断中与文件相关的选项整理
  2. 西安文理学院计算机专场2019,西安文理学院2019年录取分数分析
  3. 祭祀组成计算机CPU的两大部件是什么,组成cpu的两大部件是什么和什么
  4. 读书笔记:《代码大全第2版》布局与风格
  5. 如何正确地给图像添加高斯噪声
  6. OneAPM 试用测评
  7. CF946D Timetable 分组背包 + 预处理
  8. SLR分析2及文法汇合
  9. 跑通CLAM测试部分
  10. Windows Defender防火墙无法更改某些设置,错误代码0x80070422