JAVA基础:数组、重载、数据类型、封装、字符串、静态、继承、重写、多态、代码块、权限、接口、内部类

1 数组

//静态初始化
int[] arr1=new int[]{1,2,3,4}
//简化形式
int[] arr2={1,2,3,4}
//动态初始化
int[] arr3=new int[5]

2 方法重载

在同一个类中的多个方法的方法名相同,参数个数不同,参数类型不同,参数类型顺序不同

public class Test1 {
        public static void main(String[] args) {
                Animal animal = new Animal();
                animal.m(1);
                animal.m(1.1);
                animal.m(1,1.1);
                animal.m(1.1,1);
        }
}
class Animal{
        public void m(int n){
                System.out.println("int");
        }
        public void m(double n){
                System.out.println("float");
        }
        public void m(int n,double m){
                System.out.println("int n,float m");
        }
        public void m(double m,int n){
                System.out.println("float m,int n");
        }
}

3   数据类型

3.1 基本数据类型 

//数据值存储在自己空间中
int a=1;

3.2  引用数据类型         

//数据值存储在其他空间中,指向堆内存
int[] arr=new int[]{1,2,3};
//传递的地址值
int[] arr1=arr;

4 IDEA

编写代码:project->module->packege->class,自动保存和编译

快捷键:

sout:

System.out.println();

psvm:

public static void main(String[] args) {
    
}

5 封装

私有变量+get、set方法

public class Object {
//成员变量
    private String name;
    private int age;
    public void setAge(int  n){
//局部变量
        int b=1;
        if(n>=18&&n<=50){
            age = n;
        }else{
            System.out.println("非法参数");
        }

    }
    public int getAge(){
    return age;
    }
}
public void setAge(int  age){
        if(n>=18&&n<=50){
            //自己传递给自己
            age = age;
            //把值传递给成员变量的age
            //age就近原则,this是调用者的地址值,所以this===对象类new声明的变量
            this.age=age;
        }else{
            System.out.println("非法参数");
        }
    }

构造方法

public class Object {
    //    方法名与类名相同,没有返回值,由虚拟机在创建对象的时候自动调用
    public Object() {

    }
}

6 标准javaBean

成员变量private,且提供set、get

至少两个构造方法:1 无参构造 2有全部参数构造

alt+insert:要有空参构造和全参构造 

插件快速构造

7 字符串

7.1string

是java定义好的类,定义在java.lang包,使用不需要导包

public Object() {
    }
//当使用双引号直接赋值,会查该字符串在串池是否存在

//存在:复用,指向相同地址

//不存在:创建新的

    String s1="abc";
    String s2=new String();
    String s3=new String("123456");
    char[] c={'1','2','3'};
    //s4与s6指向地址不同
    String s4=new String(c);
    String s6=new String(c);
//    字节数组转为字符串
    byte[] b={12,13,14};
    String s5=new String(b);
//表示内容相等么?
    boolean b1=s5.equals(s4);
    boolean b2=s5.equalsIgnoreCase(s4);
}

7.2  StringBuilder

 public static void main(String[] args) {
        //    创建一个可变字符串对象
        StringBuilder sb=new StringBuilder("abc");
        sb.append("de");
        System.out.println(sb);//abcde
        sb.reverse();
        System.out.println(sb);//edcba
//       容量
       sb.capacity();
//       容量内字符串长度
       sb.length();
    }

源码分析:默认创建一个长度16的字节数组,大于16会扩容

7.3  StringBuffer

String保存的是字符串常量,里面的值不能更改,每次String类的更新实际上就是更改地址,String是被final修饰的类,不能被继承

StringBuffer保存的是字符串变量,里面的值可以修改

        String s1=new String("");
        StringBuffer sb=new StringBuffer();
        System.out.println(s1);//空
//        打印的是属性值
        System.out.println(sb);//1
//        每次加一个值
        sb.append(1);
        sb.reverse();
        System.out.println(sb);
//        把StringBuffer变为字符串
        String str=sb.toString();

7.4 StringJoiner

 StringJoiner sj=new StringJoiner("---");
        sj.add("111").add("222");
        System.out.println(sj);//111---222
        StringJoiner sj1=new StringJoiner("---","[","]");
        sj1.add("111").add("222");
        System.out.println(sj1);//[111---222]

拼接:

JDK8之前StringBuilder的append()方法

