java吧 关注:1,267,763贴子:12,771,477
  • 8回复贴,共1

新人学习贴记录每一天的学习想以此来激励自己学习的动力谢谢支持

只看楼主收藏回复


今年27了工作了9年了,自学java希望自己能成功零零散散的看了好几个月的视频,白天上班,基本上只有晚上有点时间练习下,进度真的好慢,这次下决心一定要每天学习一个知识点,积少成多,相信一定会成功的


1楼2016-09-17 23:06回复
    前些日子学到了接口 这里,看了好几遍的视频和书一直蒙蒙的,今天往前一章重新从抽象类开始学习!
    抽象类必须使用abstract修饰符来修饰,抽象方法也是abstract修饰,抽象方法不能有方法体
    抽象类可以有普通的方法,变量,但是不能被实例化,有构造器主要用于被子类继承
    我打代码真的好慢自己都服了,这是不想写代码的主要原因!
    图形计算周长的练习:
    package day9_17;
    /**
    *
    *这个是抽象类
    *
    public class SpeedMeterTest {
    public static void main(String[] args) {
    // TODO 自动生成的方法存根
    SpeedMeter s=new carSpeedMeter();
    s.setTurnRate(15);
    System.out.println(s.getSpeed());
    }
    }


    2楼2016-09-17 23:17
    回复
      2025-07-05 11:48:06
      广告
      package Perimeter;
      /**
      *这个才是抽象类粘贴都粘贴错了 我也是服了自己了
      public abstract class Shape {
      {
      System.out.println("执行Shape的初始化模块");
      }
      private String color;
      //定义一个计算周长的抽象方法
      public abstract double calPerimeter();
      //定义一个返回形状的抽象方法
      public abstract String getType();
      //定义一个Shape的构造器,该构造器并不是用于创建Shape对象,而是用于被子类调用
      public Shape(){}
      public Shape(String color){
      System.out.println("执行Shape的构造器");
      this.color=color;
      }
      public void setColor(String color){
      this.color=color;
      }
      public String getColor(){
      return this.color;
      }
      }


      3楼2016-09-17 23:19
      回复
        package Perimeter;
        /**
        *三角形的子类 @overRide了2个抽象类的抽象方法
        public class Triangle extends Shape {
        private double a;
        private double b;
        private double c;
        public Triangle(String color,double a,double b,double c){
        super(color);
        this.setSides(a,b,c);
        }
        public void setSides(double a,double b,double c){
        if(a>=b+c||b>=a+c||c>=a+b){
        System.out.println("三角形两边之和必须大于第三边");
        return;
        }
        this.a=a;
        this.b=b;
        this.c=c;
        }
        @Override
        public double calPerimeter() {
        // TODO 自动生成的方法存根
        return a+b+c;
        }
        @Override
        public String getType() {
        // TODO 自动生成的方法存根
        return "三角形";
        }
        }


        4楼2016-09-17 23:20
        回复
          package Perimeter;
          /**
          *圆形的子类,同样@OverRide了2个抽象类的抽象方法
          public class Circle extends Shape {
          private double radius;//定义一个半径
          //初始化构造器
          public Circle(String color,double radius){
          super(color);
          this.radius=radius;
          }
          /*public void setRadius(double radius){
          this.radius=radius;
          }*/
          @Override
          public double calPerimeter() {
          // TODO 自动生成的方法存根
          return 2*Math.PI*radius;
          }
          @Override
          public String getType() {
          // TODO 自动生成的方法存根
          return getColor()+"圆形";
          }
          }


          5楼2016-09-17 23:21
          回复
            又练习了一个速度表好像是汽车的吧,反正基本都是抄,英文水平太差有小学水平
            package day9_17;
            /**
            *抽象类
            public abstract class SpeedMeter {
            //转速
            private double turnRate;
            public SpeedMeter(){
            }
            //把车轮半径的方法定义成抽象方法
            public abstract double getRadius();
            public void setTurnRate(double turnRate){
            this.turnRate=turnRate;
            }
            //定义转速的通用算法
            public double getSpeed(){
            //速度等于车轮半径*2*PI*转速
            return java.lang.Math.PI*2*getRadius()*turnRate;
            }
            }


            8楼2016-09-17 23:26
            回复
              package day9_17;
              /**
              *实现类/子类? 不明白为什么这个转速不在实例化对象的时候再传值呢?有什么不同吗
              public class carSpeedMeter extends SpeedMeter {
              @Override
              public double getRadius() {
              // TODO 自动生成的方法存根
              return 0.28;
              }
              }


              9楼2016-09-17 23:28
              回复
                package day9_17;
                /**
                *好吧创建下实例,运行下试试
                public class SpeedMeterTest {
                public static void main(String[] args) {
                // TODO 自动生成的方法存根
                SpeedMeter s=new carSpeedMeter();
                s.setTurnRate(15);
                System.out.println(s.getSpeed());
                }
                }


                10楼2016-09-17 23:32
                回复