• 第六周&java实验报告四


    实验报告

    (1)根据下面的要求实现圆类Circle。
    1.圆类Circle的成员变量:radius表示圆的半径。
    2.圆类Circle的方法成员:
    Circle():构造方法,将半径置0
    Circle(double r):构造方法,创建Circle对象时将半径初始化为r
    double getRadius():获得圆的半径值
    double getPerimeter():获得圆的周长
    void disp():将圆的半径和圆的周长,圆的面积输出到屏幕

    代码

    package Circleall;
    
    public class Circle {
    	private double radius;
    	
    	public Circle() {
    		this.radius = 1;
    	}
    
    	public double getRadius() {
    		return radius;
    	}
    	public void setRadius(double radius) {
    		this.radius = radius;
    	}
    
    	public Circle(double r) {
    		this.setRadius(r);
    	}
    	public double getPerimeter() {
    		
    		return 2*Math.PI*radius;
    	}
    	
    	public void disp() {
    		System.out.println("半径:"+radius);
    		System.out.println("周长:"+getPerimeter()+" 面积:"+Math.PI*Math.pow(radius, 2));
    	}
    	
    	public static void main (String[] args) {
    		Circle st = new Circle();
    		st.disp();
    	}
    }
    

    遇到的问题

    无。

    运行结果

    2)继承第一题中的圆Circle类,派生圆柱体类Cylinder。要求如下:
    1.圆柱体类Cylinder的成员变量:height表示圆柱体的高。
    2.圆柱体类Cylinder的成员方法:
    Cylinder(double r,double h)构造方法,创建Cylinder对象时将圆半径初始化为r,圆柱体高初始化为h。
    double getHeight():获得圆柱体的高
    double getVol():获得圆柱体的体积
    void dispVol():将圆柱体的体积输出到屏幕

    代码

    package Circleall;
    
    public class Cylinder extends Circle{
    	private double height;
    	
    	public double getHeight() {
    		return height;
    	}
    
    	public void setHeight(double height) {
    		this.height = height;
    	}
    
    	public Cylinder(double r,double h) {
    		this.setRadius(r);
    		this.setHeight(h);
    	}
    	
    	public double getVol() {   //圆柱体体积
    		
    		return Math.PI*Math.pow(getRadius(), 2)*height;
    	}
    	
    	public void dispVol() {
    		System.out.println("圆柱体的体积是:"+getVol());
    	}
    	
    	public static void main (String[] args) {
    		Cylinder st = new Cylinder(3,2);
    		st.dispVol();
    		
    	}
    }
    

    遇到的问题

    无。

    运行结果

    (3)按照第二题的Cylinder类,接上键盘的输入值作为圆的半径和圆柱体的高,计算圆柱体的体积

    代码

    package Circleall;
    
    import java.util.Scanner;
    
    public class Cylinder extends Circle{
    	private double height;
    	
    	public double getHeight() {
    		return height;
    	}
    
    	public void setHeight(double height) {
    		this.height = height;
    	}
    	
    	public Cylinder() {
    		
    	}
    	
    	public Cylinder(double r,double h) {
    		this.setRadius(r);
    		this.setHeight(h);
    	}
    	
    	public double getVol() {   //圆柱体体积
    		
    		return Math.PI*Math.pow(getRadius(), 2)*height;
    	}
    	
    	public void dispVol() {
    		System.out.println("圆柱体的体积是:"+getVol());
    	}
    	
    	public void Inputstr() {     //输入圆柱体的半径和高
    		Scanner pw = new Scanner(System.in);
    		
    		System.out.print("请输入圆柱体的半径:");
    		double radius = pw.nextDouble();
    		
    		System.out.print("请输入圆柱体的高:");
    		double height= pw.nextDouble();
    		
    		this.setRadius(radius);
    		this.height = height;
    		
    		pw.close(); 
    	}
    	
    	public static void main (String[] args) {
    		Cylinder st = new Cylinder();
    		
    		st.Inputstr();  //输入
    		
    		st.dispVol();   //输出结果
    		
    	}
    }
    

    遇到的问题

    点击运行后未报错,但是也没运行;
    解决办法:依次点击window->show view->others->General->console 就出现运行界面。

    运行结果

    学习总结

    instanceof关键字

    作用:在发生向下转型之前用于判断一个对象到底是哪个类的实例;
    格式:对象 instanceof 类 --> 返回值是boolean型;

    接口

    定义格式:
    interface 接口内容{
    全局常量;
    抽象方法;
    }

    实现接口的格式:
    class 子类 implements 接口 A,接口 B,...{
    }
    一个子类既实现接口又继承抽象类 格式:
    class 子类 extends 抽象类 implements 接口 A,接口 B,...{
    }
    抽象类实现接口格式:
    abstract class 类名 implements 接口 A{
    }

    接口的继承 格式:
    interface 子接口 extends 父接口 A,父接口 B,...{
    }

    注意:

    (1)接口中的抽象方法必须是public的访问权限,不可改变,就算没写public,也是;
    (2)要使用接口必须通过子类,子类通过implements关键字实现接口;
    (3)一个子类可以同时实现多个接口;
    (4)一个接口是不允许继承抽象类的,但一个接口允许继承多个接口。

  • 相关阅读:
    [CF603C] Lieges of Legendre
    [CF1070A] Find a Number
    [CF431D] Random Task
    2020牛客暑期多校训练营(第二场)C
    2020牛客暑期多校训练营(第二场)F
    2020牛客暑期多校训练营(第二场)D
    2020牛客暑期多校训练营(第一场)H
    [CF1000E] We Need More Bosses
    Java学习2 (ThreadLocal)
    Java复习1
  • 原文地址:https://www.cnblogs.com/LeeMayZ/p/11625470.html
Copyright © 2020-2023  润新知