JDK8之后预估string拼接后大小,然后把内容放入数组,产生一个新字符串

 ==比较的是?

引用数据类型比较地址值

基本数据类型比较数据值

7.5 转换罗马数字案例

 

package DEMO1;

import java.util.Scanner;

public class Object {
    public static void main(String[] args) {
        String s;
        Scanner sc=new Scanner(System.in);
        while (true){
            s=sc.next();
            if(check(s))
            {
                break;
            }else {
                System.out.println("error");
                continue;
            }
        }
        StringBuilder sb=new StringBuilder();
        for(int i=0;i<s.length();i++)
        {
            char c=s.charAt(i);
            sb.append(change(c-48));
        }
        System.out.println(sb);
       }
       public static String change(int number){

           String arr[] = {"","Ⅰ","Ⅱ","Ⅲ","Ⅳ","Ⅴ","Ⅵ","Ⅶ","Ⅷ","Ⅸ"};
            return arr[number];
       }

       public static boolean check(String s){
        if(s.length()>9)
        {
            return  false;
        }
        for(int i=0;i<s.length();i++)
        {
            char c=s.charAt(i);
            if(!(c>'0'&&c<'9'))
                return  false;
        }
           return true;
       }
}

7.6 泛型

public class Test1 {
        public static void main(String[] args) {
//                泛型:限定集合中存储的数据类型
//                打印的是内部数据内容
//                不能放基本数据类型,string是引用数据类型
                ArrayList<String> list=new ArrayList<>();
                list.add("aaa");
                list.add("bbb");
                list.add("ccc");
                list.add("ddd");
                list.remove("ccc");
                System.out.println(list);
//                删除1索引的数值是第二个值
                list.remove(1);
                System.out.println(list);
//                修改
                list.set(1,"eee");
                System.out.println(list);
//                遍历
                for(int i=0;i<list.size();i++)
                {
                        String str=list.get(i);
                        System.out.println(str);
                }
        }
}

8 static变量

修饰成员方法、成员变量

被所有类所共享,不属于特定对象

推荐用类名调用,也可以用对象名调用

静态变量是随着类加载而加载,优先于对象出现

堆内存

工具类:不描述具体事物,而是做事情的类

私有化构造方法,不让外界创建其对象

方法定义为静态,静态方法没有this关键字

9 继承

java只支持单继承,不支持多继承,但支持多重继承

所有类都继承object类

子类不可以继承父类所有构造方法,能继承父类所有成员变量,能继承非私有的成员方法

父类、子类都有自己的虚方法表,包括非private、非static、非final

只有父类虚方法才能被子类继承和重写

public class student {
    String name;
    int age;
//    表示当前调用者的地址值
//    this是由虚拟机赋值的,而不能手动赋值
    public void show1(student this){
        System.out.println(this);
//        相当于this.name
        System.out.println(name);
    };
}

studentTest
public class studentTest {
    public static void main(String[] args) {
        student s1=new student();
        System.out.println(s1);
        s1.show1();
    }
    }

 调用子类父类的方法或声明

Test1.java

public class Test1 {
        String b="3";
}

Test2.java

public class Test2 extends Test1{
    public static void main(String[] args) {
        Test2 t2=new Test2();
        t2.func();
    }
    String c="2";

    public  void func() {
        System.out.println(c);//2
        System.out.println(b);//3
        System.out.println(super.b);//3
        System.out.println(this.b);//3
    }
}

成员变量访问特点:就近原则

10 重写

重写的方法名称、形参必须与父类一致,权限>父类(public>protected>不写),返回值类型<=父类

方法的重载是方法的参数个数或种类或顺序不同,方法名相同

快捷键:

 

11 多态

前提;1 有继承 2 有重写 3 父类引用指向子类对象

多态成员变量:编译运行看左边

方法:编译看左边,运行看右边

Animal.java

public class Animal {
        public int age=20;
        public static void sleep(){
                System.out.println("动物在睡觉");
        }
        public void func() {
                System.out.println("我是animal");
        }
}

 Dog.java

package DEMO1;

public class Dog extends Animal{
    public int age=18;
    public static void sleep(){
        System.out.println("dog在睡觉");
    }

    @Override
    public void func() {
        super.func();
        System.out.println("我是dog");
    }
    public void eat(){
        System.out.println("dog吃饭");
    }

}

 Test1.java

package DEMO1;

