为什么要有包装类,包装类有哪些?
为了万物皆对象,并且泛型和集合都不支持基本类型,支持包装类
8 种,int -> Integer,char -> Character,其他的都是首字母大写
包装类提供了哪些常用的功能?
可以把基本类型的数据转换成字符串类型。
public static String toString(double d)
public String toString()
可以把字符串类型的数值转换成真实的数据类型。
public static int parseInt(String s)
public static Integer valueOf(String s)
装箱与拆箱装箱:将一个基本数据类型变为包装类称为装箱操作
拆箱:将一个包装类变回基本数据类型,称为拆箱操作,转换的方法由Number类提供
下面看具体操作,这里以整形为例:
1234567public class WrapperDemo{ public static void main(String[] args){ int x1 = 1; //基本数据类型 ...
成员内部类成员内部类直接定义在外部类里,与外部类的属性和方法处于同一层级。它能够访问外部类的所有成员,包括私有成员。
1234567891011121314151617181920212223public class OuterClass { private int outerField = 10; public class InnerClass { public void display() { System.out.println("外部类的字段: " + outerField); } } public void createInner() { InnerClass inner = new InnerClass(); inner.display(); } public static void main(String[] args) { OuterClass ...
对比维度
抽象类(is what)
接口(can do)
定义方式
借助 abstract class 来定义
通过 interface 进行定义
实现手段
利用 extends 关键字实现继承
使用 implements 关键字实现接口
成员变量
可以包含普通变量和常量
只能是 public static final 类型的常量
方法类型
能够有抽象方法,也能有具体实现的方法
所有方法默认是 public abstract 的(Java 8 及之后版本允许有默认方法和静态方法)
多继承支持
仅支持单继承(一个类只能继承一个抽象类)
支持多实现(一个类可实现多个接口)
设计侧重点
强调 “是什么”,用于对一组相关类的共同特征进行抽象
着重 “能做什么”,定义了一种行为规范或契约
相同点:1、多是抽象形式,都可以有抽象方法,都不能创建对象。2、都是派生子类形式:抽象类是被子类继承使用,接口是被实现类实现。3、一个类继承抽象类,或者实现接口,都必须重写完他们的抽像方法,否则自己要成为抽象类或者报错!4、都能支持的多态,都能够实现解耦合。
不同点:1、抽象 ...