包装类概述
八种基本数据类型不具备对象的功能
包装类是弥补这些的一种功能
byte > Byte
char > Character
short > Short
boolean > Boolean
int > Integer
long > Long
float > Float
double > Double
装箱与拆箱
装箱:将基本数据类型转换成包装类型
拆箱:将包装类型转换成基本数据类型
装箱中:
Integer a = Integer.valueOf("123");
Integer a = Integer.parseInt("123");
其它相似
拆箱:
int a = Integer.valueOf(123);//可以直接拆
大形变量
BigInteger:由CPU原生提供的整型最大范围是64位long型整数
如果超过了就要用java.math.BigInteger就是用来表示任意大小的整数
BigInteger a=new BigInteger("2");
BigInteger b=new BigInteger("3");
a. add(b);//加
a. subtract(b); //减
a. multiply(b); //乘
a. divide(b); //相除取整
a. remainder(b); //取余
gcd(); //最大公约数
abs(); //绝对值
negate(); //取反数
pow(); //次方
BigDecimal:和BigInteger类似,BigDecimal可以表示一个任意大小且精度完全准确的浮点数
宇宙中所有粒子的总数
BigDecimal b1 = new BigDecimal("3.28");
BigDecimal b2 = new BigDecimal("10");
b1 = b1.multiply(b2);
System.out.println(b1.pow(80));
内部类
内部类就是在一个类内部,进行其他类结构的嵌套操作
内部类与外部类可以方便的访问彼此的私有域(包括私有方法、私有属性)
内部类是另外一种封装,对外部的其他类隐藏
无论外围类是否已经继承了某个接口的实现
每个内部类都能独立地继承一个接口的实现
内部类就是在一个类内部,进行其他类结构的嵌套操作
内部类与外部类可以方便的访问彼此的私有域(包括私有方法、私有属性)
内部类是另外一种封装,对外部的其他类隐藏
无论外围类是否已经继承了某个接口的实现
每个内部类都能独立地继承一个接口的实现
写法
class Outer{
int i;
class Inner{
public void print(){
Outer.this.i = 22; //指定访问外部类的成员
System.out.println("成员内部类的print方法");
}
}
public void Run(){
Inner in = new Inner();
in.print();
System.out.println(i);
}
}
//method1
Outer.Inner b = new Outer().new Inner();
b.print();
//method2
Outer s = new Outer();
s.Run();
对于内部类都没有影响
内部类是个编译时的概念
一旦编译成功后,它就与外围类属于两个完全不同的类(当然他们之间还是有联系的)
对于一个名为OuterClass的外部类和一个名为InnerClass的内部类
在编译成功后,会出现这样两个class文件
OuterClass.class 和 OuterClass$InnerClass.class
方法内部类
方法内部类对外部完全隐藏
除了创建这个类的方法可以访问它以外,其他地方均不能访问
换句话说其他方法或者类都不知道有这个类的存在
方法内部类对外部完全隐藏
除了创建这个类的方法可以访问它,其他地方均不能访问