《Java作业1:Java基础-+-OOP技术训练.docx》由会员分享,可在线阅读,更多相关《Java作业1:Java基础-+-OOP技术训练.docx(5页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、作业1 : Java基础+ OOP技术训练(封装继承、多态)1、整理出Java的特点。1 .面向对象的语言2 .与平台无关3 .相对C+较简单4 .程序的健壮性5 .可移植性6 .支持多线程2、详细阐述环境变量PATH、CLASSPATH的作用。PATH:配置JDK命令文件的位置。Java编译器和解释器在Java安装目录的bin文 件夹中,配置PATH变量能使操作系统方便地查找JDK命令。CLASSPATH:配置类库文件的位置,使解释器在加载类时能正确查找类所在的位置。3、写出一段HelioWorld的Java程序,解释程序的各个部分的含义(包定义、包导入、 类定义、主函数、打印语句等)pac
2、kage a;/定义a包public class A 己包中定义A类public A() System.out.println(HelioWorld.);打印HelloWorld ) )import a.A;/导入a包中的A类public class HelloWorld 定义类HelloWorldpublic static void main(String args) /主函数A obj=new A();System.out.printin(Done.); ) HelloWorld (1) Java Application D:jdk1.8.0 144binjavaw.exe HelloWo
3、rld. Done.4、(1)定义两个 AbstractPole 的子类 CirclePole, RectanglePoIe;(2)分别按照圆 形、矩形的逻辑定义其构造函数,用来初始化其底面积计算需要的变量(如半径; 长、宽);(3)覆盖父类中的抽象方法area。,计算对应的截面积;import java.util.Scanner;public abstract class AbstractPole public abstract double area(); public static void main(String args) CirclePole cl=new CirclePole(0
4、);RectanglePoIe rl=new RectanglePole(0J0); Scanner sc=new Scanner(System.in);System.out.printin(请输入半径:); cl.r=sc.nextlnt();System.out.printin(“圆柱底面积:+cl.area。);System. out. print In (”请输入长和宽:); rl.l=sc.nextlnt(); rl.w=sc.nextlnt();System.out.printin(棱柱底面积:+rl.area(); class CirclePole extends Abstrac
5、tPole double r;CirclePole(double r) this.r=r; ) public double area() return Math ) class RectanglePoIe extends AbstractPole double l,w;RectanglePoIe(double 1,double w) this.1=1; this.w=w; ) public double area() returnAbstractPole Java Application D:jdkL8.0 144binjavaw.exe 请输入半径:圆柱底面积:28.274333882308
6、138请输入长和宽:5 6棱柱底面积:30.05、定义一个Client类,定义有一个主函数,在一个循环体内根据随机数不同,分 别生成CirclePole或者RectanglePole的对象,将这个对象放到预先定义的数组 poleAiray中。然后循环遍历poleArray数组,输出其中每个对象的体积。package Pole;import java.util.Scanner;public abstract class AbstractPole double h=l;public abstract double area();public double volumn() return area(
7、)*h;public static void main(String args) CirclePole cl=new CirclePole(0);RectanglePole rl=new RectanglePole(00);Scanner sc=new Scanner(System.in);System . out. print In (请输入半径:”);cl.r=sc.nextlnt();System. out. print In (圆柱底面积:+cl.area()jSystemprint In (”请输入长和宽:);rl.l=sc.nextlnt();rl.w=sc.nextlnt();S
8、ystemprint In (棱柱底面积:+rl.area()j)package Pole;public class CirclePole extends AbstractPole double r;public CirclePole(double r) this.r=r;)public double area() return Math.PJ*r*r;package Pole;public class RectanglePole extends AbstractPole double IjW;public RectanglePole(double 1,double w) this.1=1;t
9、his.w=w;)public double area() return l*w;)import Pole.*;public abstract class Client extends AbstractPole public static void main(String args) AbstractPole poleArray = new AbstractPole10; for(int i=0;i10;i+) int d=(int)(Math.random()*10+1); if(d%2=0) System. out. print In (随机数是:H+d);CirclePole cl=ne
10、w CirclePole(d); poleArrayi=cl;Sy stem. out. print In (此圆柱的体积是:,+cl.volumn();System.out.printIn();)else System . out. print In (随机数是:+d);RectanglePole rl=new RectanglePole(dd); poleArrayi=rl;System, out. print In (“此棱柱的体积是:+rl.volumn()j System.out.printIn();) Client Java ApplicationJ D:jdk1.8.0144bi
11、njavaw.exe 随机数是:7此棱柱的体积是:49.0随机数是:1此棱柱的体积是:1.0随机数是:6此圆柱的体积是:113.09733552923255随机数是8此圆柱的体积是:随机数是:6此圆柱的体积是:113.09733552923255随机数是:3此棱柱的体积是:9.0随机数是:4此图柱的体积是:50.26548245743669随机数是:8此圆柱的体积是:随机数是,5此棱柱的体积是:25.0随机数是,1曲林柱的体积是:1.06、方法的重载和重写的区别是什么?方法重载:在一个类中创建多个不同定义的方法。它们的方法名相同,但参数个数或参 数类型不一样,返回类型可以相同也可以不相同。方法重写:子类重新定义父类中的方法。重写的方法名、返回类型、参数类型、参数 个数都和父类中的一样。7、子类覆盖父类方法的两条原则是什么?1 .子类重写父类方法时,不能降低方法的访问权限2 .子类重写的方法不能比父类方法传递更多的异常