1.   上转型对象的定义是什么?阐述自己对上转型对象的理解,用文字描述。

上转型:父类声明,子类实例化 叫做上转型。

(自己的理解)上转型对象可以利用父类中的全员变量和方法,当子类进行全员变量隐藏或方法重写时,则用的是子类中的。上转型对象不能用子类新增加的方法或变量。(强制转换)

u (PPT的说法)1.上转对象不能操作子类新增的成员变量,失掉了这部分属性,不能使用子类新增的方法,失掉了一些功能。

u 2.上转型对象可以操作子类继承的成员变量,也可以使用子类继承的或重写的方法。

u 3.如果子类重写了父类的某个方法后,当对象的上转型对象调用这个方法时一定是调用了子类重写的方法。因为程序在运行时知道,这个上转对象的实例是子类创建的,只不过损失了一些功能而已。

2. 多选题:

(1)下列关于父类与子类的说法错误的有(    BCD)

A.在任何情况下,子类对象都可以访问父类的受保护方法。

B.上转型对象调用的是父类中的方法。

C.子类对象不能直接调用被子类重写的父类中的方法。

D.上转型对象可以调用子类新增的方法。

2.   创建一个抽象类水果Fruit,再分别创建Apple、Pear、Orange类继承抽象类水果,分别在3个子类中定义成员变量和方法,然后再创建一个测试类Test,根据用户的输入,利用上转型对象分别实例化不同的子类,表现多态的性质。

3.  package Homework09_java;

4.  /**

5.   * 创建一个水果类做对象

6.   * @author LENOVO

7.   *

8.   */

9.  public class Fruit {

10. String color="橙色";

11. String size;

12. String name;

13.

14. public void name()

15. {System.out.println(this.name+" ");}

16. public void eating()

17. {System.out.println("直接吃 ");}

18. public void juice()

19. {System.out.println("做果汁 ");

20. }

21.

22.

23. }

24. package Homework09_java;

25. //创建一个苹果类

26. public class Apple extends Fruit {

27. String name="苹果";

28. String size="圆形";

29. String color="红色";

30.

31.

32. public void eating()

33. {System.out.println("削皮吃");}

34.

35.

36. }

37. package Homework09_java;

38. //创建一个梨类

39. public class Pear extends Fruit  {

40. String name="梨";

41. String color="黄色";

42. String size="梨形";

43. public void eating()

44. {

45.      System.out.println("洗洗吃");

46.

47.

48. }

49.

50.

51. }

52. package Homework09_java;

53. //创建一个橘子类

54. public class Orange extends Fruit{

55. String name="橘子";

56. String size="圆形";

57.

58.  public void eating()

59. {System.out.println("剥皮吃");}

60.  public void eating(Fruit a)

61.  {a.eating();}

62.  public void juice(Fruit a)

63.  {a.juice();}

64.  public void color(Fruit a)

65.  {System.out.println(""+a.color);}

66.  public void size(Fruit a)

67.  {System.out.println(""+a.size);}

68.

69. }

70. package Homework09_java;

71. import java.util.Scanner;