public class Test1 {
        public static void main(String[] args) {
                Animal animal = new Animal();
                animal.func();
                Dog dog=new Dog();
                dog.func();
                Animal Adog=new Dog();
//                子父类存在同名的非静态成员方法时,访问的是子类中重写的方法
                Adog.func();//我是dog
//                多态情况下,子父类存在同名的静态成员变量成员方法时,访问的是父类的成员函数
                Adog.sleep();//动物在睡觉
//                多态情况下,子类和父类存在同名的成员变量时,访问的时父类的成员变量
                System.out.println(Adog.age);//20
//                多态情况下,不能访问子类独由的方法
//                Adog.eat();
//                向下转型
                Dog dog1=(Dog)dog;
                dog1.func();//我是dog
        }
}

报错问题:将子类Cat的对象cat变成了兄弟类的对象dog,这就不是向下转型,因此会报ClassCastException类型转换异常

        Animal cat = new Cat();
        //向下转型
        Dog dog1 = (Dog)Adog;
        //调用子类独有的方法
        dog1.func();  
instanceof关键字
Animal Adog=new Dog();
                if(Adog instanceof cat)
                {
                        cat ca=(cat)Adog;
                        ca.func();//我是animal
                }else if(Adog instanceof Dog)
                {
                        Dog dog2=(Dog) Adog;
                        dog2.func();//我是dog
                }

12 包和final 

12.1 包

包是文件夹,管理不同java类

名称:公司域名反写+包的作用

使用java.lang包的类,不需要导包

12.2 final

不能重写、继承,常量

final 基本类型:数据不能改变

final 引用类型:(数组)地址值不能改变,内部数据可以改变

常量:全部大写,多个单词用'_'隔开

13 权限修饰符

 14 代码块

14.1 局部代码块

        public static void main(String[] args) {
                {
                        int a=1;
                        System.out.println(a);
                }
//                代码块执行完,a占用的内存就清除,现在基本用不到
        }

14.2 构造代码块

public class Test1 {
//        多个构造方法重复的代码写在构造方法块
//        构造方法块优于构造方法执行
        {
                System.out.println("我是老大");
        }
        public Test1(){
                System.out.println("我是老二");
        }
        public Test1(int a){
                System.out.println("我是老三");
        }

        public static void main(String[] args) {
        Test1 te=new Test1();
        Test1 te1=new Test1(2);
        }
}

节省重复代码第二种方式:

public class Test1 {
        public Test1(){
                System.out.println("我是老二");

        }
        public Test1(int a){
                this();
                System.out.println("我是老三");
        }

        public static void main(String[] args) {
        Test1 te=new Test1(2);
        }
}

14.3 静态代码块

创建子类对象实例,父类也会被加载,父类先被加载,子类后被加载

public class Test1 {
        public static void main(String[] args) {
                System.out.println(B.n1);
        }
}
class A{
        public static int n2=20000;
        static{
                System.out.println("1");
        }
}
class B extends A{
        public static int n1=10000;
        static {
                System.out.println(n2);
        }
}

普通代码块:每次创建一个对象就执行一次
静态代码块:只要类加载了就会被调用,只会执行一次

public class Test1 {
        public static void main(String[] args) {
                System.out.println(A.n2);
                A a=new A();
        }
}
class A{
        public static int n2=20000;
        static{
                System.out.println("静态代码块被调用");
        }
        {
                System.out.println("普通代码块被调用");
        }
}

 

类什么时候被加载:

1 new:A a = new A();

2 使用类的静态成员:静态成员,静态方法

15 抽象类

Animal.java

package DEMO1;
//抽象类不能被实例化
public abstract class Animal {
        private int age;
        //初始化父类成员使用
        public Animal(){
                this.age=age;
        }
        public void sleep(){
                System.out.println("动物在睡觉");
        }
        //只有方法的定义,没有方法的实现
        //有抽象方法,那么这个类必定是一个抽象类
        //抽象类里面可以没有抽象方法
        public abstract void eat();
}

Dog.java

public class Dog extends Animal{
    //所有非抽象子类必须重写抽象类中的抽象方法
    @Override
    public void eat() {
        System.out.println("我是dog");
    }
}

Main.java

public class Main {
    public static void main(String[] args) {
        Dog do1=new Dog();
        do1.eat();
        do1.sleep();
    }
}

16 接口

 

Temnal->jps-> jhsdb hsdb 打开内存分析工具->file->

 

