• 2020.11.20


    Arrays类
    什么是Arrays类:
    java.util.Arrays包下,主要是用来操作数组,里面提供很多操作api方法,主要是【排序】和【搜索】方法
    特点
    1.主要用来操作数组
    2.里面封装的全部都是静态方法,调用简单 类名.方法名。
    操作方法(操作数组)
    1.public static String toString(int[] arr) 返回指定数组的字符串形式

    2.public static void sort(int[] arr): //数组从小到大升序排序

    3.public static int binarySearch(int[] arr,int key); 使用二分搜索法,来搜索指定的int数组,以获得指定数值,key指的是在数组中要要搜索的值,返回值int表示搜索之所在的索引。二分搜索法,一半一半的搜索
    注意:
    1.使用的时候数组元素必须先经过【升序排序】在进行搜索得到之后的索引值是排序之后的索引值
    2.没找到返回【负数值】

    4.public static void fill(int[] arr,int val); 把val值填满数组

    Math类:
    什么是math类:
    java.longl.Math; 用于基本数学运算

    特点:
    1.包含了很多的基本数学运算,指数,幂次方,平方根,三角函数
    2.里面的方法都是静态方法·,可以直接调用。

    操作使用
    1.public static double abs(double a); 返回double值得绝对值
    2.public static double ceil(double a); 数字往上取整,返回大于等于参数的最小整数
    3.public static double floor(double a); 向下取整,返回小于等于参数最小整数
    4.public static long round(double a);返回最接近参数的long类型,传入float,返回int类型。四舍五入

    继承

    什么是继承?
    1.多个类中存在相同的属性和内容。。。。我们可以把相同的属性和行为,存放到单独类中,多个类就不用再单独声明。。。。继承父类就可以,使用这些属性和行为了。

    2.多个类称为子类:派生类。。。。。。单独类称为父类:超类,基类

    3.继承描述的是事物之间的所属关系,【is-a】关系,继承关系中【子类就是一个父类】,例如【讲师就是一个员工】。【is-a】-----------【讲师是一个员工】。

    4.父类更通用,子类更具体,使多种事物形成关系体系。

    定义
    继承就是:继承继承父类中【非私有】的属性和行为,使得子类对象与父类有相同的属性和行为,子类可以直接访问父类中【非私有的属性和行为】。继承主要解决问题就是共性【抽取效果】

    优点
    1.提高代码复用性
    2.类与类之间可以长生一种关系,是【多态的前提】

    继承格式

    通过【extends】关键字可以声明一个子类继承另一个父类

    public class FuClass{
        
    }
    public class Ziclass extends Fuclass{
        
    }
    

    代码演示

    //定义一个员工类
    public class Employee{
        String name;	//姓名
        int id;			//工号
        //定义一个员工工作方法
        public void work{
            System.out.println(name+"努力工作");
        }
    }
    //定义讲师类,继承员工类
    public class Teacher extends Employee{
        //定义讲课方法
        public void teach(){
             System.out.println("教学");
        }
    }
    
    //定义一个助教类
    public class Ta extends Employee{
    //助教类
        
    }
    
    
    //定义一个测试类
    public class Test{
        public static void main(String[] args){
            //创建一个讲师类
            Teacher t=new Teacher();
            //为该员工类的name属性赋值,
            t.name="小张";
            //调用该员工中的讲课方法
            t.teach();
            //调用teach中继承过来的work方法
            t.wokrk();
            //使用助教里面继承的属性和方法方法
            ta.name="如意";
            ta.work();
        }
    }
    

    解释:就是说子类对象可以使用父类里面【非私有】的属性和方法,也能给他赋值,使用的理由就是很多子类的时候不用每个子类都去写属性很方便。

    继承和多态的关系
    继承是多态的前提,没有继承就没有多态

    继承特点---成员变量:

    1.成员变量不重名: 子类和父类中成员变量不重名,访问没有影响

    public class Fu{
        int num=10;
    }
    public class Zi extends Fu{
        int num1=20;
        
        //定义成员方法
        public void show(){
            System.out.println("父类中的参与变量:"+num);
            System.out.println("子类中的成员变量:"+num1);
        }
    }
    
    public class Test1{
          public static void main(String[] args){
    	//创建子类对象
        Zi zi=new Zi();
        //调用子类方法
        zi.show();
    }
    }
    

    2.如果子类和父类吹醒那重名变量,这时候访问是有影响的。父类中的成员变量依然在子类的当中

    public class Fu{
        //定义父类中的成员变量
        int num=10;
    }
    public class Zi extends Fu{
        intn num=20;
        //定义成员方法
        public void show(){
            System.out.println("父类中的参与变量:"+num);
            System.out.println("子类中的成员变量:"+num);
        }
    }
    
    public class Test2{
          public static void main(String[] args){
    	//创建子类对象
        Zi zi=new Zi();
        //调用子类方法
        zi.show();
        
    }
    }
    
    

    备注:在父子类继承关系中,如果成员变量重名了,则创建子类对象时候访问有两种方式;

    1.直接通过子类对象访问成员变量:等号左边new 的哪个类,就会优先使用那个类里面的成员变量,如果没找到就像上去父类找

    2.间接通过成员方法访问成员变量,该方法属于谁就优先用谁,不会向上去父类找成员变量,没有才向上找

    super关键字

    如果父子类中出现了重名的成员变量,子类像访问父类中【非斯有】成员变量时需要使用 【super关键字】,修饰父类的成员变量,

    使用格式:
    super.父类的成员变量名;
    

    字类方法中的代码需要修改

    public class Zi extends Fu{
        intn num=20;
        //定义成员方法
        public void show(){
            System.out.println("父类中的参与变量:"+super.num);
            System.out.println("子类中的成员变量:"+num);
        }
    }
    

    备注:父类中的成员变量是非私有的,子类中可以直接访问,私有之后子类不能直接访问。遵循封装原则,使用private修饰成员变量,所以子类不能直接访问。值能借助父类提供的公共的setXxx和getXxx方法。

  • 相关阅读:
    【转载】如何保证消息的顺序性?
    【转载】如何保证消息的可靠性传输?
    Java 浅拷贝与深拷贝的区别
    int 与 Integer 的区别
    Systemd
    如何查看systemctl启动服务的日志journalctl
    centos7安装killall命令
    关闭root用户的ssh登录
    react带ts创建
    ts-类型别名、类型断言
  • 原文地址:https://www.cnblogs.com/tushao/p/14012860.html
Copyright © 2020-2023  润新知