JAVASE 零基础 第一课作业 OO基础

1 面向对象基础练习
1.1 Circle(圆形)
在这里插入图片描述

写一个名为Circle的类,它包括:
 2个私有变量:半径radius(double)和 color(String)
 2个构造函数:一个没有参数 - 自己给变量设置默认值,一个要传入radius参数
 2个公共方法:getRadius()返回半径;getArea() 返回圆的面积

写一个测试类TestCircle - 用两个不同的构造函数来创建Circle,然后调用他们的方法。

为Circle增加新的构造函数,getter和setter方法和toString方法。最后类有如下属性和方法:

在这里插入图片描述

1.2 简化的Circle
在这里插入图片描述

getCircumference()是获得圆的周长

package hw1;

import java.util.Calendar;

public class hw1demo1 {
    public static void main(String[] args) {
        Circle c1 = new Circle();
        System.out.println(c1.getColor()+" "+c1.getRadius()+" 面积:"+c1.getArea());
        Circle c2 = new Circle( 2.5);
        System.out.println(c2.getColor()+" "+c2.getRadius()+" "+c2.getClass());  //getClass 获取类的信息:,包+类名
    }
}

class Circle{
    public double getRadius() {
        return radius;
    }

    public String getColor() {
        return color;
    }

    public void setRadius(double radius) {
        this.radius = radius;
    }

    public void setColor(String color) {
        this.color = color;
    }

    private double radius = 1.0;//java可以在类中对非static属性直接赋值吗?是可以的,是默认值,当然如果在构造函数里面有设置默认,会覆盖
    private String color = "red" ;
    public Circle(){//构造函数一律public  因为new的时候需要调用。
        radius = 2.0;
        color = "green";//覆盖属性定义的默认值
    }
    public Circle(double radius){
        this.radius = radius;
        color = "green";
    }
   public Circle(double radius,String color){
        this.radius = radius;
        this.color = color;

    }
    public double getArea(){
        return Math.PI*Math.pow(radius,2);  //有没有pow函数
    }
    public String toString(){
        return "Circle[radius="+radius+"]";
    }
    public double getCircumFerence(){
        return Math.PI*2*radius;
    }
}

3 大数值 BigInteger BigDecimal
3.1 需要视频讲解和练习
4 复杂类
4.1 MyTime
在这里插入图片描述
 setTime方法需要检查传入数值的合法性,否则抛出IllegalArgumentException异常
 各setter也要检查合法性
 toString返回格式为“HH:MM:SS”
 nextSecond返回下一秒的MyTime的实例。其他方法同等。
这里博主就不写next和previous了,因为C++学的时候写烂了都,考虑那几个24,59,60,00这些结点即可,没什么难的时间问题。

package hw1;

public class TestMyTime {
    public static void main(String[] args) {
        MyTime a = new MyTime(24,59,59);
       // a.myToString();
       a.setHour(25);//抛出异常,异常名后面跟着实例化的”hour不合法“
    }
}
class MyTime{
    public int getHour() {
        return hour;
    }

    public int getMinute() {
        return minute;
    }

    public int getSecond() {
        return second;
    }

    public void setHour(int hour) {
        if (hour>24||hour<0){
            throw new IllegalArgumentException("hour不合法");//注意啊,throw是一个异常实例,而不是一个异常类
        }
        this.hour = hour;
    }

    public void setMinute(int minute) {
        if (minute>60||minute<0){
            throw new IllegalArgumentException();
        }
        this.minute = minute;
    }

    public void setSecond(int second) {
        if (second>60||second<0){
            throw new IllegalArgumentException();
        }
        this.second = second;
    }

    public int hour = 0;
    public int minute = 0;
    public int second = 0;
    public MyTime(){
        int hour = 0;
        int minute = 0;
        int second = 0;
    }

    public MyTime(int hour, int minute, int second) {
        this.hour = hour;
        this.minute = minute;
        this.second = second;
    }

    public void setTime(int hour,int minute,int second) {
       if ((second>60||second<0)||(minute>60||minute<0)||(hour>24||hour<0))
       {
           throw new IllegalArgumentException();
       }
        this.hour = hour;
        this.second = second;
        this.minute = minute;
    }
    public void myToString(){
        System.out.printf("%d:%d:%d",hour,minute,second);
    }


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值