Swim.java

public interface Swim {
    //默认加上public static final
    int a=10;
    //默认加上public abstract
    void method();
    public abstract void swim();
}

Frog.java

//要么重写所有抽象方法要么抽象类
public class Frog extends Animal implements Swim{
//    不加构造无法赋值
    public Frog(int age) {
        super(age);
    }

    public Frog(int age, String name) {
        super(age, name);
    }

    public Frog() {
    }

    public Frog(String name) {
        super(name);
    }

    @Override
    public void eat() {
        System.out.println("青蛙吃");
    }

    @Override
    public void method() {
        System.out.println("method");
    }

    @Override
    public void swim() {
        System.out.println("青蛙游泳");
    }
}

Main.java

public class Main {
    public static void main(String[] args) {
    Frog fr=new Frog(18,"青蛙");
    System.out.println(fr.getAge()+fr.getName());
    fr.eat();
    fr.swim();
    }
}

实现多个接口的同名方法,重写一次即重写了各个接口的方法 

接口与接口,可以单继承,也可以多继承

Swim.java

package DEMO1;

public interface Swim {
//    public 可以省略,default不能省略
    //接口在进行扩展的时候,不会破坏与接口相关的实现类代码
    public default void method1(){
        System.out.println("method1没有重写Swim");
    };
    public default void method2(){
        System.out.println("method2有重写");
    };
    public static void jing(){
        System.out.println("我是静态");
        add();
    };
    private static void add(){
        System.out.println("静态的私有方法,节省代码");
    }

}

Frog.java

package DEMO1;
//要么重写所有抽象方法要么是抽象类
public class Frog  implements Swim{
    @Override
    public void method1() {
        System.out.println("haha");
    }
    @Override
    public void method2() {
        System.out.println("method2重写");
    }
}

Main.java

package DEMO1;

public class Main {
    public static void main(String[] args) {
    Frog fr=new Frog();
//    实现的接口中存在相同名字默认方法,必须重写
    fr.method1();
    fr.method2();
    Swim.jing();
    }
}

适配器设计模式

swim.java

package DEMO1;

public interface Swim {
public abstract void  swim1();
public abstract void  swim2();
    public abstract void  swim3();
    public abstract void  swim4();
    public abstract void  swim5();
    public abstract void  swim6();
    public abstract void  swim7();
    public abstract void  swim8();
}

Rubbit.java

package DEMO1;

public class Rubbit implements Swim{
    @Override
    public void swim1() {

    }
    @Override
    public void swim2() {

    }
    @Override
    public void swim3() {

    }
    @Override
    public void swim4() {

    }
    @Override
    public void swim5() {

    }
    @Override
    public void swim6() {
    }
    @Override
    public void swim7() {
    }
    @Override
    public void swim8() {
    }
}

 Frog.java

public class Frog  extends Rubbit {
    @Override
    public void swim5() {
        System.out.println("我只用swim接口的5");
    }
}

 Main.java

public class Main {
    public static void main(String[] args) {
    Frog fr=new Frog();
    fr.swim5();
    }
}

17 内部类 

17.1 成员内部类

JDK16之前不能定义静态变量,JDK16之后才可以定义静态变量

 Animal.java

public class Animal {
        class eye{ }
        private class hand{}
        public hand gethand(){
                return new hand();
        }
}

Main.java

public class Main {
    public static void main(String[] args) {
    Animal.eye ae=new Animal().new eye();
//    hand不能用上面的方法new
    Animal animal=new Animal();
        System.out.println(animal.gethand());//DEMO1.Animal$hand@682a0b20
    }
}

 outer this是隐含的

17.2 静态内部类

Animal.java

package DEMO1;

public class Animal {
        public int a=1;
        public static  int b=2;
        static class eye{
               public static void show(){
               Animal an=new Animal();
               System.out.println(an.a);
               System.out.println(b);
               }
                public  void show1(){

                        System.out.println("3");
                }
        }
}

Main.java

package DEMO1;

public class Main {
    public static void main(String[] args) {
        Animal.eye.show();
//        Animal.eye.show1();show1不是静态方法,错误
        Animal.eye ae=new Animal.eye();
        ae.show1();
    }
}

17.3 局部内部类

类中函数里定义的类

17.4 匿名内部类

匿名内部类不能是抽象的,只能也必须继承一个类或者实现一个接口, 无构造,无静态

