包装类
刚刚开始接触这个类的时候有点无理头
所以我先写了一段代码:
class A
{
private int data;
public A(int data){
this.data = data;
}
public int set(){
return data;
}
}
public class Message
{
public static void main(String[] args){
A in = new A(10);
int x = in.set();
System.out.println(x);
}
}
与之对比
class A
{
private int data;
public A(int data){
this.data = data;
}
public int set(){
return data;
}
}
public class Message
{
public static void main(String[] args){
Object in = new A(10);
int x = ((A)in).set();
System.out.println(x);
}
}
结果:
然而我并没有发现有什么区别,所以我有了进一步的查询,在该函数中包装类可以利用Object进行基本数据类型的接收。并且发现包装类可以分为两类,一个是对象型包装类(Object直接子类),一个是数值型包装类(Number直接子类),Number是一个抽象类。
装箱
Integer a = new Integer(5);
Double b = new Double(5.1);
Boolean c = new Boolean(ture);
拆箱
int x = a.A();//A为对应的函数
double x = b.A();
boolean x = c.A();
总结
关于包装类,它可以有利于对于某一种数据类型进行有效的处理。
接口
关于接口是什么,从第一次听起这个名词认为他十分的复杂,难懂。下面我们来看一段代码:
public class project7 {
public static void main(String[] args) {
A in = new B();
System.out.println(in.get());
}
}
interface A{
public String get();
}
class B implements A{
@Override
public String get() {
return "学习";
}
}
然而发现是不是和继承没有什么区别,但是接口是可以一个子类实现多个父类接口的。下面我们来看一段代码:
public class project7 {
public static void main(String[] args) {
A in = new B();
C sc = new B();
System.out.println(in.get()+sc.get1());
}
}
interface A{
public String get();
}
interface C{
public String get1();
}
class B implements A,C{
@Override
public String get() {
return "学习";
}
@Override
public String get1() {
return "快乐";
}
}
总结
接口的强大之处就在于他可以重写多个父类。