28.0/接口/包装类

目录

28.1什么接口--简单理解。

28.1.2如何定义接口

28.2类实现接口的语法

 28.3接口与接口之间使用继承

 28.4包装类

 28.5自动装箱

 28.6自动拆箱

28.7Integer和Character包装类中常用的方法

28.8 其他类的API


28.1什么接口--简单理解。

接口理解为特殊的抽象类

1.8以前接口中所有的方法都是抽象方法,而且接口中所有的属性都是静态常量

而且他也弥补了抽象类的缺陷-只允许单继承。--理解为干爹。

 

28.1.2如何定义接口

public interface 接口名{
     //成员-1.8以后
     //1.静态常量成员
     //2.抽象方法成员

}

public interface Usb {
    //静态常量
    public static final String WIDTH="1cm";
    //使用
    public abstract void use();
}

 既然接口中所有的成员都有固定的修饰符。那么我们就可以省略固定的修饰符

public interface Usb {
    //静态常量
    String WIDTH="1cm";
    //使用
    void use();
}

接口也是无法创建对象。--如何使用接口中的成员。它需要类实现该接口。

 

28.2类实现接口的语法

//注意:一个类可以实现多个接口。
public class 类名 implements 接口名,接口名,....{

}
//注意: 类实现类接口那么该类必须实现接口中所有的抽象方法。
public class Mouse implements Usb {
    @Override
    public void use() {
        System.out.println("鼠标实现了Usb接口");
    }
}
public class Test {
    public static void main(String[] args) {
        //父类声明 子类创建---对象的多态。
        Usb usb=new Mouse();
        usb.use();
    }
}

 28.3接口与接口之间使用继承

一个接口可以继承多个接口。

interface A{
    public void a();
}
interface  B{
    public void b();
}
interface C extends A,B{
    public void c();
}

class F implements C{

    @Override
    public void a() {
        
    }

    @Override
    public void b() {

    }

    @Override
    public void c() {

    }
}

总结:

同类型之间使用继承,类与接口使用实现。

类与类之间: 只允许单继承。 extends

接口与接口之间: 允许多继承。 extends

类与接口之间: 允许多实现。 implements

例子:

 鸟:  飞

飞机: 飞

 超人: 飞

 Fly接口: fly()抽象方法;


 都有飞的功能---> 把相同的功能--->抽取到接口中---让这些类实现接口。

 28.4包装类

  1. 万事万物皆为对象-->基本类型就不符合这句话。-->把基本类型封装成对应的类。

什么是包装类?--把基本类型封装成对应的类这个过程就是包装。类中具有相应的方法功能

byte--->Byte

short-->Short

int --->Integer

long--->Long

float--->Float

double--->Double

boolean--->Boolean

char--->Character

 28.5自动装箱

转型: 基本类型向它对应的包装类转化。

public class Test {
    public static void main(String[] args) {
        int a=15; //基本类型。
        Integer c=new Integer(a);//手动装箱。
        Integer b=a;//把基本类型转化为引用类型。--自动的转到转化 [1.5以后]。

        long l=25;
        Long l1=l;//自动装箱
        Long l2=new Long(l);//手动装箱
    }
}

 28.6自动拆箱

拆箱: 把引用类型转化为对应的基本类型。

 public static void main(String[] args) {
         Integer a=new Integer(15);//包装类型
         int b=a;//自动拆箱。把引用类型转化为基本类型。【1.5以后】
         int c=a.intValue();//手动拆箱
         }

28.7Integer和Character包装类中常用的方法

Integer类中常用的方法。

//Integer a=15;

        //parseInt(String a): 静态方法、把数字字符串转化为整数。注意: 该方法可能出现异常。
        //java.lang.NumberFormatException: For input string: "abc"
        int i = Integer.parseInt("abc");
        System.out.println("整数:"+i);
        
        Integer a=new Integer(18);
        Integer b=new Integer(16);
        int i1 = a.compareTo(b);
        int compare = Integer.compare(a, b);//比较两个整型的大小。
        System.out.println("~~~~~~~~~~~~"+i1);
        System.out.println("~~~~~~~~~~~~"+compare);

 Character类常见的方法

static boolean isDigit(char ch)  : 判断指定的字符是否为数字。 
static boolean isLetter(char ch)  :判断指定的字符是否为字母
static boolean isLowerCase(char ch)  :判断指定的字符是否为小写字母
static boolean isUpperCase(char ch)  :判断指定的字符是否为大写。

给定一个字符串,判断字符串中小写字母,大写字母,数字以及其他的个数。

String str="asadasASDHG@#@#R%#1234";

28.8 其他类的API

StringBuffer和StringBuilder----对字符串的操作。--适合频繁改变字符串内容。

StringBuffer sb=new StringBuffer("hello");
     //修改sb的内容。
     sb.append("world");//追加。
//        sb.reverse();//倒置
     sb.insert(5,"闫克起真帅");//指定位置插入相应的字符串
     sb.delete(0,3);

 

StringBuilder和StringBuffer里面的方法完全一样。区别:一个是线程安全的一个线程不安全。

StringBuffer:它是线程安全的,效率慢。

StringBuilder:它是线程不安全,但是效率搞。

/**
 * String底层使用字符串数组,而该数组使用final修饰了,所以它是不可变。每次改变都会生成新的空间,而指针指向新的空间。不适合频繁改变的字符串。
 * StringBuffer中的方法和String中的方法类似。StringBuffer底层使用的也是字符数组,但是没有使用final修饰。可变。
 *
 */

public class Test02 {
    public static void main(String[] args) {
        long start = System.currentTimeMillis();
        String str=new String("hhhhhhh");
        for(int i=0;i<100000;i++){
            str+=i;
        }
        System.out.println(str);
        long end = System.currentTimeMillis();
        System.out.println("耗时:"+(end-start));
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光明是人的信仰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值