public class Main {
    public static void main(String[] args) {
// swim是接口,{}是匿名类,实现了Swim()这个接口,new的是匿名类
// Swim是抽象类,那么{}是其子类,new表示创建没有名字的对象
        new Swim(){
            @Override
            public  void  swim(){
                System.out.println("1");
            };
        }.swim();//1
        Swim sw=new Swim() {
            @Override
            public void swim() {
                System.out.println("2");
            }
        };
        sw.swim();//2
        System.out.println(sw.getClass());//获取类名class DEMO1.Main$2,这个类是被临时创建
    }
}

应用:

package DEMO1;

public class Main {
    public static void main(String[] args) {
        fun(
                new A(){
                    @Override
                    public void eat() {
                        System.out.println("eat");
                    }
                }
        );//eat
    }
    public static void fun(A s){
        s.eat();
    }
    interface A{
        public void eat();
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/456899.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

KubeSphere 社区双周报|2024.02.29-03.14

KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过 commit 的贡献者&#xff0c;并对近期重要的 PR 进行解析&#xff0c;同时还包含了线上/线下活动和布道推广等一系列社区动态。 本次双周报涵盖时间为&#xff1a;2024.02.29-03.14…

多媒体操作流程

&#xff01; 从左至右依次为&#xff1a;话筒、投影遥控器、ppt演讲笔、幕布升降遥控器、无线投屏连接器 主机箱 投影仪 二、操作流程 1、打开主机电源&#xff1a;最下面两台设备的开关打开 2、打开投影仪&#xff1a;用投影遥控器对准投影仪按开机键&#xff08;如无需用到…

SwiftUI的context Menu

SwiftUI的 context Menu 现在来演示一下如何使用 SwiftUI 的 Context Menu 。 代码&#xff1a; import SwiftUIstruct ContextMenuBootCamp: View {State var bgColor: Color .purplevar body: some View {VStack(alignment: .leading, spacing: 10.0) {Image(systemName: …

【开源】SpringBoot框架开发公司货物订单管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 客户管理模块2.2 商品维护模块2.3 供应商管理模块2.4 订单管理模块 三、系统展示四、核心代码4.1 查询供应商信息4.2 新增商品信息4.3 查询客户信息4.4 新增订单信息4.5 添加跟进子订单 五、免责说明 一、摘要 1.1 项目…

力扣刷题日记——L83. 删除排序链表中的重复元素

1. 前言 今天是力扣刷题打卡的第四天&#xff0c;今天带来一道简单题。一开始做了一道中等难度的题&#xff0c;但是很遗憾&#xff0c;没有解出来&#xff0c;但是为了不耽误今天的打卡计划&#xff0c;所以先选一个简单题做了&#xff0c;回头做出来那道题再和大家分享。话不…

一口吃掉Linux基础操作

一般在windows上面想要操作Linux系统就需要装软件搞一个虚拟机&#xff0c;我用的是Ubuntu22&#xff0c;就是Linux的发行版.安装Ubuntu的过程比较复杂&#xff0c;最重要的一点是安装时要断网&#xff0c;否则会很慢。 Ubuntu 配置指南 — 地震“学”科研入门教程 先介绍一个…

安卓通过termux部署ChatGLM

一、安装Termux并进行相关配置 1、安装termux Termux 是一个 Android 终端仿真应用程序&#xff0c;用于在 Android 手机上搭建一个完整的 Linux 环境。 不需要 root 权限 Termux 就可以正常运行。Termux 基本实现 Linux 下的许多基本操作。可以使用 Termux 安装 python&…

logistic回归分析

结局变量&#xff1a;二分类&#xff08;常见&#xff09;或多分类变量研究一个或多个原因变量和结果变量的因果关系 eg&#xff1a;Y必须是分类变量

手写简易操作系统(九)--实现打印函数

前情提要 前面我们已经进入内核程序了&#xff0c;中间穿插了一点特权级的知识&#xff0c;现在我们开始准备一个打印函数 很不幸&#xff0c;还有汇编程序 一、C调用规约 因为涉及到C与汇编的联合编程&#xff0c;我们这里简述一下调用规约&#xff0c;调用规约就是约定参…

【DataWhale学习】用免费GPU线上跑chatGLM项目实践

用免费GPU线上跑chatGLM项目实践 ​ DataWhale组织了一个线上白嫖GPU跑chatGLM与SD的项目活动&#xff0c;我很感兴趣就参加啦。之前就对chatGLM有所耳闻&#xff0c;是去年清华联合发布的开源大语言模型&#xff0c;可以用来打造个人知识库什么的&#xff0c;一直没有尝试。而…

MES管理系统中电子看板都有哪些类型?

随着工业信息化和智能制造的不断发展&#xff0c;MES管理系统已经成为现代制造业不可或缺的重要工具。MES管理系统通过集成和优化生产过程中的各个环节&#xff0c;实现对生产过程的实时监控、调度和管理&#xff0c;提高生产效率和质量。 在生产制造过程中&#xff0c;看板管…

1 redis7概述

Redis7 1 Redis简介 Redis之所以称之为字典服务&#xff0c; 是因为 Redis 是一个 key-value存储系统。 支持存储的 value类型很多&#xff0c; 包括 String(字符串)、List(链表)、Set(集合)、Zset(sorted set --有序集合)和 Hash&#xff08;哈希类型&#xff09;等。 Redis…

python INI文件操作与configparser内置库

目录 INI文件 configparser内置库 类与方法 操作实例 导入INI文件 查询所有节的列表 判断某个节是否存在 查询某个节的所有键的列表 判断节下是否存在某个键 增加节点 删除节点 增加节点的键 修改键值 保存修改结果 获取键值 获取节点所有键值 其他读取方式 …

linux下dlib静态库和动态库编译

本文讲述的linux系统下如何编译dlib的静态库和动态库方法。 dlib源码下载地址 dlib官网&#xff1a;dlib C LibraryGitHub - davisking/dlib: A toolkit for making real world machine learning and data analysis applications in C dlib源码的目录结构如下&#xff1a; 编…

【TB作品】MSP430单片机,音乐播放器,四首音乐,八音盒,Proteus仿真

文章目录 题目要求仿真结果实验报告&#xff1a;基于MSP430单片机的八音盒设计实验目的实验设备实验原理总结 代码和仿真图 题目要求 八音盒 本设计利用MSP430单片机结合内部定时器及LED/LCD,设计一个八音盒,按下单键可以演奏预先设置的歌曲旋律。 基本要求: 使用LED/LCD显示器…

格子表单GRID-FORM | 必填项检验 BUG 修复实录

格子表单/GRID-FORM已在Github 开源&#xff0c;如能帮到您麻烦给个星&#x1f91d; GRID-FORM 系列文章 基于 VUE3 可视化低代码表单设计器嵌套表单与自定义脚本交互文档网站搭建&#xff08;VitePress&#xff09;与部署&#xff08;Github Pages&#xff09;必填项检验 BUG…

AS-V1000 视频监控平台产品介绍:web客户端功能介绍(上)

目 录 一、引言 1.1 AS-V1000视频监控平台介绍 1.2 平台服务器配置说明 二、软件概述 2.1 软件用途 2.2 登陆界面 2.3 主界面 2.4 视频浏览 三、web端主要功能介绍 3.1 多画面风格 3.1.1风格切换 3.1.2 切换效果 3.2截屏 3.2.1 单画面截屏 3.2.2 …

cesium wall 扩散墙(动态立体墙效果 Primitive 方法)

cesium wall 扩散墙(动态立体墙效果)以下为源码直接复制可用 1、实现思路 1、此效果运用cesium 中 Primitive 方法,通过传入中心点、半径、顶点数、颜色来进行加载。 2、运用 Math 方法 对传进来的中心点、半径、定点数,来计算个顶点经纬度。 3、通过Primitive 方法中upda…

Vue3调用钉钉api,内嵌H5微应用单点登录对接

钉钉内嵌H5微应用单点登录对接 https://open.dingtalk.com/document/isvapp/obtain-the-userid-of-a-user-by-using-the-log-free 前端需要的代码 1、安装 dingtalk-jsapi npm install dingtalk-jsapi2、在所需页面引入 import * as dd from dingtalk-jsapi; // 引入钉钉a…

软件测试覆盖率

软件测试覆盖率简介 1、定义&#xff1a;覆盖率是用来度量测试完整性的一个手段&#xff0c;同时也是测试技术有效性的一个度量。2、计算&#xff1a;覆盖率&#xff08;至少被执行一次的item数&#xff09;/item的总数3、特点1&#xff09;通过覆盖率数据&#xff0c;可以检测…