Math类、ArrayList类、继承: extends、抽象abstract

本文深入讲解Java中的数学操作,ArrayList的使用,类的继承及抽象类的概念。涵盖Math类的各种数学函数,ArrayList的动态数组特性,继承的实现与理解,以及抽象类与抽象方法的运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一。Math:

Scanner con=new Scanner(System.in);
        double m=con.nextDouble();
        double n=con.nextInt();

        System.out.println("随机0.0~1.0"+"\t"+Math.random());
        System.out.println("绝对值"+Math.abs(m));
        System.out.println("向上取整"+Math.ceil(m));
        System.out.println("向下取整"+Math.floor(m));
        System.out.println("四舍五入"+Math.round(m));
        System.out.println("开方"+Math.sqrt(m));
        System.out.println("指数"+Math.pow(m,n));

二。ArrayList-类:用来存储数据, 可变长数组 -> 集合,可以实现数组长度动态变化,所属软件包: java.util,ArrayList 仅支持引用类型
1.构造方法:

 ArrayList < >  arrList = new ArrayList<E>()

《E》: 泛型, 可以所有的引用类型, 规定集合中元素类型

         基本数据类型都有对应的引用类型
         int -> Integer
         char -> Character
         byte -> Byte
         boolean -> Boolean
         double -> Double
String[] a={"p","k"};
        ArrayList <String> list = new ArrayList();//< >泛型:规定集合中元素的类型
        list.add("kjsd");//从数组中加元素
        list.add("qwe");
        list.add("uiui");
        list.add("gdfg");
        list.add(list.get(1));
        list.add(a[0]);
        System.out.println(list);
        list.remove(2);//从数组中删元素,参数为下标
        System.out.println(list);
        //  list.size()获得list长度
        String m= list.get(2);//从集合中获取list下标为2的元素
        System.out.println("获得"+m);
        for(int i=0;i<list.size();i++){
            System.out.println(list.get(i));

三。继承: extends
1.概念:子类/衍生类/扩展类: Dog
父类/基类: Animal
2.子类继承父类, 就继承了父类所有的成员变量和方法
3.所有的类, 都有唯一的父类,
如果没有写父类, 说明父类就是 Object
4.子类中还可以定义自己的独特的成员变量和方法
子类的功能一定比父类要强大

特殊情况:
1.子类中的成员变量和父类同名 name
Dog d = new Dog();
d.name -> 就是指自己定义的name,不是继承过来的name
结论: 父子类中的成员变量不要同名
2.子类中可以引用父类对象
super
3.创建子类对象之前, 会先创建父类对象,
加载子类之前, 会先加载父类
4.构造方法: 父类的构造方法不能被子类继承的
创建子类对象, 会先默认调用父类的无参构造器
原因: 子类构造方法中, 第一行默认 super()
可以手动调用父类其他构造方法
结论: 子类构造方法中, 一定会先调用父类的构造方法
父类中, 建议先写无参构造器
5.通过子类对象调用方法时
先看子类中有没有定义这个方法, 定义了, 调用子类方法
子类中没有这个方法, 调用父类继承的方法

public class Animal extends Object {
    String name;
    char sex;
    int age;
    Animal() {
        sex = '男';
        System.out.println("Animal空参构造器");
    }
    Animal(String name) {
        this.name = name;
        System.out.println("Animal有参构造器");
    }
    void eat() {
        System.out.println(this.name + "在吃好吃的!");
    }
}
/**
 * 小狗类 继承了 动物类
 * 1.概念:子类/衍生类/扩展类: Dog  父类/基类: Animal
 * 2.子类继承父类, 就继承了父类所有的成员变量和方法
 * 3.所有的类, 都有唯一的父类, 如果没有写父类, 说明父类就是:Object
 * 4.子类中还可以定义自己的独特的成员变量和方法
 *   子类的功能一定比父类要强大
 */
public class Dog extends Animal {
    String name;
    Dog() {
        // 调用父类有参构造方法
        super("");
        System.out.println("Dog空参构造器");
    }
    Dog(String name) {
        super(); // 默认调用父类无参构造方法
        super.name = name;
        this.name = "小强";
        System.out.println("Dog有参构造器");
    }
    void wang() {
        System.out.println(name + "汪汪!");
    }
    // 重写的父类中的eat
    void eat() {//子类方法重写
        // 子类自己的功能
        System.out.println(this.name + "舔舔小爪子!");
        // 和父类中的eat方法一致
        super.eat();
        // 子类自己的功能
        System.out.println(this.name + "舔舔嘴巴!");
    }
}

public class Demo01Extends {
    public static void main(String[] args) {
        Dog d = new Dog("旺财");
        // name是在父类中声明的, 子类可以直接使用
        System.out.println(d.name);
//        d.name = "旺财";
        d.eat(); // 子类方法
//        d.wang();
    }
}

在这里插入图片描述

四。修饰词abstract 抽象的
抽象方法: 方法没有方法体
一个类中, 存在抽象方法, 那么这个类就必须也是abstract
抽象类: 用abstract修饰的类
抽象类不能直接new对象
有构造方法, 为了给子类使用
抽象类的非抽象子类, 必须实现/重写抽象类的所有抽象方法
判断:
1.有抽象方法的类叫抽象类 √
2.抽象类就是有抽象方法的类 ×
3.抽象类中可以没有抽象方法 √

public abstract class Flyobject {//抽象类
    //抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类
    int x;
    int y;
    //抽象类中可以有构造方法,以供子类创建对象时初始化使用
    Flyobject(){
    }
    abstract void move();//为了让所有子类统一,父类方法体没有意义,不写。--抽象方法
}

public  class Hero extends Flyobject {
    void move(){//此时的方法重写是子类对父类抽象方法完成实现,也叫实现方法
        System.out.println("英雄飞机在发射子弹");
        //继承抽象类的子类要重写抽象方法。否则,该子类也必须声明为抽象类
    }
}
public class Main {
    public  static void main(String [] ages){
        //抽象类不可以创建对象,只有其非抽象子类可以创建对象
        Fly a=new Fly();
        a.move();
        Hero b=new Hero();
        b.move();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值