72. public class Test {

73. public static void main(String[] args)

74. {Scanner scanner=new Scanner(System.in);

75.      System.out.println("请输入一种水果");

76.      String name1=scanner.next();

77.      Test test=new Test();

78.      Fruit apple=new Apple();

79.      Fruit pear=new Pear();

80.      Fruit orange=new Orange();

81.      String fruit_01="苹果";

82.      String fruit_02="梨";

83.      String fruit_03="橘子";

84.      if(name1.equals(fruit_01))

85.      {test.color(apple);

86.      {test.size(apple);

87.      {test.juice(apple);

88.      test.eating(apple);

89.

90.      if(name1.equals(fruit_02))

91.      {test.color(pear);

92.      {test.size(pear);

93.      {test.juice(pear);

94.      test.eating(pear);

95.

96.      if(name1.equals(fruit_03))

97.      {test.color(orange);

98.      {test.size(orange);

99.      {test.juice(orange);

100.              test.eating(orange);

101.

102.              }

103.

104.

105.

106.              }

107.

108.

109.

110.

111.          }

112.      }

(上程序有问题,请求救援!!)

4. 猜数字游戏。随机产生一个1—100的整数,让用户去猜,猜大了(或者猜小了)都有提示;直到用户猜对,提示成功,程序结束。

package Homework09_java;

import java.util.Scanner;

import java.util.Random;

public class GuessNumber {

public static void main(String[] args)

{Random rand=new Random();

int number=rand.nextInt(100);

Scanner scanner=new Scanner(System.in);

System.out.println("请输入一个值:");

while(true)

{int data=scanner.nextInt();

//用户输入的值

if (data>number)

{System.out.println("大了,请继续输入");

continue;}

if (data<number)

{System.out.println("小了,请继续输入");

continue;}

if (data==number)

{System.out.println("成功");

break;}

}

}

}

5. 一个正整数,如果恰好等于除它本身外的所有因子之和,这个数就称为“完数”。

例如6=1+2+3,编程找出1000以内的所有完数。

package Homework09_java;

public class Wanshu

{   void wanshu ()

{   int i,j,s=0;

for (i=1;i<=1000;i++)

{for (j=1;j<i;j++)

{if (i%j==0)

{s+=j;}

if (s==i)

System.out.println(i+"\t");

}

}

}

}

package Homework09_java;

public class Main {

public static void main(String[] args)

{Wanshu ws=new Wanshu();

ws.wanshu();

}

}

6. 输出所有水仙花数(如果一个3位正整数的各个位数立方和等于这个数本身,称为水仙花数)。

package Homework09_java01;

public class DaffodilNumber {

public void main()

{int num,i,a,b,c;
for (i=100;i<1000;i++)
{num=i;
a=num%10;
num=num/10;

b=num%10;
num=num/10;

c=num%10;
if ((a*a*a+b*b*b+c*c*c)==i)
{
System.out.println(i  );
}

}

}

}

package Homework09_java01;

public class Main {
public static void main(String [] args)
{DaffodilNumber dn=new DaffodilNumber();
dn.main();

}

}

Java lesson09Homework的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题

    背景起因: 记起以前的另一次也是关于内存的调优分享下   有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...

  3. Elasticsearch之java的基本操作一

    摘要   接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...

  4. 论:开发者信仰之“天下IT是一家“(Java .NET篇)

    比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...

  5. 故障重现, JAVA进程内存不够时突然挂掉模拟

    背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...

  6. 死磕内存篇 --- JAVA进程和linux内存间的大小关系

    运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...

  7. 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用

    有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...

  8. Java多线程基础学习(二)

    9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...

  9. Java多线程基础学习(一)

    1. 创建线程    1.1 通过构造函数:public Thread(Runnable target, String name){}  或:public Thread(Runnable target ...

随机推荐

  1. 重读APUE(11)-信号安全的可重入函数

    重入时间点 进程捕捉到信号并对其进行处理时,进程正在执行的正常指令序列就会被信号处理程序临时中断,它首先执行该信号粗合理程序中的指令:如果从信号处理程序返回,则继续执行捕捉到信号时进程正在执行的正常指 ...

  2. varnish web cache服务

    varnish介绍 缓存开源解决方案: - varnish - 充分利用epoll机制(能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率),并发量大,单连接资源较轻 - squid ...

  3. Linux之破解root密码

    破解CentOs6的root口令 进入单用户模式 重启后在下面界面按任意键   进入此界面后“ a ”在下面界面   输入1 进入单用户模式1之前有空格  按回车键进入命令行执行passwd命令直接修 ...

  4. delphi nethttpclient操作cookie

    delphi nethttpclient操作cookie unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysU ...

  5. HTTP的响应协议

    响应行介绍,响应状态码 1XX: 客户端请求服务器,但是请求未完成,服务器什么事也没干 2XX: 表示响应成功,代表性的状态码就是200 3XX: 请求重定向,代表性的状态码302 4XX: 客户端发 ...

  6. python中的tcp示例详解

    python中的tcp示例详解  目录 TCP简介 TCP介绍 TCP特点 TCP与UDP的不同点 udp通信模型 tcp客户端 tcp服务器 tcp注意点   TCP简介   TCP介绍 TCP协议 ...

  7. Windows10 64位安装DB2数据库

    安装前准备 : 系统:Windows10 64位 DB2 v9.5下载地址(迅雷):http://big3.ddooo.com/db2_93661.rar 选择安装包解压位置,并复制记住: 去到解压的 ...

  8. 【UE】常用的UltraEdit使用技巧

    Tip 1: Alt+C 列模式可以说最初选择使用这个文本编辑软件,原因很简单,就是因为“她”具有列编辑模式.如果您还不知道什么是列编辑模式的话,我想您应该好好研究一下啦.这是一个超级“赞”的功能.在 ...

  9. 撸一个vue的双向绑定

    1.前言 说起双向绑定可能大家都会说:Vue内部通过Object.defineProperty方法属性拦截的方式,把data对象里每个数据的读写转化成getter/setter,当数据变化时通知视图更 ...

  10. ORB-特征点提取代码比较

    ORB特征提取代码测试 整合ICE-BA.ORB-SLAM2.openvslam中的ORB提取代码,并比较速度,方便以后使用 1. ORB-SLAM2 vsICE-BA vs openvslam IC ...